Skip to content
Snippets Groups Projects

update tes_main_app to test main apps with dots in its name #12

Merged slobinger requested to merge 12-sams_hub_main_app_bugfix into master
1 file
+ 66
55
Compare changes
  • Side-by-side
  • Inline
+ 66
55
@@ -3,7 +3,7 @@ from sams_classes import SAMSHub, SAMSApp
@@ -3,7 +3,7 @@ from sams_classes import SAMSHub, SAMSApp
from sams_classes.exceptions import AppNotExist
from sams_classes.exceptions import AppNotExist
from flask import Flask, Blueprint
from flask import Flask, Blueprint
import sys, time
import sys, time
from .helper_classes import FlaskInThread
from helper_classes import FlaskInThread
def eprint(*args, **kwargs):
def eprint(*args, **kwargs):
print(*args, file=sys.stderr, **kwargs)
print(*args, file=sys.stderr, **kwargs)
@@ -13,7 +13,7 @@ class CaseSAMSHubWithThreadedAPI(unittest.TestCase):
@@ -13,7 +13,7 @@ class CaseSAMSHubWithThreadedAPI(unittest.TestCase):
def setUp(self):
def setUp(self):
self.hub = SAMSHub(
self.hub = SAMSHub(
name = 'test', config = {'default_language': 'de', 'main_app' : 'test'})
name = 'test', config = {'default_language': 'de', 'main_app' : 'test'})
from .api_test_server import app as apiApp
from api_test_server import app as apiApp
apiApp.config['TESTING'] = True
apiApp.config['TESTING'] = True
thApi = FlaskInThread(apiApp, host="localhost", port=4711)
thApi = FlaskInThread(apiApp, host="localhost", port=4711)
thApi.start()
thApi.start()
@@ -41,62 +41,71 @@ class CaseSAMSHubWithThreadedAPI(unittest.TestCase):
@@ -41,62 +41,71 @@ class CaseSAMSHubWithThreadedAPI(unittest.TestCase):
class CaseSAMSHubWithMainApp(unittest.TestCase):
class CaseSAMSHubWithMainApp(unittest.TestCase):
def setUp(self):
self.hub = SAMSHub(
name = 'test', config = {'default_language': 'de', 'main_app' : 'test'})
def test_main_app(self):
def test_main_app(self):
"""It is possible to declare a main app where the urls have no prefix"""
"""It is possible to declare a main app where the urls have no prefix"""
appname = 'test.app'
szenarios = [
expected_names = [
{'main_app': 'test', 'extra_app': 'test.app'},
'Hauptanwendung Punkt 1', 'Hauptanwendung Punkt 2', 'Zusatzanwendung 1'
{'main_app': 'test.app', 'extra_app': 'test'}
]
]
urls = ['', '2', 'app/1']
for szenario in szenarios:
name_vars = ['main_1', 'main_2', 'app_1']
main_app = szenario['main_app']
expected = ''.join((
extra_app = szenario['extra_app']
"<ul>\n\n<li><a href='/", urls[0], "'>", expected_names[0],
with self.subTest(main_app = main_app, extra_app = extra_app):
"</a>\n\n<ul>\n\n<li><a href='/", urls[1], "'>", expected_names[1],
hub = SAMSHub(
"</a>\n\n</li>\n\n</ul>\n\n</li>\n\n<li><a href='/", appname, '/', urls[2], "'>",
name = 'test',
expected_names[2], '</a>\n\n</li>\n\n</ul>'
config = {'default_language': 'de', 'main_app' : main_app}
))
)
self.hub.addApp(
expected_names = [
SAMSApp(
'Hauptanwendung Punkt 1', 'Hauptanwendung Punkt 2',
name = 'test',
'Zusatzanwendung 1'
manifest = {
]
'default_language': 'de',
urls = ['', '2', 'app/1']
'views':[
name_vars = ['main_1', 'main_2', 'app_1']
{'url': urls[0], 'function': 'views.menu_test'},
expected = ''.join((
{'url': urls[1], 'function': 'views.do_nothing'}
"<ul>\n\n<li><a href='/", urls[0], "'>", expected_names[0],
],
"</a>\n\n<ul>\n\n<li><a href='/", urls[1], "'>", expected_names[1],
'menu':[
"</a>\n\n</li>\n\n</ul>\n\n</li>\n\n<li><a href='/", extra_app, '/',
{
urls[2], "'>",
'url': urls[0], 'name_string': name_vars[0],
expected_names[2], '</a>\n\n</li>\n\n</ul>'
'menu': [{'url': urls[1], 'name_string': name_vars[1]}]
))
 
hub.addApp(
 
SAMSApp(
 
name = main_app,
 
manifest = {
 
'default_language': 'de',
 
'views':[
 
{'url': urls[0], 'function': 'views.menu_test'},
 
{'url': urls[1], 'function': 'views.do_nothing'}
 
],
 
'menu':[
 
{
 
'url': urls[0], 'name_string': name_vars[0],
 
'menu': [{'url': urls[1], 'name_string': name_vars[1]}]
 
}
 
]
}
}
]
, langDict = {'de': dict(zip(name_vars, expected_names))}
}
)
, langDict = {'de': dict(zip(name_vars, expected_names))}
)
)
hub.addApp(
)
SAMSApp(
self.hub.addApp(
name = extra_app,
SAMSApp(
manifest = {
name = appname,
'default_language': 'de',
manifest = {
'views': [{'url': urls[2], 'function': 'views.do_nothing'}],
'default_language': 'de',
'menu': [{'url': urls[2], 'name_string': name_vars[2]}]
'views': [{'url': urls[2], 'function': 'views.do_nothing'}],
}, langDict = {'de': dict(zip(name_vars, expected_names))}
'menu': [{'url': urls[2], 'name_string': name_vars[2]}]
)
}, langDict = {'de': dict(zip(name_vars, expected_names))}
)
)
hub.flaskApp.config['DEBUG'] = True
)
with hub.flaskApp.test_client(self) as client:
self.hub.flaskApp.config['DEBUG'] = True
response = client.get('/')
with self.hub.flaskApp.test_client(self) as client:
self.assertIs(response.status_code, 200)
response = client.get('/')
self.assertEquals(response.data.decode('utf-8'), expected)
self.assertIs(response.status_code, 200)
response = client.get('/' + urls[1])
self.assertEquals(response.data.decode('utf-8'), expected)
self.assertIs(response.status_code, 200)
response = client.get('/' + urls[1])
response = client.get('/' + extra_app + '/' + urls[2])
self.assertIs(response.status_code, 200)
self.assertIs(response.status_code, 200)
response = client.get('/' + appname + '/' + urls[2])
self.assertIs(response.status_code, 200)
class CaseSAMSHubInitExceptions(unittest.TestCase):
class CaseSAMSHubInitExceptions(unittest.TestCase):
@@ -264,4 +273,6 @@ class CaseMinimalSAMSHub(unittest.TestCase):
@@ -264,4 +273,6 @@ class CaseMinimalSAMSHub(unittest.TestCase):
session_simulation['language'] = 'fr'
session_simulation['language'] = 'fr'
response = client.get('/test/hello')
response = client.get('/test/hello')
self.assertIs(response.status_code, 200)
self.assertIs(response.status_code, 200)
self.assertEquals(response.data.decode('utf-8'), expected)
self.assertEquals(response.data.decode('utf-8'), expected)
\ No newline at end of file
 
if __name__ == '__main__': unittest.main()
 
\ No newline at end of file
Loading