test_migrationutils.py 4.6 KB

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