diff bandmap/tests/test_views.py @ 827:5103edd3acc4

Bandmap: initial version complete. Javascript queries server for band data. View created to handle query. Test created for view. Link added to map in sidebar. Template tweaks.
author Brian Neal <bgneal@gmail.com>
date Sat, 27 Sep 2014 19:41:41 -0500
parents d91356818cef
children
line wrap: on
line diff
--- a/bandmap/tests/test_views.py	Sat Sep 27 15:14:47 2014 -0500
+++ b/bandmap/tests/test_views.py	Sat Sep 27 19:41:41 2014 -0500
@@ -3,6 +3,7 @@
 
 """
 import datetime
+import json
 
 from django.test import TestCase
 from django.core.urlresolvers import reverse
@@ -81,3 +82,74 @@
         self.assertEqual(entry.note, post_data['note'])
         self.assertTrue(entry.is_active)
         self.assertFalse(entry.is_approved)
+
+class QueryTestCase(TestCase):
+    """Testing the query view function which returns JSON."""
+
+    def setUp(self):
+        self.user = User.objects.create_user(
+            username='pj', email='pj@example.com', password='top_secret')
+
+        now = datetime.datetime.now()
+
+        kwargs = {
+            'name': 'Test Band 1',
+            'user': self.user,
+            'date_submitted': now,
+            'date_approved': now,
+            'url': 'http://example.com',
+            'location': 'Somewhere',
+            'lat': 42.0,
+            'lon': -30.0,
+            'note': 'Some text here',
+            'is_active': True,
+            'is_approved': True,
+        }
+        BandEntry.objects.create(**kwargs)
+
+        kwargs['name'] = 'Test Band 2'
+        kwargs['is_active'] = False
+        BandEntry.objects.create(**kwargs)
+
+        kwargs['name'] = 'Test Band 3'
+        kwargs['is_active'] = True
+        kwargs['is_approved'] = False
+        BandEntry.objects.create(**kwargs)
+
+    def test_query(self):
+        url = reverse('bandmap-query')
+        response = self.client.get(url)
+        self.assertEqual(response.status_code, 200)
+
+        result = json.loads(response.content)
+        self.assertEqual(len(result), 2)
+        self.assertEqual(result[0]['name'], 'Test Band 1')
+        self.assertEqual(result[1]['name'], 'Test Band 2')
+
+    def test_query_all(self):
+        url = reverse('bandmap-query')
+        response = self.client.get(url, {'show': 'all'})
+        self.assertEqual(response.status_code, 200)
+
+        result = json.loads(response.content)
+        self.assertEqual(len(result), 2)
+        self.assertEqual(result[0]['name'], 'Test Band 1')
+        self.assertEqual(result[1]['name'], 'Test Band 2')
+
+    def test_query_active(self):
+        url = reverse('bandmap-query')
+        response = self.client.get(url, {'show': 'active'})
+        self.assertEqual(response.status_code, 200)
+
+        result = json.loads(response.content)
+        self.assertEqual(len(result), 1)
+        self.assertEqual(result[0]['name'], 'Test Band 1')
+
+    def test_query_inactive(self):
+        url = reverse('bandmap-query')
+        response = self.client.get(url, {'show': 'inactive'})
+        self.assertEqual(response.status_code, 200)
+
+        result = json.loads(response.content)
+        self.assertEqual(len(result), 1)
+        self.assertEqual(result[0]['name'], 'Test Band 2')