Browse Source

Test suite fixed.

Ralfp 12 years ago
parent
commit
3c2cb906f4

+ 1 - 2
misago/management/commands/countreports.py

@@ -1,6 +1,6 @@
 from django.core.management.base import BaseCommand
 from misago.models import Post
-from misago.monitor import Monitor
+from misago.monitor import monitor
 
 class Command(BaseCommand):
     """
@@ -8,6 +8,5 @@ class Command(BaseCommand):
     """
     help = 'Counts reported posts'
     def handle(self, *args, **options):
-        monitor = Monitor()
         monitor['reported_posts'] = Post.objects.filter(reported=True).count()
         self.stdout.write('Reported posts were recounted.\n')

+ 5 - 4
misago/management/commands/pruneforums.py

@@ -2,7 +2,7 @@ from datetime import timedelta
 from django.core.management.base import BaseCommand
 from django.utils import timezone
 from misago.models import Forum, Thread, Post
-from misago.monitor import Monitor
+from misago.monitor import monitor, UpdatingMonitor
 
 class Command(BaseCommand):
     """
@@ -38,7 +38,8 @@ class Command(BaseCommand):
         for forum in sync_forums:
             forum.sync()
             forum.save(force_update=True)
-        monitor = Monitor()
-        monitor['threads'] = Thread.objects.count()
-        monitor['posts'] = Post.objects.count()
+
+        with UpdatingMonitor() as cm:
+            monitor.threads = Thread.objects.count()
+            monitor.posts = Post.objects.count()
         self.stdout.write('Forums were pruned.\n')

+ 3 - 2
misago/management/commands/rebuildacls.py

@@ -1,9 +1,10 @@
 from django.core.management.base import BaseCommand
-from misago.monitor import Monitor
+from misago.monitor import monitor, UpdatingMonitor
 
 class Command(BaseCommand):
     help = 'Rebuilds ACLs for all users'
 
     def handle(self, *args, **options):
-        Monitor().increase('acl_version')
+        with UpdatingMonitor() as cm:
+            monitor.increase('acl_version')
         self.stdout.write('\nUser ACLs cache has been set as outdated and will be rebuild when needed.\n')

+ 4 - 0
misago/monitor.py

@@ -15,6 +15,10 @@ def load_monitor():
     return monitor
 
 
+def refresh_monitor():
+    _thread_local.monitor = load_monitor()
+
+
 class Monitor(object):
     def __init__(self, local):
         self.thread = local

+ 52 - 49
misago/tests/user_manager_create_user.py

@@ -2,7 +2,7 @@ from django.core.exceptions import ValidationError
 from django.core.management import call_command
 from django.test import TestCase
 from misago.models import User
-from misago.monitor import Monitor
+from misago.monitor import monitor, refresh_monitor, UpdatingMonitor
 
 class UserManagerCreateUserTestCase(TestCase):
     def setUp(self):
@@ -10,58 +10,61 @@ class UserManagerCreateUserTestCase(TestCase):
 
     def test_create_user(self):
         """Test User.objects.create_user"""
+        with UpdatingMonitor() as cm:
+            user_a = User.objects.create_user('Lemmiwinks', 'lemm@sp.com', '123pass')
+            try:
+                user_from_db = User.objects.get(username=user_a.username)
+                user_from_db = User.objects.get(email=user_a.email)
+            except User.DoesNotExist:
+                raise AssertionError("User A was not saved in database!")
 
-        user_a = User.objects.create_user('Lemmiwinks', 'lemm@sp.com', '123pass')
-        try:
-            user_from_db = User.objects.get(username=user_a.username)
-            user_from_db = User.objects.get(email=user_a.email)
-        except User.DoesNotExist:
-            raise AssertionError("User A was not saved in database!")
+        refresh_monitor()
+        self.assertEqual(int(monitor.users), 1)
+        self.assertEqual(int(monitor.users_inactive), 0)
+        self.assertEqual(int(monitor.last_user), user_a.pk)
+        self.assertEqual(monitor.last_user_name, user_a.username)
+        self.assertEqual(monitor.last_user_slug, user_a.username_slug)
 
-        monitor = Monitor()
-        self.assertEqual(int(monitor['users']), 1)
-        self.assertEqual(int(monitor['users_inactive']), 0)
-        self.assertEqual(int(monitor['last_user']), user_a.pk)
-        self.assertEqual(monitor['last_user_name'], user_a.username)
-        self.assertEqual(monitor['last_user_slug'], user_a.username_slug)
+        with UpdatingMonitor() as cm:
+            user_b = User.objects.create_user('InactiveTest', 'lemsm@sp.com', '123pass', activation=User.ACTIVATION_USER)
+            try:
+                user_from_db = User.objects.get(username=user_b.username)
+                user_from_db = User.objects.get(email=user_b.email)
+                self.assertEqual(user_from_db.activation, User.ACTIVATION_USER)
+            except User.DoesNotExist:
+                raise AssertionError("User B was not saved in database!")
 
-        user_b = User.objects.create_user('InactiveTest', 'lemsm@sp.com', '123pass', activation=User.ACTIVATION_USER)
-        try:
-            user_from_db = User.objects.get(username=user_b.username)
-            user_from_db = User.objects.get(email=user_b.email)
-            self.assertEqual(user_from_db.activation, User.ACTIVATION_USER)
-        except User.DoesNotExist:
-            raise AssertionError("User B was not saved in database!")
+        refresh_monitor()
+        self.assertEqual(int(monitor.users), 1)
+        self.assertEqual(int(monitor.users_inactive), 1)
+        self.assertEqual(int(monitor.last_user), user_a.pk)
+        self.assertEqual(monitor.last_user_name, user_a.username)
+        self.assertEqual(monitor.last_user_slug, user_a.username_slug)
 
-        monitor = Monitor()
-        self.assertEqual(int(monitor['users']), 1)
-        self.assertEqual(int(monitor['users_inactive']), 1)
-        self.assertEqual(int(monitor['last_user']), user_a.pk)
-        self.assertEqual(monitor['last_user_name'], user_a.username)
-        self.assertEqual(monitor['last_user_slug'], user_a.username_slug)
+        with UpdatingMonitor() as cm:
+            try:
+                user_c = User.objects.create_user('UsedMail', 'lemsm@sp.com', '123pass')
+                raise AssertionError("Created user account with taken e-mail address!")
+            except ValidationError:
+                pass
 
-        try:
-            user_c = User.objects.create_user('UsedMail', 'lemsm@sp.com', '123pass')
-            raise AssertionError("Created user account with taken e-mail address!")
-        except ValidationError:
-            pass
+        refresh_monitor()
+        self.assertEqual(int(monitor.users), 1)
+        self.assertEqual(int(monitor.users_inactive), 1)
+        self.assertEqual(int(monitor.last_user), user_a.pk)
+        self.assertEqual(monitor.last_user_name, user_a.username)
+        self.assertEqual(monitor.last_user_slug, user_a.username_slug)
 
-        monitor = Monitor()
-        self.assertEqual(int(monitor['users']), 1)
-        self.assertEqual(int(monitor['users_inactive']), 1)
-        self.assertEqual(int(monitor['last_user']), user_a.pk)
-        self.assertEqual(monitor['last_user_name'], user_a.username)
-        self.assertEqual(monitor['last_user_slug'], user_a.username_slug)
+        with UpdatingMonitor() as cm:
+            try:
+                user_d = User.objects.create_user('InactiveTest', 'user@name.com', '123pass')
+                raise AssertionError("Created user account with taken username!")
+            except ValidationError:
+                pass
 
-        try:
-            user_d = User.objects.create_user('InactiveTest', 'user@name.com', '123pass')
-            raise AssertionError("Created user account with taken username!")
-        except ValidationError:
-            pass
-
-        monitor = Monitor()
-        self.assertEqual(int(monitor['users']), 1)
-        self.assertEqual(int(monitor['users_inactive']), 1)
-        self.assertEqual(int(monitor['last_user']), user_a.pk)
-        self.assertEqual(monitor['last_user_name'], user_a.username)
-        self.assertEqual(monitor['last_user_slug'], user_a.username_slug)
+        refresh_monitor()
+        self.assertEqual(int(monitor.users), 1)
+        self.assertEqual(int(monitor.users_inactive), 1)
+        self.assertEqual(int(monitor.last_user), user_a.pk)
+        self.assertEqual(monitor.last_user_name, user_a.username)
+        self.assertEqual(monitor.last_user_slug, user_a.username_slug)