def main(): # Configure python path parent = os.path.dirname(os.path.abspath(__file__)) if not parent in sys.path: sys.path.insert(0, parent) # Configure logging logging.basicConfig(level=logging.ERROR) # Configure setup from cio.conf import settings settings.configure(STORAGE={ 'BACKEND': 'sqlite://', 'NAME': ':memory:', 'OPTIONS': { 'check_same_thread': False } }) # Run tests tests = TestLoader.discover('tests') suite = TestSuite(tests) result = TestRunner(verbosity=1, failfast=False).run(suite) exit_code = len(result.failures) + len(result.errors) sys.exit(exit_code)
def test_settings(self): settings.configure(TXT={ 'foo': 'bar' }) plugin = plugins.get('txt') self.assertEqual(plugin.settings['foo'], 'bar')
def test_plugin(self): self.assertSetEqual(set(plugins.plugins.keys()), set(['txt', 'md'])) settings.configure(PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin', 'tests.UppercasePlugin' ]) self.assertSetEqual(set(plugins.plugins.keys()), set(['txt', 'md', 'up'])) node = cio.set('sv-se@page/title.up', {'name': u'lundberg'}, publish=False) self.assertListEqual(node._content, [{'name': u'lundberg'}, u'{"name": "lundberg"}', u'LUNDBERG']) cio.publish(node.uri) node = cio.get('page/title') raw_content = storage.get(node.uri) self.assertIsNotNone(raw_content) self.assertEqual(raw_content['uri'], 'i18n://sv-se@page/title.up#1') self.assertEqual(raw_content['content'], u'{"name": "lundberg"}') self.assertEqual(node.content, u'LUNDBERG') self.assertEqual(node.uri.ext, 'up') self.assertSetEqual(set(p for p in plugins), set(('txt', 'md', 'up')))
def test_plugin(self): self.assertSetEqual(set(plugins.plugins.keys()), set(['txt', 'md'])) settings.configure(PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin', 'tests.UppercasePlugin' ]) self.assertSetEqual(set(plugins.plugins.keys()), set(['txt', 'md', 'up'])) node = cio.set('sv-se@page/title.up', {'name': u'lundberg'}, publish=False) self.assertListEqual(node._content, [{ 'name': u'lundberg' }, u'{"name": "lundberg"}', u'LUNDBERG']) cio.publish(node.uri) node = cio.get('page/title') raw_content = storage.get(node.uri) self.assertIsNotNone(raw_content) self.assertEqual(raw_content['uri'], 'i18n://sv-se@page/title.up#1') self.assertEqual(raw_content['content'], u'{"name": "lundberg"}') self.assertEqual(node.content, u'LUNDBERG') self.assertEqual(node.uri.ext, 'up') self.assertSetEqual(set(p for p in plugins), set(('txt', 'md', 'up')))
def configure(): from django.conf import settings as django_settings from cio.conf import settings # Djedi default config config = dict( ENVIRONMENT={ 'default': { 'i18n': django_settings.LANGUAGE_CODE, 'l10n': getattr(django_settings, 'ROOT_URLCONF', 'local').split('.', 1)[0], 'g11n': 'global' } }, CACHE='djedi.backends.django.cache.Backend', STORAGE='djedi.backends.django.db.Backend', PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin', 'djedi.plugins.img.ImagePlugin' ], THEME='darth' ) # Update config with global djedi django settings config.update(getattr(django_settings, 'DJEDI', {})) # Overwrite config with prefixed variables from django settings for setting in ('ENVIRONMENT', 'CACHE', 'STORAGE', 'PIPELINE', 'PLUGINS', 'THEME'): conf = getattr(django_settings, 'DJEDI_%s' % setting, None) if conf is not None: config[setting] = conf # Configure content-io settings settings.configure(config)
def test_settings(self): self.assertEqual(settings.URI_NAMESPACE_SEPARATOR, default_settings.URI_NAMESPACE_SEPARATOR) pre = settings.STORAGE with settings(): settings.configure(STORAGE='bogus.newstorage') self.assertEqual(settings.STORAGE, 'bogus.newstorage') self.assertEqual(settings.STORAGE, pre)
def main(): # Configure python path parent = os.path.dirname(os.path.abspath(__file__)) if not parent in sys.path: sys.path.insert(0, parent) # Configure logging logging.basicConfig(level=logging.ERROR) # Configure setup from cio.conf import settings settings.configure(STORAGE={ 'BACKEND': 'sqlite://:memory:?foo=bar', 'NAME': '__overridden__', 'OPTIONS': { 'check_same_thread': False } }) # Run tests tests = TestLoader.discover('tests') suite = TestSuite(tests) result = TestRunner(verbosity=1, failfast=False).run(suite) exit_code = len(result.failures) + len(result.errors) sys.exit(exit_code)
def setUp(self): super(ApiTest, self).setUp() from cio.conf import settings settings.configure(PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin', 'tests.UppercasePlugin' ])
def assert_local_thread(): settings.configure(local=True, CACHE={'PIPE': {'CACHE_ON_GET': False}}) self.assertIn('BACKEND', settings.CACHE, 'Cache settings should be merged') # Test twice so that not the first get() caches the reponse in pipeline with self.assertCache(calls=1, misses=1, hits=0, sets=0): cio.get('local/settings', default=u'default', lazy=False) with self.assertCache(calls=1, misses=1, hits=0, sets=0): cio.get('local/settings', default=u'default', lazy=False)
def configure(self): from cio.conf import settings settings.configure( ENVIRONMENT={ 'default': { 'i18n': 'sv-se', 'l10n': 'tests', 'g11n': 'global' } }, )
def setUp(self): super(ApiTest, self).setUp() from cio.conf import settings settings.configure( PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin', 'tests.UppercasePlugin' ] )
def test_replace_node_in_render_and_load(self): settings.configure(PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin', 'tests.ReplacerPlugin' ]) node = cio.set('sv-se@page/mine.rpl#1', "My own content") self.assertNotEqual(node.uri.path, 'page/mine.rpl') self.assertEqual(node.uri.path, 'page/rendered.rpl') self.assertEqual(node.content, 'REPLACED') node = cio.load('sv-se@page/loaded.rpl') self.assertEqual(node['uri'].path, 'page/loaded')
def assert_local_thread(): settings.configure(local=True, CACHE={'PIPE': { 'CACHE_ON_GET': False }}) self.assertIn('BACKEND', settings.CACHE, 'Cache settings should be merged') # Test twice so that not the first get() caches the reponse in pipeline with self.assertCache(calls=1, misses=1, hits=0, sets=0): cio.get('local/settings', default=u'default', lazy=False) with self.assertCache(calls=1, misses=1, hits=0, sets=0): cio.get('local/settings', default=u'default', lazy=False)
def configure(self): from cio.conf import settings settings.configure(ENVIRONMENT={ 'default': { 'i18n': 'sv-se', 'l10n': 'tests', 'g11n': 'global' } }, PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin' ])
def configure(self): from cio.conf import settings settings.configure( ENVIRONMENT={ 'default': { 'i18n': 'sv-se', 'l10n': 'tests', 'g11n': 'global' } }, PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin' ] )
def configure(): from django.conf import settings as django_settings from cio.conf import settings # Configure content-io with django settings conf = dict( ENVIRONMENT={ "default": { "i18n": django_settings.LANGUAGE_CODE, "l10n": getattr(django_settings, "ROOT_URLCONF", "local").split(".", 1)[0], "g11n": "global", } }, CACHE="djedi.backends.django.cache.Backend", STORAGE="djedi.backends.django.db.Backend", PLUGINS=["cio.plugins.txt.TextPlugin", "cio.plugins.md.MarkdownPlugin", "djedi.plugins.img.ImagePlugin"], THEME="darth", ) conf.update(getattr(django_settings, "DJEDI", {})) settings.configure(conf)
def test_settings(self): self.assertEqual(settings.URI_NAMESPACE_SEPARATOR, default_settings.URI_NAMESPACE_SEPARATOR) pre = settings.STORAGE with settings(): settings.configure(STORAGE='bogus.newstorage') self.assertEqual(settings.STORAGE, 'bogus.newstorage') self.assertEqual(settings.STORAGE, pre) self.assertEqual(settings.STORAGE['NAME'], ':memory:', "Should've been overridden") settings.STORAGE['PIPE'] = {'FOO': 'bar'} def assert_local_thread_settings(): settings.configure(local=True, STORAGE={'PIPE': {'HAM': 'spam'}}) self.assertEqual(settings.STORAGE['PIPE']['FOO'], 'bar') self.assertEqual(settings.STORAGE['PIPE']['HAM'], 'spam') thread = threading.Thread(target=assert_local_thread_settings) thread.start() thread.join() self.assertEqual(settings.STORAGE['PIPE']['FOO'], 'bar') self.assertNotIn('HAM', settings.STORAGE['PIPE'])
def configure(): from django.conf import settings as django_settings from cio.conf import settings # Configure content-io with django settings conf = dict( ENVIRONMENT={ 'default': { 'i18n': django_settings.LANGUAGE_CODE, 'l10n': getattr(django_settings, 'ROOT_URLCONF', 'local').split('.', 1)[0], 'g11n': 'global' } }, CACHE='djedi.backends.django.cache.Backend', STORAGE='djedi.backends.django.db.Backend', PLUGINS=[ 'cio.plugins.txt.TextPlugin', 'cio.plugins.md.MarkdownPlugin', 'djedi.plugins.img.ImagePlugin' ], THEME='darth' ) conf.update(getattr(django_settings, 'DJEDI', {})) settings.configure(conf)
def assert_local_thread_settings(): settings.configure(local=True, STORAGE={'PIPE': {'HAM': 'spam'}}) self.assertEqual(settings.STORAGE['PIPE']['FOO'], 'bar') self.assertEqual(settings.STORAGE['PIPE']['HAM'], 'spam')
def test_settings(self): settings.configure(TXT={'foo': 'bar'}) plugin = plugins.get('txt') self.assertEqual(plugin.settings['foo'], 'bar')