Browse Source

Fixed test suite for Dj 1.7

Rafał Pitoń 11 years ago
parent
commit
c077ab8a0c

+ 3 - 3
misago/admin/hierarchy.py

@@ -107,9 +107,9 @@ class AdminHierarchyBuilder(object):
 
 
             for index, node in enumerate(self.nodes_record):
             for index, node in enumerate(self.nodes_record):
                 if node['parent'] in nodes_dict:
                 if node['parent'] in nodes_dict:
-                    node_obj = Node(link=node['link'],
-                                    name=node['name'],
-                                    icon=node['icon'])
+                    node_obj = Node(name=node['name'],
+                                    icon=node['icon'],
+                                    link=node['link'])
 
 
                     parent = nodes_dict[node['parent']]
                     parent = nodes_dict[node['parent']]
                     if node['after']:
                     if node['after']:

+ 8 - 8
misago/admin/tests/test_admin_hierarchy.py

@@ -5,21 +5,21 @@ from misago.admin.hierarchy import Node
 class NodeTests(TestCase):
 class NodeTests(TestCase):
     def test_add_node(self):
     def test_add_node(self):
         """add_node added node"""
         """add_node added node"""
-        master = Node('misago:index', 'Apples')
+        master = Node(name='Apples', link='misago:index')
 
 
-        child = Node('misago:index', 'Oranges')
+        child = Node(name='Oranges', link='misago:index')
         master.add_node(child)
         master.add_node(child)
 
 
         self.assertTrue(child in master.children())
         self.assertTrue(child in master.children())
 
 
     def test_add_node_after(self):
     def test_add_node_after(self):
         """add_node added node after specific node"""
         """add_node added node after specific node"""
-        master = Node('misago:index', 'Apples')
+        master = Node(name='Apples', link='misago:index')
 
 
-        child = Node('misago:index', 'Oranges')
+        child = Node(name='Oranges', link='misago:index')
         master.add_node(child)
         master.add_node(child)
 
 
-        test = Node('misago:index', 'Potatoes')
+        test = Node(name='Potatoes', link='misago:index')
         master.add_node(test, after='misago:index')
         master.add_node(test, after='misago:index')
 
 
         all_nodes = master.children()
         all_nodes = master.children()
@@ -29,12 +29,12 @@ class NodeTests(TestCase):
 
 
     def test_add_node_before(self):
     def test_add_node_before(self):
         """add_node added node  before specific node"""
         """add_node added node  before specific node"""
-        master = Node('misago:index', 'Apples')
+        master = Node(name='Apples', link='misago:index')
 
 
-        child = Node('misago:index', 'Oranges')
+        child = Node(name='Oranges', link='misago:index')
         master.add_node(child)
         master.add_node(child)
 
 
-        test = Node('misago:index', 'Potatoes')
+        test = Node(name='Potatoes', link='misago:index')
         master.add_node(test, before='misago:index')
         master.add_node(test, before='misago:index')
 
 
         all_nodes = master.children()
         all_nodes = master.children()

+ 9 - 33
misago/conf/tests/test_migrationutils.py

@@ -1,38 +1,12 @@
+from django.apps import apps
 from django.test import TestCase
 from django.test import TestCase
 from misago.core import threadstore
 from misago.core import threadstore
 from misago.conf import migrationutils
 from misago.conf import migrationutils
 from misago.conf.models import SettingsGroup, Setting
 from misago.conf.models import SettingsGroup, Setting
 
 
 
 
-class MigrationUtilsTests(TestCase):
-    def test_with_conf_models(self):
-        """with_conf_models builds correct dict of models"""
-        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'})
-            }
-        }
-
-        final_models = migrationutils.with_conf_models('0001_initial')
-        self.assertTrue('conf.settingsgroup' in final_models),
-        self.assertTrue('conf.setting' in final_models),
-
-        final_models = migrationutils.with_conf_models('0001_initial', models)
-        self.assertTrue('conf.settingsgroup' in final_models),
-        self.assertTrue('conf.setting' in final_models),
-        self.assertTrue('core.cacheversion' in final_models),
-
-
 class DBConfMigrationUtilsTests(TestCase):
 class DBConfMigrationUtilsTests(TestCase):
     def setUp(self):
     def setUp(self):
-        self.orm = {
-            'conf.SettingsGroup': SettingsGroup,
-            'conf.Setting': Setting,
-        }
-
         self.test_group = {
         self.test_group = {
             'key': 'test_group',
             'key': 'test_group',
             'name': "Test settings",
             'name': "Test settings",
@@ -58,7 +32,7 @@ class DBConfMigrationUtilsTests(TestCase):
             )
             )
         }
         }
 
 
