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