test_migrationutils.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. from django.test import TestCase
  2. from django.utils import translation
  3. from misago.core import migrationutils
  4. from misago.core.models import CacheVersion
  5. class LazyTranslationStringTests(TestCase):
  6. def setUp(self):
  7. translation.activate('de')
  8. def tearDown(self):
  9. translation.deactivate()
  10. def test_ugettext_lazy(self):
  11. """ugettext_lazy for migrations maintains untranslated message"""
  12. string = migrationutils.ugettext_lazy('content type')
  13. self.assertEqual(string.message, 'content type')
  14. self.assertEqual(unicode(string), 'Inhaltstyp')
  15. class CacheBusterUtilsTests(TestCase):
  16. def setUp(self):
  17. self.orm = {
  18. 'core.CacheVersion': CacheVersion,
  19. }
  20. def test_with_core_models(self):
  21. """with_core_models builds correct dict of models"""
  22. models = {
  23. u'conf.setting': {
  24. 'Meta': {'object_name': 'Setting'},
  25. 'default_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
  26. 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
  27. 'dry_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
  28. 'form_field': ('django.db.models.fields.CharField',[], {'max_length': '255'}),
  29. 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['conf.SettingsGroup']"}),
  30. u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
  31. 'is_lazy': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
  32. 'legend': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
  33. 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
  34. 'order': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
  35. 'pickled_field_extra': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
  36. 'python_type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
  37. 'setting': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
  38. },
  39. u'conf.settingsgroup': {
  40. 'Meta': {'object_name': 'SettingsGroup'},
  41. 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
  42. u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
  43. 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
  44. 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
  45. }
  46. }
  47. final_models = migrationutils.with_core_models('0001_initial')
  48. self.assertTrue('core.cacheversion' in final_models),
  49. final_models = migrationutils.with_core_models('0001_initial', models)
  50. self.assertTrue('core.cacheversion' in final_models),
  51. self.assertTrue('conf.settingsgroup' in final_models),
  52. self.assertTrue('conf.setting' in final_models),
  53. def test_cachebuster_register_cache(self):
  54. """
  55. cachebuster_register_cache registers cache on migration successfully
  56. """
  57. cache_name = 'eric_licenses'
  58. migrationutils.cachebuster_register_cache(self.orm, cache_name)
  59. CacheVersion.objects.get(cache=cache_name)
  60. def test_cachebuster_unregister_cache(self):
  61. """
  62. cachebuster_unregister_cache removes cache on migration successfully
  63. """
  64. cache_name = 'eric_licenses'
  65. migrationutils.cachebuster_register_cache(self.orm, cache_name)
  66. CacheVersion.objects.get(cache=cache_name)
  67. migrationutils.cachebuster_unregister_cache(self.orm, cache_name)
  68. with self.assertRaises(CacheVersion.DoesNotExist):
  69. CacheVersion.objects.get(cache=cache_name)