-        migrationutils.migrate_settings_group(self.orm, self.test_group)
+        migrationutils.migrate_settings_group(apps, self.test_group)
         self.groups_count = SettingsGroup.objects.count()
         self.groups_count = SettingsGroup.objects.count()
 
 
     def tearDown(self):
     def tearDown(self):
@@ -66,8 +40,9 @@ class DBConfMigrationUtilsTests(TestCase):
 
 
     def test_get_custom_group_and_settings(self):
     def test_get_custom_group_and_settings(self):
         """tests setup created settings group"""
         """tests setup created settings group"""
-        custom_group = migrationutils.get_group(self.orm,
-                                                self.test_group['key'])
+        custom_group = migrationutils.get_group(
+            apps.get_model('misago_conf', 'SettingsGroup'),
+            self.test_group['key'])
 
 
         self.assertEqual(custom_group.key, self.test_group['key'])
         self.assertEqual(custom_group.key, self.test_group['key'])
         self.assertEqual(custom_group.name, self.test_group['name'])
         self.assertEqual(custom_group.name, self.test_group['name'])
@@ -75,7 +50,7 @@ class DBConfMigrationUtilsTests(TestCase):
                          self.test_group['description'])
                          self.test_group['description'])
 
 
         custom_settings = migrationutils.get_custom_settings_values(
         custom_settings = migrationutils.get_custom_settings_values(
-            self.orm, custom_group)
+            custom_group)
 
 
         self.assertEqual(custom_settings['fish_name'], 'Eric')
         self.assertEqual(custom_settings['fish_name'], 'Eric')
         self.assertTrue('fish_license_no' not in custom_settings)
         self.assertTrue('fish_license_no' not in custom_settings)
@@ -109,8 +84,9 @@ class DBConfMigrationUtilsTests(TestCase):
         }
         }
 
 
         migrationutils.migrate_settings_group(
         migrationutils.migrate_settings_group(
-            self.orm, new_group, old_group_key=self.test_group['key'])
-        db_group = migrationutils.get_group(self.orm, new_group['key'])
+            apps, new_group, old_group_key=self.test_group['key'])
+        db_group = migrationutils.get_group(
+            apps.get_model('misago_conf', 'SettingsGroup'), new_group['key'])
 
 
         self.assertEqual(SettingsGroup.objects.count(), self.groups_count)
         self.assertEqual(SettingsGroup.objects.count(), self.groups_count)
         self.assertEqual(db_group.key, new_group['key'])
         self.assertEqual(db_group.key, new_group['key'])

+ 2 - 6
misago/conf/tests/test_settings.py

@@ -1,3 +1,4 @@
+from django.apps import apps
 from django.conf import settings as dj_settings
 from django.conf import settings as dj_settings
 from django.test import TestCase
 from django.test import TestCase
 from misago.core import threadstore
 from misago.core import threadstore
@@ -33,11 +34,6 @@ class GatewaySettingsTests(TestCase):
             gateway.LoremIpsum
             gateway.LoremIpsum
 
 
     def test_setting_lazy(self):
     def test_setting_lazy(self):
-        orm = {
-            'conf.SettingsGroup': SettingsGroup,
-            'conf.Setting': Setting,
-        }
-
         test_group = {
         test_group = {
             'key': 'test_group',
             'key': 'test_group',
             'name': "Test settings",
             'name': "Test settings",
@@ -75,7 +71,7 @@ class GatewaySettingsTests(TestCase):
             )
             )
         }
         }
 
 
-        migrate_settings_group(orm, test_group)
+        migrate_settings_group(apps, test_group)
 
 
         self.assertTrue(gateway.lazy_fish_name)
         self.assertTrue(gateway.lazy_fish_name)
         self.assertTrue(db_settings.lazy_fish_name)
         self.assertTrue(db_settings.lazy_fish_name)

+ 5 - 71
misago/core/tests/test_migrationutils.py

@@ -1,82 +1,16 @@
+from django.apps import apps
 from django.test import TestCase
 from django.test import TestCase
-from django.utils import translation
 from misago.core import migrationutils
 from misago.core import migrationutils
 from misago.core.models import CacheVersion
 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 OriginalMessageTests(TestCase):
-    def test_original_message(self):
-        """original_message returns untranslated message for misago messages"""
-        string = migrationutils.ugettext_lazy('content type')
-
-        self.assertEqual(migrationutils.original_message(string),
-                         string.message)
-        self.assertEqual("Lorem ipsum", "Lorem ipsum")
-
-
 class CacheBusterUtilsTests(TestCase):
 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', 'default': u"text"}),
