def test_compare_requirements_new_versions(self): """ TestShakerMetadata: Test comparing different requirements versions """ previous_requirements = [ "test_organisation/test1-formula==v1.0.10", "test_organisation/test2-formula==v2.0.1", "test_organisation/test3-formula==v3.0.1", ] new_requirements = [ "test_organisation/test1-formula==v1.0.1", "test_organisation/test2-formula==v2.0.10", "test_organisation/test3-formula==v3.0.1", ] actual_result = metadata.compare_requirements(previous_requirements, new_requirements) expected_result = [ ["test_organisation/test1-formula==v1.0.10", "test_organisation/test1-formula==v1.0.1"], ["test_organisation/test2-formula==v2.0.1", "test_organisation/test2-formula==v2.0.10"] ] self.assertEqual(actual_result, expected_result, ("Comparison should have new version\n" "Actual: '%s'\n" "Expected: %s\n") % (actual_result, expected_result))
def test_compare_requirements_new_versions(self): """ TestShakerMetadata: Test comparing different requirements versions """ previous_requirements = [ "test_organisation/test1-formula==v1.0.10", "test_organisation/test2-formula==v2.0.1", "test_organisation/test3-formula==v3.0.1", ] new_requirements = [ "test_organisation/test1-formula==v1.0.1", "test_organisation/test2-formula==v2.0.10", "test_organisation/test3-formula==v3.0.1", ] actual_result = metadata.compare_requirements(previous_requirements, new_requirements) expected_result = [[ "test_organisation/test1-formula==v1.0.10", "test_organisation/test1-formula==v1.0.1" ], [ "test_organisation/test2-formula==v2.0.1", "test_organisation/test2-formula==v2.0.10" ]] self.assertEqual(actual_result, expected_result, ("Comparison should have new version\n" "Actual: '%s'\n" "Expected: %s\n") % (actual_result, expected_result))
def check_requirements(self): """ Check the current formula-requirements against those that would be generated from the metadata, """ logger.Logger().info("Shaker::check_requirements: " "Checking the current requirements " "against an update") self._load_local_requirements(enable_remote_check=True) current_requirements = self._shaker_remote.get_requirements() self._update_local_requirements() new_requirements = self._shaker_remote.get_requirements() requirements_diff = metadata.compare_requirements( current_requirements, new_requirements) if len(requirements_diff) == 0: logger.Logger().info("Shaker::check_requirements: " "No formula requirements changes found") else: for requirement_pair in requirements_diff: first_entry = requirement_pair[0] second_entry = requirement_pair[1] if len(first_entry) == 0: logger.Logger().info("Shaker::check_requirements: " "New entry %s" % (second_entry)) elif len(second_entry) == 0: logger.Logger().info("Shaker::check_requirements: " "Deprecated entry %s" % (first_entry)) else: logger.Logger().info("Shaker::check_requirements: " "Unequal entries %s != %s" % (first_entry, second_entry)) return requirements_diff
def test_compare_requirements_equal(self): """ TestShakerMetadata: Test comparing different requirements equal """ previous_requirements = [ "test_organisation/test1-formula==v1.0.1", "test_organisation/test2-formula==v2.0.1", "test_organisation/test3-formula==v3.0.1", ] new_requirements = [ "test_organisation/test1-formula==v1.0.1", "test_organisation/test2-formula==v2.0.1", "test_organisation/test3-formula==v3.0.1", ] actual_result = metadata.compare_requirements(previous_requirements, new_requirements) self.assertEqual(0, len(actual_result), "Comparison should have no difference")
def check_requirements(self): """ Check the current formula-requirements against those that would be generated from the metadata, """ logger.Logger().info("Shaker::check_requirements: " "Checking the current requirements " "against an update") self._load_local_requirements(enable_remote_check=True) current_requirements = self._shaker_remote.get_requirements() self._update_local_requirements() new_requirements = self._shaker_remote.get_requirements() requirements_diff = metadata.compare_requirements(current_requirements, new_requirements) if len(requirements_diff) == 0: logger.Logger().info("Shaker::check_requirements: " "No formula requirements changes found") else: for requirement_pair in requirements_diff: first_entry = requirement_pair[0] second_entry = requirement_pair[1] if len(first_entry) == 0: logger.Logger().info("Shaker::check_requirements: " "New entry %s" % (second_entry)) elif len(second_entry) == 0: logger.Logger().info("Shaker::check_requirements: " "Deprecated entry %s" % (first_entry)) else: logger.Logger().info("Shaker::check_requirements: " "Unequal entries %s != %s" % (first_entry, second_entry)) return requirements_diff