本文整理汇总了Python中pulp_rpm.plugins.profilers.yum.YumProfiler类的典型用法代码示例。如果您正苦于以下问题:Python YumProfiler类的具体用法?Python YumProfiler怎么用?Python YumProfiler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了YumProfiler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_install_units
def test_install_units(self):
repo_id = "test_repo_id"
errata_obj = self.get_test_errata_object()
errata_unit = Unit(TYPE_ID_ERRATA, {"id":errata_obj["id"]}, errata_obj, None)
existing_units = [errata_unit]
test_repo = profiler_mocks.get_repo(repo_id)
conduit = profiler_mocks.get_profiler_conduit(existing_units=existing_units,
repo_bindings=[test_repo])
example_errata = {"unit_key":errata_unit.unit_key, "type_id":TYPE_ID_ERRATA}
prof = YumProfiler()
translated_units = prof.install_units(self.test_consumer, [example_errata], None, None,
conduit)
# check repo_id passed to the conduit get_units()
self.assertEqual(conduit.get_units.call_args[0][0].id, repo_id)
# check unit association criteria passed to the conduit get_units()
self.assertEqual(conduit.get_units.call_args[0][1].type_ids, [TYPE_ID_ERRATA])
self.assertEqual(conduit.get_units.call_args[0][1].unit_filters, errata_unit.unit_key)
# validate translated units
self.assertEqual(len(translated_units), 2)
expected = []
for r in prof._get_rpms_from_errata(errata_unit):
expected_name = "%s-%s:%s-%s.%s" % (r["name"], r["epoch"], r["version"], r["release"],
r["arch"])
expected.append(expected_name)
for u in translated_units:
rpm_name = u["unit_key"]["name"]
self.assertTrue(rpm_name in expected)
示例2: test_update_profile_presorted_profile
def test_update_profile_presorted_profile(self):
"""
Test the update_profile() method with a presorted profile. It should not alter it at all.
"""
profile = [
{'name': 'Package A', 'epoch': 0, 'version': '1.0.1', 'release': '2.el6',
'arch': 'x86_64', 'vendor': 'Red Hat, Inc.'},
{'name': 'Package A', 'epoch': 0, 'version': '1.1.0', 'release': '1.el6',
'arch': 'x86_64', 'vendor': 'Red Hat, Inc.'},
{'name': 'Package B', 'epoch': 0, 'version': '2.3.9', 'release': '1.el6',
'arch': 'x86_64', 'vendor': 'Red Hat, Inc.'},
{'name': 'Package B', 'epoch': 1, 'version': '1.2.1', 'release': '8.el6',
'arch': 'x86_64', 'vendor': 'Red Hat, Inc.'},
{'name': 'Package C', 'epoch': 0, 'version': '1.0.0', 'release': '1.el6',
'arch': 'x86_64', 'vendor': 'Red Hat, Inc.'},
{'name': 'Package C', 'epoch': 0, 'version': '1.0.0', 'release': '2.el6',
'arch': 'x86_64', 'vendor': 'Red Hat, Inc.'},
]
profiler = YumProfiler()
# The update_profile() method doesn't use any of the args except for profile and
# content_type, so we'll just pass in strings for the others
new_profile = profiler.update_profile('consumer', TYPE_ID_RPM, deepcopy(profile), 'config')
self.assertEqual(new_profile, profile)
示例3: test_install_units_with_rpms
def test_install_units_with_rpms(self):
"""
Make sure install_units() can handle being given RPMs.
"""
rpms = [{"name": "rpm_1", "type_id": TYPE_ID_RPM}, {"name": "rpm_2", "type_id": TYPE_ID_RPM}]
profiler = YumProfiler()
translated_units = profiler.install_units("consumer", deepcopy(rpms), None, None, "conduit")
# The RPMs should be unaltered
self.assertEqual(translated_units, rpms)
示例4: test_unit_applicable_false
def test_unit_applicable_false(self):
rpm_unit_key = self.create_profile_entry("bla-bla", 0, "0.1", "2", "x86_64", "Test Vendor")
rpm_unit = Unit(TYPE_ID_RPM, rpm_unit_key, {}, None)
test_repo = profiler_mocks.get_repo("test_repo_id")
conduit = profiler_mocks.get_profiler_conduit(repo_units=[rpm_unit], repo_bindings=[test_repo])
prof = YumProfiler()
unit_profile = self.test_consumer.profiles[TYPE_ID_RPM]
bound_repo_id = "test_repo_id"
report_list = prof.calculate_applicable_units(unit_profile, bound_repo_id, None, conduit)
self.assertEqual(report_list, {TYPE_ID_RPM: [], TYPE_ID_ERRATA: []})
示例5: test_rpm_applicable_to_consumer
def test_rpm_applicable_to_consumer(self):
rpm = {}
prof = YumProfiler()
applicable = prof._is_rpm_applicable(rpm, {})
self.assertEqual(applicable, False)
# Test with newer RPM
# The consumer has already been configured with a profile containing 'emoticons'
rpm = self.create_profile_entry("emoticons", 0, "0.1", "2", "x86_64", "Test Vendor")
applicable = prof._is_rpm_applicable(rpm, self.test_consumer_lookup)
self.assertTrue(applicable)
示例6: test_update_profile_with_errata
def test_update_profile_with_errata(self):
"""
Test the update_profile() method with a presorted profile. It should not alter it at all.
"""
profile = ["one_errata", "two_errata", "three_errata", "four_errata"]
profiler = YumProfiler()
# The update_profile() method doesn't use any of the args except for profile and
# content_type, so we'll just pass in strings for the others
# This test just asserts that the profile is returned unaltered
new_profile = profiler.update_profile("consumer", TYPE_ID_ERRATA, deepcopy(profile), "config")
self.assertEqual(new_profile, profile)
示例7: test_unit_applicable_true
def test_unit_applicable_true(self):
rpm_unit_key = self.create_profile_entry("emoticons", 0, "0.1", "2", "x86_64", "Test Vendor")
rpm_unit = Unit(TYPE_ID_RPM, rpm_unit_key, {}, None)
# Let's give it an id, so we can assert for it later
rpm_unit.id = "a_test_id"
test_repo = profiler_mocks.get_repo("test_repo_id")
conduit = profiler_mocks.get_profiler_conduit(repo_units=[rpm_unit], repo_bindings=[test_repo])
prof = YumProfiler()
unit_profile = self.test_consumer.profiles[TYPE_ID_RPM]
bound_repo_id = "test_repo_id"
report_list = prof.calculate_applicable_units(unit_profile, bound_repo_id, None, conduit)
self.assertEqual(report_list, {TYPE_ID_RPM: [rpm_unit.id], TYPE_ID_ERRATA: []})
示例8: test_install_units_with_rpms
def test_install_units_with_rpms(self):
"""
Make sure install_units() can handle being given RPMs.
"""
rpms = [{'name': 'rpm_1', 'type_id': TYPE_ID_RPM},
{'name': 'rpm_2', 'type_id': TYPE_ID_RPM}]
profiler = YumProfiler()
translated_units = profiler.install_units('consumer', deepcopy(rpms), None, None,
'conduit')
# The RPMs should be unaltered
self.assertEqual(translated_units, rpms)
示例9: test_unit_applicable_updated_rpm_already_installed
def test_unit_applicable_updated_rpm_already_installed(self):
# Errata refers to RPMs already installed, i.e. the consumer has these exact NEVRA already
errata_obj = self.get_test_errata_object()
errata_unit = Unit(TYPE_ID_ERRATA, {"id": errata_obj["id"]}, errata_obj, None)
test_repo = profiler_mocks.get_repo("test_repo_id")
prof = YumProfiler()
errata_rpms = prof._get_rpms_from_errata(errata_unit)
conduit = profiler_mocks.get_profiler_conduit(repo_units=[errata_unit],
repo_bindings=[test_repo],
errata_rpms=errata_rpms)
unit_profile = self.test_consumer_been_updated.profiles[TYPE_ID_RPM]
bound_repo_id = "test_repo_id"
report_list = prof.calculate_applicable_units(unit_profile, bound_repo_id, None, conduit)
self.assertEqual(report_list, {TYPE_ID_RPM: [], TYPE_ID_ERRATA: []})
示例10: test_unit_applicable_false
def test_unit_applicable_false(self):
# Errata refers to RPMs which are NOT part of our test consumer's profile
errata_obj = self.get_test_errata_object_unrelated()
errata_unit = Unit(TYPE_ID_ERRATA, {"id": errata_obj["id"]}, errata_obj, None)
test_repo = profiler_mocks.get_repo("test_repo_id")
prof = YumProfiler()
errata_rpms = prof._get_rpms_from_errata(errata_unit)
conduit = profiler_mocks.get_profiler_conduit(repo_units=[errata_unit],
repo_bindings=[test_repo],
errata_rpms=errata_rpms)
unit_profile = self.test_consumer.profiles[TYPE_ID_RPM]
bound_repo_id = "test_repo_id"
report_list = prof.calculate_applicable_units(unit_profile, bound_repo_id, None, conduit)
self.assertEqual(report_list, {TYPE_ID_ERRATA: [], TYPE_ID_RPM: []})
示例11: test_rpm_applicable_with_profile_containing_duplicate_packages
def test_rpm_applicable_with_profile_containing_duplicate_packages(self):
"""
If a consumer profile contains multiple rpms with same name and arch (eg. in case of
kernel rpms), make sure that the applicability calculations take into consideration
the newest rpm installed.
"""
consumer_profile = self.get_test_profile_with_duplicate_packages()
test_consumer_lookup = YumProfiler._form_lookup_table(consumer_profile[TYPE_ID_RPM])
rpm = self.create_profile_entry("patb", 0, "0.0.2", "1", "x86_64", "Test Vendor")
yum_profiler = YumProfiler()
applicable = yum_profiler._is_rpm_applicable(rpm, test_consumer_lookup)
self.assertFalse(applicable)
newer_rpm = self.create_profile_entry("patb", 0, "0.0.3", "1", "x86_64", "Test Vendor")
applicable = yum_profiler._is_rpm_applicable(newer_rpm, test_consumer_lookup)
self.assertTrue(applicable)
示例12: test_unit_applicable_same_name_diff_arch
def test_unit_applicable_same_name_diff_arch(self):
# Errata refers to RPMs that are x86_64, the test consumer is i386
# the rpms installed share the same name as the errata, but the client arch is different
# so this errata is marked as unapplicable
errata_obj = self.get_test_errata_object()
errata_unit = Unit(TYPE_ID_ERRATA, {"id": errata_obj["id"]}, errata_obj, None)
test_repo = profiler_mocks.get_repo("test_repo_id")
prof = YumProfiler()
errata_rpms = prof._get_rpms_from_errata(errata_unit)
conduit = profiler_mocks.get_profiler_conduit(repo_units=[errata_unit],
repo_bindings=[test_repo],
errata_rpms=errata_rpms)
unit_profile = self.test_consumer_i386.profiles[TYPE_ID_RPM]
bound_repo_id = "test_repo_id"
report_list = prof.calculate_applicable_units(unit_profile, bound_repo_id, None, conduit)
self.assertEqual(report_list, {TYPE_ID_RPM: [], TYPE_ID_ERRATA: []})
示例13: test_install_units
def test_install_units(self):
"""
Verify that all available packages in the erratum are installed
In this test, there are two packages in the erratum, and both are
available to the consumer. Thus, both should be installed.
"""
repo_id = "test_repo_id"
errata_obj = self.get_test_errata_object()
errata_unit = Unit(TYPE_ID_ERRATA, {"id": errata_obj["id"]}, errata_obj, None)
existing_units = [errata_unit]
test_repo = profiler_mocks.get_repo(repo_id)
# create two RPM units that match what is in the erratum
rpm_units = []
rpm_unit_key_1 = self.create_profile_entry("emoticons", 0, "0.1", "2", "x86_64",
"Test Vendor")
rpm_units.append(Unit(TYPE_ID_RPM, rpm_unit_key_1, {}, None))
rpm_unit_key_2 = self.create_profile_entry("patb", 0, "0.1", "2", "x86_64", "Test Vendor")
rpm_units.append(Unit(TYPE_ID_RPM, rpm_unit_key_2, {}, None))
existing_units += rpm_units
conduit = profiler_mocks.get_profiler_conduit(existing_units=existing_units,
repo_bindings=[test_repo],
repo_units=rpm_units)
example_errata = {"unit_key": errata_unit.unit_key, "type_id": TYPE_ID_ERRATA}
prof = YumProfiler()
translated_units = prof.install_units(self.test_consumer, [example_errata], None, None,
conduit)
# check repo_id passed to the conduit get_units()
self.assertEqual(conduit.get_units.call_args[0][0].id, repo_id)
# check unit association criteria passed to the conduit get_units()
self.assertEqual(conduit.get_units.call_args_list[0][0][1].type_ids, [TYPE_ID_ERRATA])
self.assertEqual(conduit.get_units.call_args_list[0][0][1].unit_filters,
errata_unit.unit_key)
# validate translated units
self.assertEqual(len(translated_units), 2)
expected = prof._get_rpms_from_errata(errata_unit)
for u in translated_units:
rpm_unit_key = u["unit_key"]
self.assertTrue(rpm_unit_key in expected)
示例14: test_form_lookup_table
def test_form_lookup_table(self):
"""
Test that form_lookup_table creates a table with the latest rpm in the profile as a value
corresponding to the rpm name and arch.
"""
test_profile = self.get_test_profile_with_duplicate_packages()
consumer_lookup = YumProfiler._form_lookup_table(test_profile[TYPE_ID_RPM])
self.assertEqual(len(consumer_lookup), 2)
self.assertEqual(consumer_lookup['patb x86_64'],
self.create_profile_entry("patb", 0, "0.0.2", "1", "x86_64", "Test Vendor"))
示例15: test_create_nevra
def test_create_nevra(self):
rpm = {'name': "foo",
'epoch': 0,
'version': '1',
'release': '5',
'arch': '8088',
'extra_field': 'extra'}
result = YumProfiler._create_nevra(rpm)
self.assertEquals(result, {'name': 'foo', 'epoch': '0', 'version': '1',
'release': '5', 'arch': '8088'})