def test_basic_dep_track_update_2(self): reaction_map = { "red": { 'self': ['green', 'blue'], }, "blue": { 'self': ['green'], 'red': ['blue'], 'purple': ['green'], 'green': [], }, "green": { 'self': ['white'], 'blue': ['white'], 'red': ['blue'], }, "white": { 'self': ['purple'], 'green': ['purple'], }, "purple": { 'self': ['blue'], 'white': ['blue'], }, } GreenSM._object_db.object_read = self.green_read_with_refs WhiteSM._object_db.object_read = self.white_read_with_refs BlueSM._object_db.object_read = self.purple_read_with_multi_refs BlueSM._object_db.object_read = self.blue_read_with_multi_refs dependency_tracker = DependencyTracker(DBBase._OBJ_TYPE_MAP, reaction_map) RedSM.locate("fake-red-uuid") blue = BlueSM.locate("fake-blue-uuid") GreenSM.locate("fake-green-uuid-0") GreenSM.locate("fake-green-uuid-1") WhiteSM.locate("fake-white-uuid") PurpleSM.locate("fake-purple-uuid") dependency_tracker.evaluate('blue', blue) GreenSM.delete("fake-green-uuid-0") GreenSM.delete("fake-green-uuid-1") GreenSM.locate("fake-green-uuid-2") GreenSM.locate("fake-green-uuid-3") BlueSM._object_db.object_read = self.blue_read_with_new_refs blue.update() dependency_tracker.resources = {} dependency_tracker.evaluate('blue', blue) self.assertEqual(len(dependency_tracker.resources), 2) self.assertTrue("blue" in dependency_tracker.resources) self.assertTrue("green" in dependency_tracker.resources) self.assertItemsEqual(dependency_tracker.resources["green"], ["fake-green-uuid-2", "fake-green-uuid-3"]) self.assertEqual(dependency_tracker.resources["blue"], ["fake-blue-uuid"]) RedSM.delete("fake-red-uuid") GreenSM.delete("fake-green-uuid-2") GreenSM.delete("fake-green-uuid-3") BlueSM.delete("fake-blue-uuid") WhiteSM.delete("fake-white-uuid") PurpleSM.delete("fake-purple-uuid")
def test_basic_dep_track_update_1(self): reaction_map = { "red": { 'self': ['green', 'blue'], }, "blue": { 'self': ['green'], 'red': ['blue'], 'purple': ['green'], 'green': [], }, "green": { 'self': ['white'], 'blue': ['white'], 'red': ['blue'], }, "white": { 'self': ['purple'], 'green': ['purple'], }, "purple": { 'self': ['blue'], 'white': ['blue'], }, } GreenSM._object_db.object_read = self.green_read_with_refs WhiteSM._object_db.object_read = self.white_read_with_refs BlueSM._object_db.object_read = self.purple_read_with_multi_refs BlueSM._object_db.object_read = self.blue_read_with_multi_refs dependency_tracker = DependencyTracker(DBBase._OBJ_TYPE_MAP, reaction_map) red = RedSM.locate("fake-red-uuid") blue = BlueSM.locate("fake-blue-uuid") green = GreenSM.locate("fake-green-uuid-0") GreenSM.locate("fake-green-uuid-1") white = WhiteSM.locate("fake-white-uuid") purple = PurpleSM.locate("fake-purple-uuid") dependency_tracker.evaluate('red', red) GreenSM.delete("fake-green-uuid-0") GreenSM.delete("fake-green-uuid-1") GreenSM.locate("fake-green-uuid-2") GreenSM.locate("fake-green-uuid-3") BlueSM._object_db.object_read = self.blue_read_with_new_refs blue.update() dependency_tracker.resources = {} dependency_tracker.evaluate('red', red) self.assertEqual(len(dependency_tracker.resources), 3) self.assertTrue("blue" in dependency_tracker.resources) self.assertTrue("green" in dependency_tracker.resources) self.assertTrue("red" in dependency_tracker.resources) self.assertEqual(set(dependency_tracker.resources["green"]), set(["fake-green-uuid-2", "fake-green-uuid-3"])) self.assertEqual(dependency_tracker.resources["blue"], ["fake-blue-uuid"]) self.assertEqual(dependency_tracker.resources["red"], ["fake-red-uuid"]) RedSM.delete("fake-red-uuid") GreenSM.delete("fake-green-uuid-2") GreenSM.delete("fake-green-uuid-3") BlueSM.delete("fake-blue-uuid") WhiteSM.delete("fake-white-uuid") PurpleSM.delete("fake-purple-uuid")