diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-02-25 12:11:37 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-02-25 12:11:37 +0100 |
commit | cdb5af349c931fa12ccf642cf2080aa117dc4a1f (patch) | |
tree | 29d18903e39024ac46daf27eb2322a44252cd6ef /archaeological_operations/tests.py | |
parent | 0a280ab1b2a3623780b74528d67debddd891fc6c (diff) | |
download | Ishtar-cdb5af349c931fa12ccf642cf2080aa117dc4a1f.tar.bz2 Ishtar-cdb5af349c931fa12ccf642cf2080aa117dc4a1f.zip |
Operations: bulk update of context records (refs #3472)
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r-- | archaeological_operations/tests.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index a9fdf38cc..f0d07c33c 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -768,6 +768,51 @@ class OperationTest(TestCase, OperationInitTest): self.assertEqual(ope_id, 'OP2011-1') self.assertEqual(town, self.towns[0].name) + def test_cache_bulk_update(self): + if settings.USE_SPATIALITE_FOR_TESTS: + # using views can only be tested with postgresql + return + + operation = self.operations[0] + init_parcel = self.create_parcel()[0] + operation.parcels.add(init_parcel) + + from archaeological_context_records.models import ContextRecord + cr_data = {'label': "Context record", "operation": operation, + 'parcel': init_parcel, + 'history_modifier': self.get_default_user()} + cr = ContextRecord.objects.create(**cr_data) + + class TestObj(object): + def __init__(self): + self.context_record_reached = [] + + def reached(self, sender, **kwargs): + instance = kwargs.get('instance') + if sender == ContextRecord: + self.context_record_reached.append(instance) + + test_obj = TestObj() + operation = models.Operation.objects.get(pk=operation.pk) + operation.test_obj = test_obj + operation.year = 2011 + operation.save() + # bulk update of context records cached label gen don't have to be + # reached + self.assertEqual(len(test_obj.context_record_reached), 0) + + # verify the relevance of the update + cr = ContextRecord.objects.get(pk=cr.pk) + ope_id, parcel_sec, parcel_nb, cr_label = cr.cached_label.split(' | ') + self.assertEqual(ope_id, '{}2011-1'.format( + settings.ISHTAR_DEF_OPE_PREFIX)) + + operation.code_patriarche = '666' + operation.save() + cr = ContextRecord.objects.get(pk=cr.pk) + ope_id, parcel_sec, parcel_nb, cr_label = cr.cached_label.split(' | ') + self.assertEqual(ope_id, '666'.format(settings.ISHTAR_OPE_PREFIX)) + class OperationSearchTest(TestCase, OperationInitTest): fixtures = [settings.ROOT_PATH + |