[tests][cli] init_project tests passes

This commit is contained in:
Maxime Alves LIRMM 2020-08-05 10:29:06 +02:00
parent 50314e6656
commit d47f735828
1 changed files with 36 additions and 21 deletions

View File

@ -1,5 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import subprocess
import pytest import pytest
from click.testing import CliRunner from click.testing import CliRunner
@ -9,33 +10,47 @@ from halfapi.cli import cli
from configparser import ConfigParser from configparser import ConfigParser
projname = os.environ.get('PROJ','tmp_api') projname = os.environ.get('PROJ','tmp_api')
def test_init_project():
@pytest.fixture
def dropdb():
p = subprocess.Popen(['dropdb', f'halfapi_{projname}'])
p.wait()
yield
p = subprocess.Popen(['dropdb', f'halfapi_{projname}'])
p.wait()
def test_init_project(dropdb):
runner = CliRunner() runner = CliRunner()
cp = ConfigParser() cp = ConfigParser()
with runner.isolated_filesystem(): with runner.isolated_filesystem():
runner.env = { env = {
'HALFORM_CONF_DIR': os.environ.get('HALFORM_CONF_DIR', os.getcwd()), 'HALFORM_CONF_DIR': os.environ.get('HALFORM_CONF_DIR', os.getcwd()),
'HALFAPI_CONF_DIR': os.environ.get('HALFAPI_CONF_DIR', os.getcwd()), 'HALFAPI_CONF_DIR': os.environ.get('HALFAPI_CONF_DIR', os.getcwd()),
} }
res = runner.invoke(cli, ['init-project', projname]) res = runner.invoke(cli, ['init-project', projname], env=env)
assert os.path.isdir(projname) try:
assert os.path.isdir(os.path.join(projname, '.halfapi')) assert os.path.isdir(projname)
assert os.path.isdir(os.path.join(projname, '.halfapi'))
# .halfapi/config check
assert os.path.isfile(os.path.join(projname, '.halfapi', 'config'))
cp.read(os.path.join(projname, '.halfapi', 'config')) # .halfapi/config check
assert cp.has_section('project') assert os.path.isfile(os.path.join(projname, '.halfapi', 'config'))
assert cp.has_option('project', 'name') cp.read(os.path.join(projname, '.halfapi', 'config'))
assert cp.get('project', 'name') == projname assert cp.has_section('project')
assert cp.get('project', 'halfapi_version') == __version__ assert cp.has_option('project', 'name')
assert cp.get('project', 'name') == projname
# .halfapi/domains check assert cp.get('project', 'halfapi_version') == __version__
assert os.path.isfile(os.path.join(projname, '.halfapi', 'domains'))
cp.read(os.path.join(projname, '.halfapi', 'domains')) # .halfapi/domains check
assert cp.has_section('domains') assert os.path.isfile(os.path.join(projname, '.halfapi', 'domains'))
cp.read(os.path.join(projname, '.halfapi', 'domains'))
assert r.exit_code == 0 assert cp.has_section('domains')
assert r.exception is None except AssertionError:
subprocess.run(['tree', '-a', os.getcwd()])
assert res.exit_code == 0
assert res.exception is None