import os
from contextlib import contextmanager
import pexpect


@contextmanager
def generator(tmpdir):
    env = dict(os.environ)
    env["PYTHONUNBUFFERED"] = "x"
    env["GENERATE_VARS_CONF_DIR"] = str(tmpdir)
    env["GENERATE_VARS_OUT_DIR"] = str(tmpdir)
    gen = pexpect.spawn('./generate-vars', env=env)
    try:
        yield gen
    finally:
        gen.terminate(force=True)


INITIAL_CONF = """
[generate_vars]
"""


def test_initial_conf(tmpdir):
    conf = tmpdir.join("dr.conf")
    conf.write(INITIAL_CONF)
    with generator(tmpdir) as gen:
        # TODO: Use regex
        gen.expect('override')
        # Add dry run
        gen.sendline('y')
        # "/tmp/dr_ovirt-ansible/mapping_vars.yml"
        assert os.path.exists("/tmp/dr_ovirt-ansible/mapping_vars.yml")