Browse Source

Added tests for core migrationutils.

Rafał Pitoń 11 years ago
parent
commit
7c15f7a9ff

+ 3 - 6
misago/conf/tests/test_migrationutils.py

@@ -9,12 +9,9 @@ class MigrationUtilsTests(TestCase):
         models = {
             u'core.cacheversion': {
                 'Meta': {'object_name': 'CacheVersion'},
-                'cache': ('django.db.models.fields.CharField',
-                          [], {'max_length': '128'}),
-                u'id': ('django.db.models.fields.AutoField',
-                        [], {'primary_key': 'True'}),
-                'version': ('django.db.models.fields.PositiveIntegerField',
-                            [], {'default': '0'})
+                'cache': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+                u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+                'version': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
             }
         }
 

+ 3 - 3
misago/core/migrationutils.py

@@ -26,14 +26,14 @@ def with_core_models(migration, this_migration=None):
 
 
 def cachebuster_register_cache(orm, cache):
-    orm.CacheVersion.objects.create(cache=cache)
+    orm['core.CacheVersion'].objects.create(cache=cache)
 
 
 def cachebuster_unregister_cache(orm, cache):
     try:
-        cache = orm.CacheVersion.objects.get(cache=cache)
+        cache = orm['core.CacheVersion'].objects.get(cache=cache)
         cache.delete()
-    except orm.CacheVersion.DoesNotExist:
+    except orm['core.CacheVersion'].DoesNotExist:
         raise ValueError('Cache "%s" is not registered' % cache)
 
 

+ 84 - 0
misago/core/tests/test_migrationutils.py

@@ -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)
+