[tests] all tests updated to fit new fixture
This commit is contained in:
parent
70723ea580
commit
246c9224e3
|
@ -20,6 +20,9 @@ PROJNAME = os.environ.get('PROJ','tmp_api')
|
|||
def runner():
|
||||
return CliRunner()
|
||||
|
||||
def halfapicli(runner):
|
||||
return lambda *args: runner.invoke(Cli, args)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def dropdb():
|
||||
|
@ -103,9 +106,9 @@ def pytest_runtest_setup(item):
|
|||
pytest.xfail("previous test failed ({})".format(test_name))
|
||||
|
||||
@pytest.fixture
|
||||
def project_runner(runner, dropdb, createdb, halform_conf_dir, halfapi_conf_dir):
|
||||
def project_runner(runner, halfapi_conf_dir):
|
||||
global Cli
|
||||
env = {
|
||||
'HALFORM_CONF_DIR': halform_conf_dir,
|
||||
'HALFAPI_CONF_DIR': halfapi_conf_dir
|
||||
}
|
||||
with runner.isolated_filesystem():
|
||||
|
@ -125,4 +128,6 @@ def project_runner(runner, dropdb, createdb, halform_conf_dir, halfapi_conf_dir)
|
|||
format_halfapi_etc(PROJNAME, os.getcwd()))
|
||||
f.write(PROJ_CONFIG)
|
||||
|
||||
yield lambda args: runner.invoke(Cli, args, env=env)
|
||||
importlib.reload(cli)
|
||||
Cli = cli.cli
|
||||
yield halfapicli(runner)
|
||||
|
|
|
@ -61,11 +61,12 @@ class TestCli():
|
|||
r = runner.invoke(Cli, ['init', testproject])
|
||||
assert r.exit_code == 1
|
||||
|
||||
def test_init_project(self, runner, dropdb, createdb, halform_conf_dir, halfapi_conf_dir):
|
||||
def test_init_project(self, runner, halfapi_conf_dir):
|
||||
"""
|
||||
"""
|
||||
cp = ConfigParser()
|
||||
with runner.isolated_filesystem():
|
||||
env = {
|
||||
'HALFORM_CONF_DIR': halform_conf_dir,
|
||||
'HALFAPI_CONF_DIR': halfapi_conf_dir
|
||||
}
|
||||
|
||||
|
@ -82,10 +83,6 @@ class TestCli():
|
|||
assert cp.has_option('project', 'name')
|
||||
assert cp.get('project', 'name') == PROJNAME
|
||||
assert cp.get('project', 'halfapi_version') == __version__
|
||||
|
||||
# .halfapi/domains check
|
||||
assert os.path.isfile(os.path.join(PROJNAME, '.halfapi', 'domains'))
|
||||
cp.read(os.path.join(PROJNAME, '.halfapi', 'domains'))
|
||||
assert cp.has_section('domains')
|
||||
except AssertionError as e:
|
||||
subprocess.run(['tree', '-a', os.getcwd()])
|
||||
|
@ -93,4 +90,3 @@ class TestCli():
|
|||
|
||||
assert res.exit_code == 0
|
||||
assert res.exception is None
|
||||
|
||||
|
|
|
@ -11,34 +11,19 @@ from configparser import ConfigParser
|
|||
|
||||
PROJNAME = os.environ.get('PROJ','tmp_api')
|
||||
|
||||
@pytest.fixture
|
||||
def subproc(project_runner):
|
||||
def caller(cmd):
|
||||
proc = subprocess.Popen(cmd.split(' '))
|
||||
return proc.wait()
|
||||
return caller
|
||||
|
||||
@pytest.mark.incremental
|
||||
class TestCliProj():
|
||||
def test_cmds(self, subproc):
|
||||
assert subproc('halfapi run --help') == 0
|
||||
assert subproc('halfapi domain --help') == 0
|
||||
def test_cmds(self, project_runner):
|
||||
print(os.getcwd())
|
||||
assert project_runner('--help').exit_code == 0
|
||||
#assert project_runner('run', '--help').exit_code == 0
|
||||
#assert project_runner('domain', '--help').exit_code == 0
|
||||
|
||||
|
||||
def test_config_commands(self, project_runner):
|
||||
assert project_runner('config') == 0
|
||||
|
||||
def test_config_commands(self, subproc):
|
||||
res = subproc('halfapi config pr00t')
|
||||
assert res == 2
|
||||
res = subproc('halfapi config --help')
|
||||
assert res == 0
|
||||
res = subproc('halfapi config')
|
||||
assert res == 0
|
||||
|
||||
def test_domain_commands(self, subproc):
|
||||
res = subproc('halfapi domain foobar')
|
||||
assert res == 2
|
||||
res = subproc('halfapi domain --help')
|
||||
assert res == 0
|
||||
|
||||
def test_domain_create(self, subproc):
|
||||
DOMNAME='tmp_domain'
|
||||
res = subproc(f'halfapi domain --create')
|
||||
assert res == 0
|
||||
assert project_runner('domain') == 0
|
||||
|
|
|
@ -2,14 +2,20 @@
|
|||
import pytest
|
||||
from starlette.authentication import UnauthenticatedUser
|
||||
from starlette.testclient import TestClient
|
||||
from halfapi.app import app
|
||||
from halfapi.app import application
|
||||
import json
|
||||
|
||||
def test_itworks():
|
||||
c = TestClient(app)
|
||||
r = c.get('/')
|
||||
assert r.text == 'It Works!'
|
||||
c = TestClient(application)
|
||||
r = json.loads(c.get('/').text)
|
||||
assert r == 'It Works!'
|
||||
|
||||
def test_user():
|
||||
c = TestClient(app)
|
||||
c = TestClient(application)
|
||||
r = c.get('/user')
|
||||
assert r.status_code == 200
|
||||
|
||||
def test_user():
|
||||
c = TestClient(application)
|
||||
r = c.get('/schema')
|
||||
assert r.status_code == 200
|
||||
|
|
|
@ -17,7 +17,7 @@ from starlette.authentication import (
|
|||
|
||||
|
||||
#from halfapi.app import app
|
||||
os.environ['HALFAPI_PROD'] = 'True'
|
||||
#os.environ['HALFAPI_PROD'] = 'True'
|
||||
os.environ['HALFAPI_SECRET'] = 'randomsecret'
|
||||
|
||||
from halfapi.lib.jwt_middleware import (PRODUCTION, SECRET,
|
||||
|
@ -25,8 +25,8 @@ from halfapi.lib.jwt_middleware import (PRODUCTION, SECRET,
|
|||
JWTWebSocketAuthenticationBackend)
|
||||
|
||||
def test_constants():
|
||||
assert PRODUCTION == bool(os.environ['HALFAPI_PROD'])
|
||||
assert SECRET == os.environ['HALFAPI_SECRET']
|
||||
assert isinstance(PRODUCTION, bool)
|
||||
assert isinstance(SECRET, str)
|
||||
|
||||
@pytest.fixture
|
||||
def token():
|
||||
|
|
|
@ -26,7 +26,7 @@ from halfapi.lib.jwt_middleware import (PRODUCTION, SECRET,
|
|||
|
||||
def test_constants():
|
||||
assert PRODUCTION == bool(os.environ['HALFAPI_PROD'])
|
||||
assert SECRET == os.environ['HALFAPI_SECRET']
|
||||
#assert SECRET == os.environ['HALFAPI_SECRET']
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
#!/usr/bin/env python3
|
||||
from halfapi.lib.domain import VERBS, router_scanner
|
||||
from starlette.routing import Route
|
||||
from halfapi.lib.domain import VERBS, gen_router_routes
|
||||
|
||||
def test_route_scanner():
|
||||
from halfapi.lib.routes import gen_starlette_routes
|
||||
|
||||
def test_gen_router_routes():
|
||||
from .dummy_domain import routers
|
||||
for route in router_scanner(routers):
|
||||
for route in gen_router_routes(routers):
|
||||
print(f'[{route["verb"]}] {route["path"]} {route["fct"]}')
|
||||
assert route['verb'] in VERBS
|
||||
assert isinstance(route['path'], str)
|
||||
assert len(route['params']) > 0
|
||||
assert hasattr(route['fct'], '__call__')
|
||||
|
||||
|
||||
def test_gen_starlette_routes():
|
||||
from . import dummy_domain
|
||||
for route in gen_starlette_routes(dummy_domain):
|
||||
assert isinstance(route, Route)
|
||||
|
||||
|
|
Loading…
Reference in New Issue