[tests][testfail] add default routes testing, /halfapi/acls fail

This commit is contained in:
Maxime Alves LIRMM@home 2021-12-04 09:56:14 +01:00
parent d54dcd641d
commit 96f78e76c5
3 changed files with 46 additions and 0 deletions

View File

@ -55,3 +55,12 @@ class HalfDomain(Starlette):
]
)
@staticmethod
def acls(domain):
""" Returns the ACLS constant for the given domain
"""
m_acl = importlib.import_module(f'{domain}.acl')
try:
return getattr(m_acl, 'ACLS')
except AttributeError:
raise Exception(f'Missing acl.ACLS constant in {domain} module')

View File

@ -4,8 +4,11 @@ import os
import sys
import json
from unittest import TestCase
from starlette.testclient import TestClient
from click.testing import CliRunner
from ..cli.cli import cli
from ..halfapi import HalfAPI
from ..half_domain import HalfDomain
from pprint import pprint
class TestDomain(TestCase):
@ -53,3 +56,34 @@ class TestDomain(TestCase):
self.assertEqual(result.exit_code, 0)
return result_d
def check_routes(self):
halfapi = HalfAPI({
'domain': {
'dummy_domain': {
'name': 'dummy_domain',
'router': 'dummy_domain.routers',
'prefix': False,
'config': {
'test': True
}
}
}
})
client = TestClient(halfapi.application)
r = client.get('/')
assert r.status_code == 200
d_r = r.json()
assert isinstance(d_r, dict)
r = client.get('/halfapi/acls')
assert r.status_code == 200
d_r = r.json()
assert isinstance(d_r, dict)
ACLS = HalfDomain.acls(self.DOMAIN)
assert len(ACLS) == len(d_r.keys())
for acl_name in ACLS:
assert acl_name in d_r.keys()

View File

@ -8,3 +8,6 @@ class TestDummyDomain(TestDomain):
def test_domain(self):
self.check_domain()
def test_routes(self):
self.check_routes()