[tests][cli] added tests for domain command
This commit is contained in:
parent
048d06de37
commit
7ff8d803ee
|
@ -25,10 +25,16 @@ def dropdb():
|
||||||
p = subprocess.Popen(['dropdb', f'halfapi_{PROJNAME}'])
|
p = subprocess.Popen(['dropdb', f'halfapi_{PROJNAME}'])
|
||||||
p.wait()
|
p.wait()
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def createdb():
|
||||||
|
p = subprocess.Popen(['createdb', f'halfapi_{PROJNAME}'])
|
||||||
|
p.wait()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.incremental
|
@pytest.mark.incremental
|
||||||
class TestCli():
|
class TestCli():
|
||||||
def test_options(self, runner, dropdb):
|
def test_options(self, runner, dropdb, createdb):
|
||||||
# Wrong command
|
# Wrong command
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
r = runner.invoke(cli, ['foobar'])
|
r = runner.invoke(cli, ['foobar'])
|
||||||
|
@ -44,7 +50,7 @@ class TestCli():
|
||||||
assert r.exit_code == 0
|
assert r.exit_code == 0
|
||||||
|
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
r = runner.invoke(cli, ['init-project', '--help'])
|
r = runner.invoke(cli, ['init', '--help'])
|
||||||
assert r.exit_code == 0
|
assert r.exit_code == 0
|
||||||
|
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
|
@ -59,24 +65,24 @@ class TestCli():
|
||||||
def test_init_project_fail(self, runner, dropdb):
|
def test_init_project_fail(self, runner, dropdb):
|
||||||
# Missing argument (project)
|
# Missing argument (project)
|
||||||
testproject = 'testproject'
|
testproject = 'testproject'
|
||||||
r = runner.invoke(cli, ['init-project'])
|
r = runner.invoke(cli, ['init'])
|
||||||
assert r.exit_code == 2
|
assert r.exit_code == 2
|
||||||
|
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
# Fail : Wrong project name
|
# Fail : Wrong project name
|
||||||
r = runner.invoke(cli, ['init-project', 'test*-project'])
|
r = runner.invoke(cli, ['init', 'test*-project'])
|
||||||
assert r.exit_code == 1
|
assert r.exit_code == 1
|
||||||
|
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
# Fail : Already existing folder
|
# Fail : Already existing folder
|
||||||
os.mkdir(testproject)
|
os.mkdir(testproject)
|
||||||
r = runner.invoke(cli, ['init-project', testproject])
|
r = runner.invoke(cli, ['init', testproject])
|
||||||
assert r.exit_code == 1
|
assert r.exit_code == 1
|
||||||
|
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
# Fail : Already existing nod
|
# Fail : Already existing nod
|
||||||
os.mknod(testproject)
|
os.mknod(testproject)
|
||||||
r = runner.invoke(cli, ['init-project', testproject])
|
r = runner.invoke(cli, ['init', testproject])
|
||||||
assert r.exit_code == 1
|
assert r.exit_code == 1
|
||||||
|
|
||||||
def test_init_project(self, runner, dropdb):
|
def test_init_project(self, runner, dropdb):
|
||||||
|
@ -87,7 +93,7 @@ class TestCli():
|
||||||
'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], env=env)
|
res = runner.invoke(cli, ['init', PROJNAME], env=env)
|
||||||
try:
|
try:
|
||||||
assert os.path.isdir(PROJNAME)
|
assert os.path.isdir(PROJNAME)
|
||||||
assert os.path.isdir(os.path.join(PROJNAME, '.halfapi'))
|
assert os.path.isdir(os.path.join(PROJNAME, '.halfapi'))
|
||||||
|
@ -132,3 +138,33 @@ class TestCli():
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
res = runner.invoke(cli, ['domain', 'delete', '--help'])
|
res = runner.invoke(cli, ['domain', 'delete', '--help'])
|
||||||
assert r.exit_code == 0
|
assert r.exit_code == 0
|
||||||
|
|
||||||
|
def test_domain_create(self, runner, dropdb):
|
||||||
|
with runner.isolated_filesystem():
|
||||||
|
res = runner.invoke(cli, ['init', PROJNAME])
|
||||||
|
assert res.exit_code == 0
|
||||||
|
|
||||||
|
os.chdir(PROJNAME)
|
||||||
|
|
||||||
|
DOMNAME='tmp_domain'
|
||||||
|
res = runner.invoke(cli, ['domain', 'create', DOMNAME])
|
||||||
|
srcdir = os.path.join('domains', 'src', DOMNAME)
|
||||||
|
assert os.path.isdir(srcdir)
|
||||||
|
moddir = os.path.join(srcdir, DOMNAME)
|
||||||
|
assert os.path.isdir(moddir)
|
||||||
|
setup = os.path.join(srcdir, 'setup.py')
|
||||||
|
assert os.path.isfile(setup)
|
||||||
|
initfile = os.path.join(moddir, '__init__.py')
|
||||||
|
assert os.path.isfile(initfile)
|
||||||
|
aclfile = os.path.join(moddir, 'acl.py')
|
||||||
|
assert os.path.isfile(aclfile)
|
||||||
|
aclsdir = os.path.join(moddir, 'acls')
|
||||||
|
assert os.path.isdir(aclsdir)
|
||||||
|
routersdir = os.path.join(moddir, 'routers')
|
||||||
|
assert os.path.isdir(routersdir)
|
||||||
|
|
||||||
|
try:
|
||||||
|
dom_mod = importlib.import_module(DOMNAME, srcdir)
|
||||||
|
assert hasattr(dom_mod, 'ROUTERS')
|
||||||
|
except ImportError:
|
||||||
|
assert False
|
||||||
|
|
Loading…
Reference in New Issue