Files
vapemap/app/stores/tests.py

124 lines
4.3 KiB
Python

from django.test import TestCase
from django.core.urlresolvers import reverse
from stores.models import Chain, Store, Address, Country
from waffle import Switch
class StoresViewsTestCase(TestCase):
"""
Tests that all basic views return expected results without in-depth checking.
"""
fixtures = ['test_stores']
def setUp(self):
self.store = Store.objects.get(pk=3)
self.chain = Chain.objects.get(pk=1)
# Enable claim support for the tests
Switch.objects.create(name='claim_support', active=True)
def test_map_index(self):
resp = self.client.get(reverse('map'))
self.assertEqual(resp.status_code, 200)
def test_store_list(self):
resp = self.client.get(reverse('store-list'))
self.assertEqual(resp.status_code, 200)
def test_chain_list(self):
resp = self.client.get(reverse('chain-list'))
self.assertEqual(resp.status_code, 200)
def test_chain_claim(self):
resp = self.client.get(reverse('chain-claim', args=[self.chain.slug]))
self.assertEqual(resp.status_code, 200)
resp = self.client.get(reverse('chain-claim', args=['test-invalid']))
self.assertEqual(resp.status_code, 404)
def test_chain_detail(self):
resp = self.client.get(reverse('chain-detail', args=[self.chain.slug]))
self.assertEqual(resp.status_code, 200)
resp = self.client.get(reverse('chain-detail', args=['test-invalid']))
self.assertEqual(resp.status_code, 404)
def test_store_claim(self):
resp = self.client.get(reverse('store-claim', args=[self.store.slug]))
self.assertEqual(resp.status_code, 200)
resp = self.client.get(reverse('store-claim', args=['test-invalid']))
self.assertEqual(resp.status_code, 404)
def test_store_update(self):
resp = self.client.get(reverse('store-update', args=[self.store.slug]))
self.assertEqual(resp.status_code, 200)
resp = self.client.get(reverse('store-update', args=['test-invalid']))
self.assertEqual(resp.status_code, 404)
def test_store_detail(self):
resp = self.client.get(reverse('store-detail', args=[self.store.slug]))
self.assertEqual(resp.status_code, 200)
resp = self.client.get(reverse('store-detail', args=['test-invalid']))
self.assertEqual(resp.status_code, 404)
class StoresUtilsTestCase(TestCase):
def test_caching_geo_lookup(self):
from stores.utils import caching_geo_lookup
from django.core.cache import cache
addr = "Bridge Street, Warrington, WA3"
slug = addr.lower().replace(',', '').replace(' ', '-')
print slug
lat, lng = caching_geo_lookup(addr)
self.assertNotEqual(lat, '')
self.assertNotEqual(lng, '')
self.assertIsNotNone(cache.get('geo_%s' % slug, None))
def test_haversine(self):
from stores.utils import haversine
self.assertEqual(haversine(1, 1, 2, 2), 157.1267188489107)
class StoresChainModelTestCase(TestCase):
"""
Basic tests against the Chain model
"""
def test_slug_creation(self):
obj = Chain(name='Test Chain 1')
obj.save()
self.assertEqual(obj.slug, 'test-chain-1')
def test_absolute_url(self):
obj = Chain(name='Test Chain 2')
obj.save()
self.assertEqual(str(obj.get_absolute_url()), '/chains/test-chain-2/')
def test_chain_name(self):
obj = Chain(name='Test Chain 3')
self.assertEqual(str(obj), 'Test Chain 3')
class StoresStoreModelTestCase(TestCase):
"""
Basic tests against the Store model
"""
fixtures = ['countries']
def setUp(self):
country = Country.objects.get(name='United Kingdom')
self.addr = Address(name='test', address1='Bridge Street', city='Warrington', country=country, postcode='WA3')
self.addr.save()
def test_slug_creation(self):
obj = Store(name='Test Store 1', address=self.addr)
obj.save()
self.assertEqual(obj.slug, 'test-store-1')
def test_absolute_url(self):
obj = Store(name='Test Store 2', address=self.addr)
obj.save()
self.assertEqual(str(obj.get_absolute_url()), '/stores/test-store-2/')
def test_chain_name(self):
obj = Store(name='Test Store 3', address=self.addr)
self.assertEqual(str(obj), 'Test Store 3')