def test_convert_config_db_patch_to_sonic_yang_patch__invalid_config_db_patch__failure(self): # Arrange patch_wrapper = gu_common.PatchWrapper() patch = [ { 'op': 'remove', 'path': '/TABLE_WITHOUT_YANG' } ] # Act and Assert self.assertRaises(ValueError, patch_wrapper.convert_config_db_patch_to_sonic_yang_patch, patch)
def test_same_patch__diff__returns_false(self): # Arrange patch_wrapper = gu_common.PatchWrapper() # Act and Assert self.assertFalse( patch_wrapper.verify_same_json(Files.CONFIG_DB_AS_JSON, Files.CROPPED_CONFIG_DB_AS_JSON))
def test_generate_patch__no_diff__empty_patch(self): # Arrange patch_wrapper = gu_common.PatchWrapper() # Act patch = patch_wrapper.generate_patch(Files.CONFIG_DB_AS_JSON, Files.CONFIG_DB_AS_JSON) # Assert self.assertFalse(patch)
def test_convert_sonic_yang_patch_to_config_db_patch__multiple_operations_patch__returns_config_db_patch(self): # Arrange config_wrapper = self.config_wrapper_mock patch_wrapper = gu_common.PatchWrapper(config_wrapper = config_wrapper) sonic_yang_patch = Files.MULTI_OPERATION_SONIC_YANG_PATCH # Act config_db_patch = patch_wrapper.convert_sonic_yang_patch_to_config_db_patch(sonic_yang_patch) # Assert self.__assert_same_patch(config_db_patch, sonic_yang_patch, config_wrapper, patch_wrapper)
def test_convert_sonic_yang_patch_to_config_db_patch__single_operation_patch__returns_config_db_patch(self): # Arrange patch_wrapper = gu_common.PatchWrapper(config_wrapper = self.config_wrapper_mock) patch = Files.SINGLE_OPERATION_SONIC_YANG_PATCH expected = Files.SINGLE_OPERATION_CONFIG_DB_PATCH # Act actual = patch_wrapper.convert_sonic_yang_patch_to_config_db_patch(patch) # Assert self.assertEqual(expected, actual)
def test_convert_sonic_yang_patch_to_config_db_patch__empty_patch__returns_empty_patch(self): # Arrange patch_wrapper = gu_common.PatchWrapper(config_wrapper = self.config_wrapper_mock) patch = jsonpatch.JsonPatch([]) expected = jsonpatch.JsonPatch([]) # Act actual = patch_wrapper.convert_sonic_yang_patch_to_config_db_patch(patch) # Assert self.assertEqual(expected, actual)
def test_simulate_patch__non_empty_patch__changes_applied(self): # Arrange patch_wrapper = gu_common.PatchWrapper() patch = Files.SINGLE_OPERATION_CONFIG_DB_PATCH expected = Files.SINGLE_OPERATION_CONFIG_DB_PATCH.apply(Files.CONFIG_DB_AS_JSON) # Act actual = patch_wrapper.simulate_patch(patch, Files.CONFIG_DB_AS_JSON) # Assert self.assertDictEqual(expected, actual)
def test_simulate_patch__empty_patch__no_changes(self): # Arrange patch_wrapper = gu_common.PatchWrapper() patch = jsonpatch.JsonPatch([]) expected = Files.CONFIG_DB_AS_JSON # Act actual = patch_wrapper.simulate_patch(patch, Files.CONFIG_DB_AS_JSON) # Assert self.assertDictEqual(expected, actual)
def test_validate_config_db_patch_has_yang_models__table_with_yang_model__returns_true(self): # Arrange patch_wrapper = gu_common.PatchWrapper() patch = [ { 'op': 'remove', 'path': '/ACL_TABLE' } ] expected = True # Act actual = patch_wrapper.validate_config_db_patch_has_yang_models(patch) # Assert self.assertEqual(expected, actual)
def test_validate_config_db_patch_has_yang_models__table_without_yang_model__returns_false(self): # Arrange patch_wrapper = gu_common.PatchWrapper() patch = [ { 'op': 'remove', 'path': '/TABLE_WITHOUT_YANG' } ] expected = False # Act actual = patch_wrapper.validate_config_db_patch_has_yang_models(patch) # Assert self.assertEqual(expected, actual)
def test_generate_patch__diff__non_empty_patch(self): # Arrange patch_wrapper = gu_common.PatchWrapper() after_update_json = Files.SINGLE_OPERATION_CONFIG_DB_PATCH.apply(Files.CONFIG_DB_AS_JSON) expected = Files.SINGLE_OPERATION_CONFIG_DB_PATCH # Act actual = patch_wrapper.generate_patch(Files.CONFIG_DB_AS_JSON, after_update_json) # Assert self.assertTrue(actual) self.assertEqual(expected, actual)