|
@@ -0,0 +1,84 @@
|
|
|
+from django.test import TestCase
|
|
|
+from django.utils import translation
|
|
|
+from misago.core import migrationutils
|
|
|
+from misago.core.models import CacheVersion
|
|
|
+
|
|
|
+
|
|
|
+class LazyTranslationStringTests(TestCase):
|
|
|
+ def setUp(self):
|
|
|
+ translation.activate('de')
|
|
|
+
|
|
|
+ def tearDown(self):
|
|
|
+ translation.deactivate()
|
|
|
+
|
|
|
+ def test_ugettext_lazy(self):
|
|
|
+ """ugettext_lazy for migrations maintains untranslated message"""
|
|
|
+ string = migrationutils.ugettext_lazy('content type')
|
|
|
+ self.assertEqual(string.message, 'content type')
|
|
|
+ self.assertEqual(unicode(string), 'Inhaltstyp')
|
|
|
+
|
|
|
+
|
|
|
+class CacheBusterUtilsTests(TestCase):
|
|
|
+ def setUp(self):
|
|
|
+ self.orm = {
|
|
|
+ 'core.CacheVersion': CacheVersion,
|
|
|
+ }
|
|
|
+
|
|
|
+ def test_with_core_models(self):
|
|
|
+ """with_core_models builds correct dict of models"""
|
|
|
+ models = {
|
|
|
+ u'conf.setting': {
|
|
|
+ 'Meta': {'object_name': 'Setting'},
|
|
|
+ 'default_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
|
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
|
+ 'dry_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
|
+ 'form_field': ('django.db.models.fields.CharField',[], {'max_length': '255'}),
|
|
|
+ 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['conf.SettingsGroup']"}),
|
|
|
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
+ 'is_lazy': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
|
+ 'legend': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
|
|
|
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
|
|
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
|
|
|
+ 'pickled_field_extra': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
|
+ 'python_type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
|
|
+ 'setting': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
|
|
|
+ },
|
|
|
+ u'conf.settingsgroup': {
|
|
|
+ 'Meta': {'object_name': 'SettingsGroup'},
|
|
|
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
|
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
|
|
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ final_models = migrationutils.with_core_models('0001_initial')
|
|
|
+ self.assertTrue('core.cacheversion' in final_models),
|
|
|
+
|
|
|
+ final_models = migrationutils.with_core_models('0001_initial', models)
|
|
|
+ self.assertTrue('core.cacheversion' in final_models),
|
|
|
+ self.assertTrue('conf.settingsgroup' in final_models),
|
|
|
+ self.assertTrue('conf.setting' in final_models),
|
|
|
+
|
|
|
+ def test_cachebuster_register_cache(self):
|
|
|
+ """
|
|
|
+ cachebuster_register_cache registers cache on migration successfully
|
|
|
+ """
|
|
|
+
|
|
|
+ cache_name = 'eric_licenses'
|
|
|
+ migrationutils.cachebuster_register_cache(self.orm, cache_name)
|
|
|
+ CacheVersion.objects.get(cache=cache_name)
|
|
|
+
|
|
|
+ def test_cachebuster_unregister_cache(self):
|
|
|
+ """
|
|
|
+ cachebuster_unregister_cache removes cache on migration successfully
|
|
|
+ """
|
|
|
+
|
|
|
+ cache_name = 'eric_licenses'
|
|
|
+ migrationutils.cachebuster_register_cache(self.orm, cache_name)
|
|
|
+ CacheVersion.objects.get(cache=cache_name)
|
|
|
+
|
|
|
+ migrationutils.cachebuster_unregister_cache(self.orm, cache_name)
|
|
|
+ with self.assertRaises(CacheVersion.DoesNotExist):
|
|
|
+ CacheVersion.objects.get(cache=cache_name)
|
|
|
+
|