-                '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', 'default': u"string"}),
-                '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):
     def test_cachebuster_register_cache(self):
         """
         """
         cachebuster_register_cache registers cache on migration successfully
         cachebuster_register_cache registers cache on migration successfully
         """
         """
-
         cache_name = 'eric_licenses'
         cache_name = 'eric_licenses'
-        migrationutils.cachebuster_register_cache(self.orm, cache_name)
+        migrationutils.cachebuster_register_cache(apps, cache_name)
         CacheVersion.objects.get(cache=cache_name)
         CacheVersion.objects.get(cache=cache_name)
 
 
     def test_cachebuster_unregister_cache(self):
     def test_cachebuster_unregister_cache(self):
@@ -85,12 +19,12 @@ class CacheBusterUtilsTests(TestCase):
         """
         """
 
 
         cache_name = 'eric_licenses'
         cache_name = 'eric_licenses'
-        migrationutils.cachebuster_register_cache(self.orm, cache_name)
+        migrationutils.cachebuster_register_cache(apps, cache_name)
         CacheVersion.objects.get(cache=cache_name)
         CacheVersion.objects.get(cache=cache_name)
 
 
-        migrationutils.cachebuster_unregister_cache(self.orm, cache_name)
+        migrationutils.cachebuster_unregister_cache(apps, cache_name)
         with self.assertRaises(CacheVersion.DoesNotExist):
         with self.assertRaises(CacheVersion.DoesNotExist):
             CacheVersion.objects.get(cache=cache_name)
             CacheVersion.objects.get(cache=cache_name)
 
 
         with self.assertRaises(ValueError):
         with self.assertRaises(ValueError):
-            migrationutils.cachebuster_unregister_cache(self.orm, cache_name)
+            migrationutils.cachebuster_unregister_cache(apps, cache_name)

+ 1 - 1
misago/forums/migrations/0002_default_forums.py

@@ -33,7 +33,7 @@ def create_default_forums_tree(apps, schema_editor):
 
 
     category_name = _("First category")
     category_name = _("First category")
     forum_name = _("First forum")
     forum_name = _("First forum")
-    redirect_name = _("Misago support forum")
+    redirect_name = _("Misago support forums")
     redirect_link = _("http://misago-project.org")
     redirect_link = _("http://misago-project.org")
 
 
     category = Forum.objects.create(
     category = Forum.objects.create(

+ 2 - 15
misago/forums/tests/test_forum_model.py

@@ -30,20 +30,7 @@ class ForumManagerTests(TestCase):
                                position='last-child',
                                position='last-child',
                                save=True)
                                save=True)
 
 
-        all_forums = [root, test_forum_a, test_forum_b]
-        no_root = [test_forum_a, test_forum_b]
-
-        self.assertEqual(Forum.objects.all_forums(True).count(),
-                         len(all_forums))
-
-        self.assertEqual(Forum.objects.all_forums().count(),
-                         len(no_root))
-
         all_forums_from_db = [f for f in Forum.objects.all_forums(True)]
         all_forums_from_db = [f for f in Forum.objects.all_forums(True)]
-        no_root_from_db = [f for f in Forum.objects.all_forums()]
-
-        self.assertEqual(len(all_forums_from_db),
-                         len(all_forums))
 
 
-        self.assertEqual(len(no_root),
-                         len(no_root_from_db))
+        self.assertIn(test_forum_a, all_forums_from_db)
+        self.assertIn(test_forum_b, all_forums_from_db)

+ 17 - 5
misago/forums/tests/test_forums_admin_views.py

@@ -16,6 +16,18 @@ class ForumAdminViewsTests(AdminTestCase):
         response = self.client.get(reverse('misago:admin:forums:nodes:index'))
         response = self.client.get(reverse('misago:admin:forums:nodes:index'))
 
 
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
+        self.assertIn('First category', response.content)
+        self.assertIn('First forum', response.content)
+        self.assertIn('Misago support forums', response.content)
+
+        # Now test that empty forums list contains message
+        root = Forum.objects.root_category()
+        for descendant in root.get_descendants():
+            descendant.delete()
+
+        response = self.client.get(reverse('misago:admin:forums:nodes:index'))
+
+        self.assertEqual(response.status_code, 200)
         self.assertIn('No forums', response.content)
         self.assertIn('No forums', response.content)
 
 
     def test_new_view(self):
     def test_new_view(self):
@@ -169,7 +181,7 @@ class ForumAdminViewsTests(AdminTestCase):
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
         position_a = response.content.find('Category A')
         position_a = response.content.find('Category A')
         position_b = response.content.find('Category B')
         position_b = response.content.find('Category B')
