import wexpect
import time
import sys
import os

here = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, here)

from long_printer import puskas_wiki

print(wexpect.__version__)


# With quotes (C:\Program Files\Python37\python.exe needs quotes)
python_executable = '"' + sys.executable + '" '
child_script = here + '\\long_printer.py'


def main():
    longPrinter = python_executable + ' '  + child_script
    prompt = 'puskas> '
    
    # Start the child process
    p = wexpect.spawn(longPrinter)
    # Wait for prompt
    p.expect(prompt)
    
    try:
        for i in range(10):
            print('.', end='')
            p.sendline('0')
            p.expect(prompt)
            if p.before.splitlines()[1] != puskas_wiki[0]:
                print(p.before.splitlines()[1])
                raise Exception()
                
            p.sendline('all')
            p.expect(prompt)
            for a,b in zip(p.before.splitlines()[1:], puskas_wiki):
                if a!=b:
                    print(a)
                    print(b)
                    raise Exception()
                    
            for j, paragraph in enumerate(puskas_wiki):
                p.sendline(str(j))
                p.expect(prompt)
                if p.before.splitlines()[1] != paragraph:
                    print(p.before.splitlines()[1])
                    print(i)
                    print(j)
                    print(paragraph)
                    raise Exception()
    except:
        p.interact()
        time.sleep(5)
    else:
        print('')
        print('[PASS]')
        
            
main()
        
