Esempio n. 1
0
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)
Esempio n. 2
0
    def test_settings(self):
        settings.configure(TXT={
            'foo': 'bar'
        })

        plugin = plugins.get('txt')
        self.assertEqual(plugin.settings['foo'], 'bar')
Esempio n. 3
0
    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')))
Esempio n. 4
0
    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')))
Esempio n. 5
0
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)
Esempio n. 6
0
 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)
Esempio n. 7
0
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)
Esempio n. 8
0
    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'
        ])
Esempio n. 9
0
        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)
Esempio n. 10
0
 def configure(self):
     from cio.conf import settings
     settings.configure(
         ENVIRONMENT={
             'default': {
                 'i18n': 'sv-se',
                 'l10n': 'tests',
                 'g11n': 'global'
             }
         },
     )
Esempio n. 11
0
    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'
            ]
        )
Esempio n. 12
0
    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')
Esempio n. 13
0
        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)
Esempio n. 14
0
 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'
                        ])
Esempio n. 15
0
 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'
         ]
     )
Esempio n. 16
0
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)
Esempio n. 17
0
    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'])
Esempio n. 18
0
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)
Esempio n. 19
0
 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')
Esempio n. 20
0
    def test_settings(self):
        settings.configure(TXT={'foo': 'bar'})

        plugin = plugins.get('txt')
        self.assertEqual(plugin.settings['foo'], 'bar')