mirror of
https://github.com/nikdoof/vapemap.git
synced 2025-12-14 06:42:17 +00:00
139 lines
4.9 KiB
Python
139 lines
4.9 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.filter(name='claim_support').update(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))
|
|
|
|
|
|
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')
|
|
|
|
|
|
class StoresAddressModelTestCase(TestCase):
|
|
|
|
fixtures = ['countries']
|
|
|
|
def test_geo_lookup(self):
|
|
country = Country.objects.get(name='United Kingdom')
|
|
addr = Address(name='test', address1='Bridge Street', city='Warrington', country=country, postcode='WA3')
|
|
addr.save()
|
|
self.assertIsNotNone(addr.geo_latitude)
|
|
self.assertIsNotNone(addr.geo_longitude)
|
|
|
|
def test_skip_geo_lookup(self):
|
|
country = Country.objects.get(name='United Kingdom')
|
|
addr = Address(name='test', address1='Bridge Street', city='Warrington', country=country, postcode='WA3')
|
|
addr.save(no_lookup=True)
|
|
self.assertIsNone(addr.geo_latitude)
|
|
self.assertIsNone(addr.geo_longitude) |