tailbone/tests/test_app.py

52 lines
1.5 KiB
Python
Raw Normal View History

2023-05-25 14:55:41 -05:00
# -*- coding: utf-8; -*-
import os
from unittest import TestCase
from pyramid.config import Configurator
from wuttjamaican.testing import FileConfigTestCase
from rattail.exceptions import ConfigurationError
from rattail.config import RattailConfig
from tailbone import app as mod
from tests.util import DataTestCase
class TestRattailConfig(TestCase):
config_path = os.path.abspath(
os.path.join(os.path.dirname(__file__), 'data', 'tailbone.conf'))
def test_settings_arg_must_include_config_path_by_default(self):
# error raised if path not provided
self.assertRaises(ConfigurationError, mod.make_rattail_config, {})
# get a config object if path provided
result = mod.make_rattail_config({'rattail.config': self.config_path})
2023-05-25 14:55:41 -05:00
# nb. cannot test isinstance(RattailConfig) b/c now uses wrapper!
self.assertIsNotNone(result)
self.assertTrue(hasattr(result, 'get'))
class TestMakePyramidConfig(DataTestCase):
def make_config(self):
myconf = self.write_file('web.conf', """
[rattail.db]
default.url = sqlite://
""")
self.settings = {
'rattail.config': myconf,
'mako.directories': 'tailbone:templates',
}
return mod.make_rattail_config(self.settings)
def test_basic(self):
model = self.app.model
model.Base.metadata.create_all(bind=self.config.appdb_engine)
# sanity check
pyramid_config = mod.make_pyramid_config(self.settings)
self.assertIsInstance(pyramid_config, Configurator)