Skip to content

Commit 5ff69c9

Browse files
konturaj-mracek
authored andcommitted
Add advisory python API tests
For: #213
1 parent ea6828d commit 5ff69c9

File tree

1 file changed

+117
-4
lines changed

1 file changed

+117
-4
lines changed

test/python3/libdnf5/advisory/test_advisory.py

+117-4
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,122 @@ class TestAdvisory(base_test_case.BaseTestCase):
2424
def setUp(self):
2525
super().setUp()
2626
self.add_repo_repomd("repomd-repo1")
27-
28-
def test_get_name(self):
2927
query = libdnf5.advisory.AdvisoryQuery(self.base)
3028
query.filter_type("security")
31-
pkg = next(iter(query))
32-
self.assertEqual(pkg.get_name(), "DNF-2019-1")
29+
self.advisory = next(iter(query))
30+
31+
def test_advisory_query(self):
32+
query = libdnf5.advisory.AdvisoryQuery(self.base)
33+
query.filter_name("DNF-2019-1")
34+
self.assertEqual(query.size(), 1)
35+
advisory = next(iter(query))
36+
self.assertEqual(advisory.get_name(), "DNF-2019-1")
37+
38+
query = libdnf5.advisory.AdvisoryQuery(self.base)
39+
query.filter_type("bugfix")
40+
self.assertEqual(query.size(), 2)
41+
advisory = next(iter(query))
42+
self.assertEqual(advisory.get_type(), "bugfix")
43+
44+
query = libdnf5.advisory.AdvisoryQuery(self.base)
45+
query.filter_reference("1111")
46+
self.assertEqual(query.size(), 1)
47+
advisory = next(iter(query))
48+
refs = advisory.get_references()
49+
self.assertEqual(len(refs), 1)
50+
self.assertEqual(refs[0].get_id(), "1111")
51+
52+
query = libdnf5.advisory.AdvisoryQuery(self.base)
53+
query.filter_severity("moderate")
54+
self.assertEqual(query.size(), 1)
55+
advisory = next(iter(query))
56+
self.assertEqual(advisory.get_severity(), "moderate")
57+
58+
query = libdnf5.advisory.AdvisoryQuery(self.base)
59+
pkgquery = libdnf5.rpm.PackageQuery(self.base)
60+
query.filter_packages(pkgquery)
61+
self.assertEqual(query.size(), 1)
62+
advisory = next(iter(query))
63+
self.assertEqual(advisory.get_name(), "DNF-2019-1")
64+
65+
query = libdnf5.advisory.AdvisoryQuery(self.base)
66+
pkgquery = libdnf5.rpm.PackageQuery(self.base)
67+
pkgs = query.get_advisory_packages_sorted(pkgquery)
68+
self.assertEqual(pkgs.size(), 1)
69+
self.assertEqual(pkgs[0].get_nevra(), "pkg-1.2-3.x86_64")
70+
71+
def test_advisory(self):
72+
self.assertEqual(self.advisory.get_name(), "DNF-2019-1")
73+
self.assertEqual(self.advisory.get_severity(), "moderate")
74+
self.assertEqual(self.advisory.get_type(), "security")
75+
self.assertEqual(self.advisory.get_buildtime(), 1550849401)
76+
self.assertEqual(self.advisory.get_vendor(), "[email protected]")
77+
self.assertEqual(self.advisory.get_description(),
78+
"testing advisory 2019")
79+
self.assertEqual(self.advisory.get_title(), "bugfix_A-1.0-1")
80+
self.assertEqual(self.advisory.get_status(), "stable")
81+
self.assertEqual(self.advisory.get_rights(), "")
82+
self.assertEqual(self.advisory.get_message(), "")
83+
self.assertEqual(self.advisory.is_applicable(), True)
84+
85+
def test_references(self):
86+
refs = self.advisory.get_references()
87+
self.assertEqual(len(refs), 1)
88+
reference = refs[0]
89+
self.assertEqual(reference.get_id(), "1111")
90+
self.assertEqual(reference.get_type(), "cve")
91+
self.assertEqual(reference.get_title(), "CVE-2999")
92+
self.assertEqual(reference.get_url(), "https://foobar/foobarupdate_2")
93+
94+
def test_collections(self):
95+
cols = self.advisory.get_collections()
96+
self.assertEqual(len(cols), 1)
97+
collection = cols[0]
98+
self.assertEqual(collection.get_advisory_id(), self.advisory.get_id())
99+
self.assertEqual(collection.get_advisory(), self.advisory)
100+
self.assertEqual(collection.is_applicable(), True)
101+
102+
def test_advisory_packages(self):
103+
collection = self.advisory.get_collections()[0]
104+
adv_packages = collection.get_packages()
105+
self.assertEqual(len(adv_packages), 2)
106+
adv_package = adv_packages[0]
107+
108+
self.assertEqual(adv_package.get_advisory_id(), self.advisory.get_id())
109+
self.assertEqual(adv_package.get_advisory(), self.advisory)
110+
# We can't compare the collections directly because adv_package constructs
111+
# a new instance of the same collection
112+
self.assertEqual(adv_package.get_advisory_collection(
113+
).get_advisory_id(), self.advisory.get_id())
114+
115+
self.assertEqual(adv_package.get_name(), "pkg")
116+
self.assertEqual(adv_package.get_epoch(), "0")
117+
self.assertEqual(adv_package.get_version(), "1.2")
118+
self.assertEqual(adv_package.get_release(), "3")
119+
self.assertEqual(adv_package.get_evr(), "1.2-3")
120+
self.assertEqual(adv_package.get_arch(), "x86_64")
121+
self.assertEqual(adv_package.get_nevra(), "pkg-1.2-3.x86_64")
122+
123+
self.assertEqual(adv_package.get_reboot_suggested(), True)
124+
self.assertEqual(adv_package.get_restart_suggested(), False)
125+
self.assertEqual(adv_package.get_relogin_suggested(), False)
126+
127+
def test_advisory_modules(self):
128+
collection = self.advisory.get_collections()[0]
129+
adv_modules = collection.get_modules()
130+
self.assertEqual(len(adv_modules), 2)
131+
adv_module = adv_modules[0]
132+
133+
self.assertEqual(adv_module.get_advisory_id(), self.advisory.get_id())
134+
self.assertEqual(adv_module.get_advisory(), self.advisory)
135+
# We can't compare the collections directly because adv_module constructs
136+
# a new instance of the same collection
137+
self.assertEqual(adv_module.get_advisory_collection(
138+
).get_advisory_id(), self.advisory.get_id())
139+
140+
self.assertEqual(adv_module.get_name(), "perl-DBI")
141+
self.assertEqual(adv_module.get_stream(), "master")
142+
self.assertEqual(adv_module.get_version(), "2")
143+
self.assertEqual(adv_module.get_context(), "2a")
144+
self.assertEqual(adv_module.get_arch(), "x86_64")
145+
self.assertEqual(adv_module.get_nsvca(), "perl-DBI:master:2:2a:x86_64")

0 commit comments

Comments
 (0)