Fix Block Transformer version checking so cache can be pre-populated
This change requires Block Transformer schema changes to be backwards compatible for older Block Transformer code versions - at least 1 version back to allow smooth deployments in a multi-version setting.
This commit is contained in:
@@ -169,8 +169,10 @@ class TestBlockStructureManager(TestCase, ChildrenMapTestMixin):
|
||||
|
||||
def test_get_collected_outdated_data(self):
|
||||
self.collect_and_verify(expect_modulestore_called=True, expect_cache_updated=True)
|
||||
TestTransformer1.VERSION += 1
|
||||
TestTransformer1.VERSION += 1 # transformer code requires new schema version
|
||||
self.collect_and_verify(expect_modulestore_called=True, expect_cache_updated=True)
|
||||
TestTransformer1.VERSION -= 1 # old transformer code works with new schema version
|
||||
self.collect_and_verify(expect_modulestore_called=False, expect_cache_updated=False)
|
||||
self.assertEquals(TestTransformer1.collect_call_count, 2)
|
||||
|
||||
def test_get_collected_version_update(self):
|
||||
|
||||
@@ -90,7 +90,7 @@ class BlockStructureTransformers(object):
|
||||
outdated_transformers = []
|
||||
for transformer in TransformerRegistry.get_registered_transformers():
|
||||
version_in_block_structure = block_structure._get_transformer_data_version(transformer) # pylint: disable=protected-access
|
||||
if transformer.VERSION != version_in_block_structure:
|
||||
if transformer.VERSION > version_in_block_structure:
|
||||
outdated_transformers.append(transformer)
|
||||
|
||||
if outdated_transformers:
|
||||
|
||||
Reference in New Issue
Block a user