def test_rpms_applicable_to_consumer(self): errata_rpms = [] prof = RPMErrataProfiler() applicable_rpms, old_rpms = prof.rpms_applicable_to_consumer(Consumer("test", {}), errata_rpms) self.assertEqual(applicable_rpms, []) self.assertEqual(old_rpms, {}) # # Get rpm dictionaries embedded in an errata # errata_obj = self.get_test_errata_object() errata_unit = Unit(TYPE_ID_ERRATA, {"id":errata_obj["id"]}, errata_obj, None) errata_rpms = prof.get_rpms_from_errata(errata_unit) # Test with 2 newer RPMs in the test errata # The consumer has already been configured with a profile containing 'emoticons' and 'patb' rpms applicable_rpms, old_rpms = prof.rpms_applicable_to_consumer(self.test_consumer, errata_rpms) self.assertTrue(applicable_rpms) self.assertTrue(old_rpms) self.assertEqual(len(applicable_rpms), 2) self.assertTrue(old_rpms.has_key("emoticons x86_64")) self.assertEqual("emoticons", old_rpms["emoticons x86_64"]["installed"]["name"]) self.assertEqual("0.0.1", old_rpms["emoticons x86_64"]["installed"]["version"])
def test_get_rpms_from_errata(self): errata_obj = self.get_test_errata_object() errata_unit = Unit(TYPE_ID_ERRATA, {"id":errata_obj["id"]}, errata_obj, None) prof = RPMErrataProfiler() rpms = prof.get_rpms_from_errata(errata_unit) # Expected data: # [{'src': 'xen-3.0.3-80.el5_3.3.src.rpm', 'name': 'emoticons', # 'sum': ('md5', '366bb5e73a5905eacb82c96e0578f92b'), # 'filename': 'emoticons-0.1-2.x86_64.rpm', 'epoch': '0', # 'version': '0.1', 'release': '2', 'arch': 'x86_64'}, # {'src': 'xen-3.0.3-80.el5_3.3.src.rpm', 'name': 'patb', # 'sum': ('md5', 'f3c197a29d9b66c5b65c5d62b25db5b4'), # 'filename': 'patb-0.1-2.x86_64.rpm', 'epoch': '0', # 'version': '0.1', 'release': '2', 'arch': 'x86_64'}] self.assertEqual(len(rpms), 2) self.assertTrue(rpms[0]["name"] in ['emoticons', 'patb']) self.assertTrue(rpms[1]["name"] in ['emoticons', 'patb']) for r in rpms: for key in ["name", "filename", "epoch", "version", "release"]: self.assertTrue(r.has_key(key)) self.assertTrue(r[key])