Adds test cases for basic batch cacheing behaviour
This commit is contained in:
parent
78a41970ea
commit
eb29e7cd09
1 changed files with 83 additions and 0 deletions
83
registrasion/tests/test_batch.py
Normal file
83
registrasion/tests/test_batch.py
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
import datetime
|
||||||
|
import pytz
|
||||||
|
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
|
|
||||||
|
from controller_helpers import TestingCartController
|
||||||
|
from test_cart import RegistrationCartTestCase
|
||||||
|
|
||||||
|
from registrasion.controllers.batch import BatchController
|
||||||
|
from registrasion.controllers.discount import DiscountController
|
||||||
|
from registrasion.controllers.product import ProductController
|
||||||
|
from registrasion.models import commerce
|
||||||
|
from registrasion.models import conditions
|
||||||
|
|
||||||
|
UTC = pytz.timezone('UTC')
|
||||||
|
|
||||||
|
|
||||||
|
class BatchTestCase(RegistrationCartTestCase):
|
||||||
|
|
||||||
|
def test_no_caches_outside_of_batches(self):
|
||||||
|
cache_1 = BatchController.get_cache(self.USER_1)
|
||||||
|
cache_2 = BatchController.get_cache(self.USER_2)
|
||||||
|
|
||||||
|
# Identity testing is important here
|
||||||
|
self.assertIsNot(cache_1, cache_2)
|
||||||
|
|
||||||
|
def test_cache_clears_at_batch_exit(self):
|
||||||
|
with BatchController.batch(self.USER_1):
|
||||||
|
cache_1 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
cache_2 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
self.assertIsNot(cache_1, cache_2)
|
||||||
|
|
||||||
|
def test_caches_identical_within_nestings(self):
|
||||||
|
with BatchController.batch(self.USER_1):
|
||||||
|
cache_1 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
with BatchController.batch(self.USER_2):
|
||||||
|
cache_2 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
cache_3 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
self.assertIs(cache_1, cache_2)
|
||||||
|
self.assertIs(cache_2, cache_3)
|
||||||
|
|
||||||
|
def test_caches_are_independent_for_different_users(self):
|
||||||
|
with BatchController.batch(self.USER_1):
|
||||||
|
cache_1 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
with BatchController.batch(self.USER_2):
|
||||||
|
cache_2 = BatchController.get_cache(self.USER_2)
|
||||||
|
|
||||||
|
self.assertIsNot(cache_1, cache_2)
|
||||||
|
|
||||||
|
def test_cache_clears_are_independent_for_different_users(self):
|
||||||
|
with BatchController.batch(self.USER_1):
|
||||||
|
cache_1 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
with BatchController.batch(self.USER_2):
|
||||||
|
cache_2 = BatchController.get_cache(self.USER_2)
|
||||||
|
|
||||||
|
with BatchController.batch(self.USER_2):
|
||||||
|
cache_3 = BatchController.get_cache(self.USER_2)
|
||||||
|
|
||||||
|
cache_4 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
self.assertIs(cache_1, cache_4)
|
||||||
|
self.assertIsNot(cache_1, cache_2)
|
||||||
|
self.assertIsNot(cache_2, cache_3)
|
||||||
|
|
||||||
|
def test_new_caches_for_new_batches(self):
|
||||||
|
with BatchController.batch(self.USER_1):
|
||||||
|
cache_1 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
with BatchController.batch(self.USER_1):
|
||||||
|
cache_2 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
with BatchController.batch(self.USER_1):
|
||||||
|
cache_3 = BatchController.get_cache(self.USER_1)
|
||||||
|
|
||||||
|
self.assertIs(cache_2, cache_3)
|
||||||
|
self.assertIsNot(cache_1, cache_2)
|
Loading…
Reference in a new issue