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 django.core.management.base import BaseCommand
 from misago.models import Post
 from misago.models import Post
-from misago.monitor import Monitor
+from misago.monitor import monitor
 
 
 class Command(BaseCommand):
 class Command(BaseCommand):
     """
     """
@@ -8,6 +8,5 @@ class Command(BaseCommand):
     """
     """
     help = 'Counts reported posts'
     help = 'Counts reported posts'
     def handle(self, *args, **options):
     def handle(self, *args, **options):
-        monitor = Monitor()
         monitor['reported_posts'] = Post.objects.filter(reported=True).count()
         monitor['reported_posts'] = Post.objects.filter(reported=True).count()
         self.stdout.write('Reported posts were recounted.\n')
         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.core.management.base import BaseCommand
 from django.utils import timezone
 from django.utils import timezone
 from misago.models import Forum, Thread, Post
 from misago.models import Forum, Thread, Post
-from misago.monitor import Monitor
+from misago.monitor import monitor, UpdatingMonitor
 
 
 class Command(BaseCommand):
 class Command(BaseCommand):
     """
     """
@@ -38,7 +38,8 @@ class Command(BaseCommand):
         for forum in sync_forums:
         for forum in sync_forums:
             forum.sync()
             forum.sync()
             forum.save(force_update=True)
             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')
         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 django.core.management.base import BaseCommand
-from misago.monitor import Monitor
+from misago.monitor import monitor, UpdatingMonitor
 
 
 class Command(BaseCommand):
 class Command(BaseCommand):
     help = 'Rebuilds ACLs for all users'
     help = 'Rebuilds ACLs for all users'
 
 
     def handle(self, *args, **options):
     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')
         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
     return monitor
 
 
 
 
+def refresh_monitor():
+    _thread_local.monitor = load_monitor()
+
+
 class Monitor(object):
 class Monitor(object):
     def __init__(self, local):
     def __init__(self, local):
         self.thread = 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.core.management import call_command
 from django.test import TestCase
 from django.test import TestCase
 from misago.models import User
 from misago.models import User
-from misago.monitor import Monitor
+from misago.monitor import monitor, refresh_monitor, UpdatingMonitor
 
 
 class UserManagerCreateUserTestCase(TestCase):
 class UserManagerCreateUserTestCase(TestCase):
     def setUp(self):
     def setUp(self):
@@ -10,58 +10,61 @@ class UserManagerCreateUserTestCase(TestCase):
 
 
     def test_create_user(self):
     def test_create_user(self):
         """Test User.objects.create_user"""
         """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)