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