# HG changeset patch
# User Brian Neal <bgneal@gmail.com>
# Date 1430074743 18000
# Node ID 89e2d00d653c1ed4b3365c76397aec46b2b8bce8
# Parent  8b48ec450497c5f5680506cb0e621b5244e4fb6c
Add tests for weblinks signal handlers.

diff -r 8b48ec450497 -r 89e2d00d653c weblinks/tests/test_receivers.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/weblinks/tests/test_receivers.py	Sun Apr 26 13:59:03 2015 -0500
@@ -0,0 +1,51 @@
+"""Tests for the weblink app signal handlers."""
+
+from django.contrib.auth.models import User
+from django.test import TestCase
+
+import custom_search.receivers
+
+from weblinks.models import Category
+from weblinks.models import Link
+
+
+class ReceiverTestCase(TestCase):
+
+    fixtures = ['weblinks_categories.json']
+
+    def setUp(self):
+        self.user = User.objects.create_user('user', 'user@example.com', 'pw')
+
+        # Don't let our custom search signal handler class catch any of the
+        # signals we are throwing here.
+        custom_search.receivers.signal_processor.teardown()
+
+    def tearDown(self):
+        custom_search.receivers.signal_processor.setup()
+
+    def test_signal_handlers(self):
+
+        category = Category.objects.get(pk=1)
+        link = Link(category=category,
+                    title='Title',
+                    url='http://example.com/',
+                    description='Cool stuff',
+                    is_public=True,
+                    user=self.user)
+        link.save()
+
+        category = Category.objects.get(pk=1)
+        self.assertEqual(1, category.count)
+
+        category2 = Category.objects.get(pk=4)
+        link.category = category2
+        link.save()
+
+        category = Category.objects.get(pk=1)
+        self.assertEqual(0, category.count)
+        category2 = Category.objects.get(pk=4)
+        self.assertEqual(1, category2.count)
+
+        link.delete()
+        category2 = Category.objects.get(pk=4)
+        self.assertEqual(0, category2.count)