halfapi/tests/test_dummy_project_router.py

79 lines
2.2 KiB
Python
Raw Normal View History

import os
import sys
import importlib
import subprocess
import time
import pytest
from starlette.routing import Route
from starlette.testclient import TestClient
from halfapi.lib.routes import gen_starlette_routes
def test_create_route(dummy_project, create_route):
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'get', '/test')
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'post', '/test')
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'put', '/test')
os.chdir(dummy_project[0])
sys.path.insert(0, '.')
router_path = os.path.join('.', dummy_project[1], 'test')
os.path.isdir(router_path)
try:
mod = importlib.import_module('.'.join((dummy_project[1], 'test')))
except ModuleNotFoundError as exc:
print('.'.join((dummy_project[1], 'test')))
print(os.listdir('.'))
raise exc
assert hasattr(mod, 'get')
assert hasattr(mod, 'post')
assert hasattr(mod, 'put')
def test_has_route(dummy_project, create_route):
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'get', '/test')
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'post', '/test/tutu')
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'patch', '/test/ID')
os.chdir(dummy_project[0])
sys.path.insert(0, '.')
try:
mod = importlib.import_module(dummy_project[1], 'test')
except ModuleNotFoundError as exc:
print('.'.join((dummy_project[1], 'test')))
print(os.listdir('.'))
raise exc
for elt in gen_starlette_routes({dummy_project[1]: mod}):
assert(isinstance(elt, Route))
def test_get_route(dummy_project, create_route):
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'get', '/test')
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'post', '/test/tutu')
create_route(os.path.join(dummy_project[0], dummy_project[1]),
'post', '/test/ID')
from halfapi.app import application
c = TestClient(application)
r = c.get(f'/{dummy_project[1]}/test')
assert r.status_code == 200