-        self.assertTrue(position_a < position_b)
+        self.assertTrue(position_a > position_b)
 
 
         response = self.client.post(
         response = self.client.post(
             reverse('misago:admin:forums:nodes:down',
             reverse('misago:admin:forums:nodes:down',
@@ -268,7 +280,7 @@ class ForumAdminDeleteViewTests(AdminTestCase):
                     kwargs={'forum_id': self.subforum_d.pk}),
                     kwargs={'forum_id': self.subforum_d.pk}),
             data={'move_children_to': '', 'move_threads_to': '',})
             data={'move_children_to': '', 'move_threads_to': '',})
         self.assertEqual(response.status_code, 302)
         self.assertEqual(response.status_code, 302)
-        self.assertEqual(Forum.objects.all_forums().count(), 5)
+        self.assertEqual(Forum.objects.all_forums().count(), 8)
 
 
     def test_delete_forum_move_threads(self):
     def test_delete_forum_move_threads(self):
         """forum was deleted and its contents were moved"""
         """forum was deleted and its contents were moved"""
@@ -285,7 +297,7 @@ class ForumAdminDeleteViewTests(AdminTestCase):
                 'move_threads_to': self.subforum_d.pk,
                 'move_threads_to': self.subforum_d.pk,
             })
             })
         self.assertEqual(response.status_code, 302)
         self.assertEqual(response.status_code, 302)
-        self.assertEqual(Forum.objects.all_forums().count(), 5)
+        self.assertEqual(Forum.objects.all_forums().count(), 8)
 
 
     def test_delete_all(self):
     def test_delete_all(self):
         """forum and its contents were deleted"""
         """forum and its contents were deleted"""
@@ -299,7 +311,7 @@ class ForumAdminDeleteViewTests(AdminTestCase):
                     kwargs={'forum_id': self.forum_b.pk}),
                     kwargs={'forum_id': self.forum_b.pk}),
             data={'move_children_to': self.root.pk, 'move_threads_to': '',})
             data={'move_children_to': self.root.pk, 'move_threads_to': '',})
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
-        self.assertEqual(Forum.objects.all_forums().count(), 6)
+        self.assertEqual(Forum.objects.all_forums().count(), 9)
 
 
         response = self.client.post(
         response = self.client.post(
             reverse('misago:admin:forums:nodes:delete',
             reverse('misago:admin:forums:nodes:delete',
@@ -307,4 +319,4 @@ class ForumAdminDeleteViewTests(AdminTestCase):
             data={'move_children_to': '', 'move_threads_to': '',})
             data={'move_children_to': '', 'move_threads_to': '',})
         self.assertEqual(response.status_code, 302)
         self.assertEqual(response.status_code, 302)
 
 
-        self.assertEqual(Forum.objects.all_forums().count(), 3)
+        self.assertEqual(Forum.objects.all_forums().count(), 6)

+ 4 - 0
misago/forums/tests/test_permissions_admin_views.py

@@ -94,6 +94,10 @@ class ForumRoleAdminViewsTests(AdminTestCase):
 
 
         test_role = Role.objects.get(name='Test ForumRole')
         test_role = Role.objects.get(name='Test ForumRole')
 
 
+        root = Forum.objects.root_category()
+        for descendant in root.get_descendants():
+            descendant.delete()
+
         self.assertEqual(Forum.objects.count(), 2)
         self.assertEqual(Forum.objects.count(), 2)
         response = self.client.get(
         response = self.client.get(
             reverse('misago:admin:permissions:users:forums',
             reverse('misago:admin:permissions:users:forums',

+ 1 - 3
runtests.py

@@ -50,15 +50,13 @@ TEST_NAME = 'travis_ci_test'
 DATABASES = {
 DATABASES = {
     'default': {
     'default': {
         'ENGINE': 'django.db.backends.postgresql_psycopg2',
         'ENGINE': 'django.db.backends.postgresql_psycopg2',
-        'NAME': 'misago',
+        'NAME': 'misago_postgres',
         'USER': '%s',
         'USER': '%s',
         'PASSWORD': '',
         'PASSWORD': '',
         'HOST': '',
         'HOST': '',
         'PORT': '',
         'PORT': '',
     }
     }
 }
 }
-
-TEST_NAME = 'misagotestdb'
 """ % pwd.getpwuid(os.getuid())[0]
 """ % pwd.getpwuid(os.getuid())[0]
 
 
         with open(settings_path, "w") as py_file:
         with open(settings_path, "w") as py_file: