Exemplo n.º 1
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)
Exemplo n.º 2
0
    def test_uri(self):
        self.assertEqual(URI('i18n://sv@page/title.txt'),
                         'i18n://sv@page/title.txt')

        uri = URI(scheme='i18n',
                  namespace='sv-se',
                  path='page/title',
                  ext='txt')
        self.assertEqual(uri, 'i18n://sv-se@page/title.txt')

        uri = URI('page/title')
        self.assertFalse(uri.is_absolute())
        self.assertEqual(uri.scheme, 'i18n')
        self.assertIsNone(uri.namespace)
        self.assertEqual(uri.path, 'page/title')
        self.assertIsNone(uri.ext)

        uri = uri.clone(namespace='sv-se')
        self.assertFalse(uri.is_absolute())
        self.assertEqual(uri, 'i18n://sv-se@page/title')

        uri = uri.clone(ext='txt')
        self.assertEqual(uri, 'i18n://sv-se@page/title.txt')
        self.assertTrue(uri.is_absolute())

        uri = uri.clone(path='images/me.jpg/title', version='draft')
        self.assertEqual(uri, 'i18n://sv-se@images/me.jpg/title.txt#draft')
        self.assertEqual(uri.version, 'draft')
        self.assertEqual(uri.path, 'images/me.jpg/title')
        self.assertEqual(uri.ext, 'txt')

        uri = uri.clone(ext=None)
        self.assertEqual(uri, 'i18n://sv-se@images/me.jpg/title#draft')
        self.assertIsNone(uri.ext)

        with settings(URI_DEFAULT_SCHEME='l10n'):
            uri = URI('page/title')
            self.assertEqual(uri, 'l10n://page/title')
            self.assertEqual(uri.scheme, 'l10n')
        uri = uri.clone(scheme=None)
        self.assertEqual(uri, 'page/title')
        self.assertEqual(uri.scheme, None)

        uri = URI('i18n://sv@page/title.txt#draft')
        self.assertEqual(uri, 'i18n://sv@page/title.txt#draft')
        self.assertEqual(uri.version, 'draft')
Exemplo n.º 3
0
    def test_uri(self):
        self.assertEqual(URI('i18n://sv@page/title.txt'), 'i18n://sv@page/title.txt')

        uri = URI(scheme='i18n', namespace='sv-se', path='page/title', ext='txt')
        self.assertEqual(uri, 'i18n://sv-se@page/title.txt')

        uri = URI('page/title')
        self.assertFalse(uri.is_absolute())
        self.assertEqual(uri.scheme, 'i18n')
        self.assertIsNone(uri.namespace)
        self.assertEqual(uri.path, 'page/title')
        self.assertIsNone(uri.ext)

        uri = uri.clone(namespace='sv-se')
        self.assertFalse(uri.is_absolute())
        self.assertEqual(uri, 'i18n://sv-se@page/title')

        uri = uri.clone(ext='txt')
        self.assertEqual(uri, 'i18n://sv-se@page/title.txt')
        self.assertTrue(uri.is_absolute())

        uri = uri.clone(path='images/me.jpg/title', version='draft')
        self.assertEqual(uri, 'i18n://sv-se@images/me.jpg/title.txt#draft')
        self.assertEqual(uri.version, 'draft')
        self.assertEqual(uri.path, 'images/me.jpg/title')
        self.assertEqual(uri.ext, 'txt')

        uri = uri.clone(ext=None)
        self.assertEqual(uri, 'i18n://sv-se@images/me.jpg/title#draft')
        self.assertIsNone(uri.ext)

        with settings(URI_DEFAULT_SCHEME='l10n'):
            uri = URI('page/title')
            self.assertEqual(uri, 'l10n://page/title')
            self.assertEqual(uri.scheme, 'l10n')
        uri = uri.clone(scheme=None)
        self.assertEqual(uri, 'page/title')
        self.assertEqual(uri.scheme, None)

        uri = URI('i18n://sv@page/title.txt#draft')
        self.assertEqual(uri, 'i18n://sv@page/title.txt#draft')
        self.assertEqual(uri.version, 'draft')
Exemplo n.º 4
0
    def test_context(self):
        self.assertTupleEqual(cio.env.state.i18n, ('sv-se',))

        with settings():
            settings.ENVIRONMENT['bogus'] = {
                'g11n': 'global',
                'i18n': ('sv', 'en'),
                'l10n': ('foo', 'bar')
            }

            with cio.env('bogus'):
                self.assertTupleEqual(cio.env.state.i18n, ('sv', 'en'))
                self.assertTupleEqual(cio.env.state.l10n, ('foo', 'bar'))

            with cio.env(i18n='en-us'):
                node = cio.get('i18n://label/firstname', lazy=False)
                buffered_node = cio.get('i18n://label/email')

                self.assertTupleEqual(cio.env.i18n, ('en-us',))
                self.assertEqual(len(pipeline._buffer), 1)
                self.assertEqual(len(pipeline.history), 1)

                def assert_new_thread_env():
                    self.assertTupleEqual(cio.env.i18n, ('sv-se',))
                    self.assertEqual(len(pipeline._buffer), 0)
                    self.assertEqual(len(pipeline.history), 0)
                    cio.get('i18n://label/surname', lazy=False)
                    self.assertEqual(len(pipeline.history), 1)

                thread = threading.Thread(target=assert_new_thread_env)
                thread.start()
                thread.join()

                buffered_node.flush()
                self.assertEqual(len(pipeline._buffer), 0)
                self.assertEqual(len(pipeline.history), 2)
                self.assertListEqual(pipeline.history.list('get'), [node, buffered_node._node])

        self.assertNotIn('bogus', settings.ENVIRONMENT.keys())
Exemplo n.º 5
0
    def test_context(self):
        self.assertTupleEqual(cio.env.state.i18n, ('sv-se',))

        with settings():
            settings.ENVIRONMENT['bogus'] = {
                'g11n': 'global',
                'i18n': ('sv', 'en'),
                'l10n': ('foo', 'bar')
            }

            with cio.env('bogus'):
                self.assertTupleEqual(cio.env.state.i18n, ('sv', 'en'))
                self.assertTupleEqual(cio.env.state.l10n, ('foo', 'bar'))

            with cio.env(i18n='en-us'):
                node = cio.get('i18n://label/firstname', lazy=False)
                buffered_node = cio.get('i18n://label/email')

                self.assertTupleEqual(cio.env.i18n, ('en-us',))
                self.assertEqual(len(pipeline._buffer), 1)
                self.assertEqual(len(pipeline.history), 1)

                def assert_new_thread_env():
                    self.assertTupleEqual(cio.env.i18n, ('sv-se',))
                    self.assertEqual(len(pipeline._buffer), 0)
                    self.assertEqual(len(pipeline.history), 0)
                    cio.get('i18n://label/surname', lazy=False)
                    self.assertEqual(len(pipeline.history), 1)

                thread = threading.Thread(target=assert_new_thread_env)
                thread.start()
                thread.join()

                buffered_node.flush()
                self.assertEqual(len(pipeline._buffer), 0)
                self.assertEqual(len(pipeline.history), 2)
                self.assertListEqual(pipeline.history.list('get'), [node, buffered_node._node])

        self.assertNotIn('bogus', settings.ENVIRONMENT.keys())
Exemplo 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)

        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'])