2015-05-03 19:36:19 -05:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
2016-10-09 21:12:13 -05:00
|
|
|
from __future__ import unicode_literals, absolute_import
|
2015-05-03 19:36:19 -05:00
|
|
|
|
|
|
|
import os
|
|
|
|
from unittest import TestCase
|
|
|
|
|
|
|
|
from sqlalchemy import create_engine
|
|
|
|
|
|
|
|
from rattail.config import RattailConfig
|
|
|
|
from rattail.exceptions import ConfigurationError
|
|
|
|
from rattail.db import Session as RattailSession
|
|
|
|
|
|
|
|
from tailbone import app
|
|
|
|
from tailbone.db import Session as TailboneSession
|
|
|
|
|
|
|
|
|
|
|
|
class TestRattailConfig(TestCase):
|
|
|
|
|
|
|
|
config_path = os.path.abspath(
|
|
|
|
os.path.join(os.path.dirname(__file__), 'data', 'tailbone.conf'))
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
# may or may not be necessary depending on test
|
|
|
|
TailboneSession.remove()
|
|
|
|
|
|
|
|
def test_settings_arg_must_include_config_path_by_default(self):
|
|
|
|
# error raised if path not provided
|
|
|
|
self.assertRaises(ConfigurationError, app.make_rattail_config, {})
|
|
|
|
# get a config object if path provided
|
2016-10-09 21:12:13 -05:00
|
|
|
result = app.make_rattail_config({'rattail.config': self.config_path})
|
2015-05-03 19:36:19 -05:00
|
|
|
self.assertTrue(isinstance(result, RattailConfig))
|
|
|
|
|
|
|
|
def test_settings_arg_may_override_config_and_engines(self):
|
|
|
|
rattail_config = RattailConfig()
|
|
|
|
engine = create_engine('sqlite://')
|
|
|
|
result = app.make_rattail_config({
|
|
|
|
'rattail_config': rattail_config,
|
|
|
|
'rattail_engines': {'default': engine}})
|
|
|
|
self.assertTrue(result is rattail_config)
|
|
|
|
self.assertTrue(RattailSession.kw['bind'] is engine)
|
|
|
|
self.assertTrue(TailboneSession.bind is engine)
|