forked from s3lph/matemat
63 lines
2.3 KiB
Python
63 lines
2.3 KiB
Python
|
|
from unittest import TestCase
|
|
from unittest.mock import patch
|
|
|
|
from io import StringIO
|
|
|
|
from matemat.webserver import parse_config_file
|
|
|
|
_EMPTY_CONFIG = ''
|
|
|
|
_FULL_CONFIG = '''
|
|
[Matemat]
|
|
|
|
Address=fe80::0123:45ff:fe67:89ab
|
|
Port = 8080
|
|
|
|
StaticPath =/var/test/static
|
|
TemplatePath= /var/test/templates
|
|
|
|
[Pagelets]
|
|
Name=Matemat
|
|
(Unit Test)
|
|
UploadDir= /var/test/static/upload
|
|
DatabaseFile=/var/test/db/test.db
|
|
'''
|
|
|
|
|
|
class TestConfig(TestCase):
|
|
|
|
def test_parse_config_empty_defualt_values(self):
|
|
with patch('builtins.open', return_value=StringIO(_EMPTY_CONFIG)):
|
|
config = parse_config_file('test')
|
|
self.assertIn('listen', config)
|
|
self.assertIn('port', config)
|
|
self.assertIn('staticroot', config)
|
|
self.assertIn('templateroot', config)
|
|
self.assertIn('pagelet_variables', config)
|
|
self.assertEqual('::', config['listen'])
|
|
self.assertEqual(80, config['port'])
|
|
self.assertEqual('/var/matemat/static', config['staticroot'])
|
|
self.assertEqual('/var/matemat/templates', config['templateroot'])
|
|
self.assertIsInstance(config['pagelet_variables'], dict)
|
|
self.assertEqual(0, len(config['pagelet_variables']))
|
|
|
|
def test_parse_config_full(self):
|
|
with patch('builtins.open', return_value=StringIO(_FULL_CONFIG)):
|
|
config = parse_config_file('test')
|
|
self.assertIn('listen', config)
|
|
self.assertIn('port', config)
|
|
self.assertIn('staticroot', config)
|
|
self.assertIn('templateroot', config)
|
|
self.assertIn('pagelet_variables', config)
|
|
self.assertIn('Name', config['pagelet_variables'])
|
|
self.assertIn('UploadDir', config['pagelet_variables'])
|
|
self.assertIn('DatabaseFile', config['pagelet_variables'])
|
|
|
|
self.assertEqual('fe80::0123:45ff:fe67:89ab', config['listen'])
|
|
self.assertEqual(8080, config['port'])
|
|
self.assertEqual('/var/test/static', config['staticroot'])
|
|
self.assertEqual('/var/test/templates', config['templateroot'])
|
|
self.assertEqual('Matemat\n(Unit Test)', config['pagelet_variables']['Name'])
|
|
self.assertEqual('/var/test/static/upload', config['pagelet_variables']['UploadDir'])
|
|
self.assertEqual('/var/test/db/test.db', config['pagelet_variables']['DatabaseFile'])
|