forked from django-oscar/django-oscar-stores
/
templatetag_tests.py
62 lines (53 loc) · 2.44 KB
/
templatetag_tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from django.test import TestCase
from django.contrib.gis.geos.point import Point
from django.template import Template, Context
from django_dynamic_fixture import get as G
from django.db.models import get_model
Product = get_model('catalogue', 'Product')
Store = get_model('stores', 'Store')
StoreStock = get_model('stores', 'StoreStock')
class StoreStockTest(TestCase):
def setUp(self):
self.product = G(Product)
self.store1_location = '{"type": "Point", "coordinates": [87.39,12.02]}'
self.store2_location = '{"type": "Point", "coordinates": [88.39,11.02]}'
self.store1 = G(Store, is_pickup_store=True, location=self.store1_location)
self.store2 = G(Store, is_pickup_store=True, location=self.store2_location)
self.store_stock1 = G(StoreStock, store=self.store1, product=self.product)
self.store_stock1 = G(StoreStock, store=self.store2, product=self.product)
def test_store_stock_loads(self):
rendered = Template(
'{% load store_stock %}'
).render(Context())
def test_store_stock_for_product_returns_stock_lines(self):
rendered = Template(
"""
{% load store_stock %} {% store_stock_for_product product as store_stock %}
{% for stock in store_stock %} {{ stock.store.name }} {% endfor %}
"""
).render(Context({
'product': self.product
}))
self.assertTrue(self.store1.name in rendered)
self.assertTrue(self.store2.name in rendered)
def test_store_stock_for_product_limits_when_asked(self):
rendered = Template(
"""
{% load store_stock %} {% store_stock_for_product product limit=1 as store_stock %}
{% for stock in store_stock %} {{ stock.store.name }} {% endfor %}
"""
).render(Context({
'product': self.product
}))
self.assertTrue(self.store1.name in rendered)
def test_store_stock_for_product_order_by_closed(self):
rendered = Template(
"""
{% load store_stock %} {% store_stock_for_product product location=loc as store_stock %}
{% for stock in store_stock %}{{ stock.store.name }}{% endfor %}
"""
).render(Context({
'product': self.product,
'loc': '{"type": "Point", "coordinates": [88.39,11.02]}'
}))
self.assertTrue("%s%s" % (self.store2.name, self.store1.name) in rendered)