|
1 | 1 | from pkgcheck.checks import cleanup |
| 2 | +from snakeoil.cli import arghparse |
2 | 3 |
|
3 | 4 | from .. import misc |
4 | 5 |
|
| 6 | +def mk_pkg(ver, keywords=("x86", "amd64"), slot="0", **kwds): |
| 7 | + return misc.FakePkg( |
| 8 | + f"dev-util/diffball-{ver}", |
| 9 | + data={**kwds, "KEYWORDS": ' '.join(keywords), "SLOT": slot}) |
5 | 10 |
|
6 | 11 | class TestRedundantVersion(misc.ReportTestCase): |
7 | 12 |
|
8 | 13 | check_kls = cleanup.RedundantVersionCheck |
9 | | - check = cleanup.RedundantVersionCheck(None) |
10 | | - |
11 | | - def mk_pkg(self, ver, keywords=("x86", "amd64"), slot="0", **kwds): |
12 | | - return misc.FakePkg( |
13 | | - f"dev-util/diffball-{ver}", |
14 | | - data={**kwds, "KEYWORDS": ' '.join(keywords), "SLOT": slot}) |
| 14 | + check = cleanup.RedundantVersionCheck(arghparse.Namespace(stable_only=None)) |
15 | 15 |
|
16 | 16 | def test_single_version(self): |
17 | | - self.assertNoReport(self.check, [self.mk_pkg("0.7.1")]) |
| 17 | + self.assertNoReport(self.check, [mk_pkg("0.7.1")]) |
18 | 18 |
|
19 | 19 | def test_live_version(self): |
20 | 20 | self.assertNoReport( |
21 | | - self.check, [self.mk_pkg('0.7'), self.mk_pkg('0.9', PROPERTIES='live')]) |
| 21 | + self.check, [mk_pkg('0.7'), mk_pkg('0.9', PROPERTIES='live')]) |
22 | 22 | self.assertNoReport( |
23 | | - self.check, [self.mk_pkg('0.7'), self.mk_pkg('9999', PROPERTIES='live')]) |
| 23 | + self.check, [mk_pkg('0.7'), mk_pkg('9999', PROPERTIES='live')]) |
24 | 24 |
|
25 | 25 | def test_no_keywords(self): |
26 | 26 | self.assertNoReport( |
27 | | - self.check, [self.mk_pkg('0.7'), self.mk_pkg('0.9', keywords=())]) |
| 27 | + self.check, [mk_pkg('0.7'), mk_pkg('0.9', keywords=())]) |
28 | 28 |
|
29 | 29 | def test_disabled_keywords(self): |
30 | 30 | self.assertNoReport( |
31 | | - self.check, [self.mk_pkg('0.7'), self.mk_pkg('0.9', keywords=('-x86', '-amd64'))]) |
| 31 | + self.check, [mk_pkg('0.7'), mk_pkg('0.9', keywords=('-x86', '-amd64'))]) |
32 | 32 |
|
33 | 33 | def test_single_redundant(self): |
34 | 34 | r = self.assertReport( |
35 | | - self.check, [self.mk_pkg(x) for x in ("0.7", "0.8")]) |
| 35 | + self.check, [mk_pkg(x) for x in ("0.7", "0.8")]) |
36 | 36 | assert isinstance(r, cleanup.RedundantVersion) |
37 | 37 | assert r.later_versions == ("0.8",) |
38 | 38 | assert 'slot(0) keywords are overshadowed by version: 0.8' in str(r) |
39 | 39 |
|
40 | 40 | def test_multiple_redundants(self): |
41 | 41 | reports = self.assertReports( |
42 | | - self.check, [self.mk_pkg(x) for x in ("0.7", "0.8", "0.9")]) |
| 42 | + self.check, [mk_pkg(x) for x in ("0.7", "0.8", "0.9")]) |
43 | 43 | assert ( |
44 | 44 | [list(x.later_versions) for x in reports] == |
45 | 45 | [["0.8", "0.9"], ["0.9"]]) |
46 | 46 | for x in reports: |
47 | 47 | assert isinstance(x, cleanup.RedundantVersion) |
48 | 48 |
|
49 | 49 | def test_multiple_slots(self): |
50 | | - l = [self.mk_pkg("0.7", slot="1"), self.mk_pkg("0.8"), |
51 | | - self.mk_pkg("0.9", slot="1")] |
| 50 | + l = [mk_pkg("0.7", slot="1"), mk_pkg("0.8"), |
| 51 | + mk_pkg("0.9", slot="1")] |
52 | 52 | r = self.assertReport(self.check, l) |
53 | 53 | assert r.later_versions == ("0.9",) |
54 | 54 | assert isinstance(r, cleanup.RedundantVersion) |
55 | 55 | assert 'slot(1) keywords are overshadowed by version: 0.9' in str(r) |
56 | 56 |
|
57 | | - l.append(self.mk_pkg("0.10", keywords=("x86", "amd64", "~sparc"))) |
| 57 | + l.append(mk_pkg("0.10", keywords=("x86", "amd64", "~sparc"))) |
58 | 58 | reports = self.assertReports(self.check, l) |
59 | 59 | assert ([list(x.later_versions) for x in reports] == [["0.9"], ["0.10"]]) |
60 | 60 |
|
61 | 61 | def test_multiple_keywords(self): |
62 | | - l = [self.mk_pkg("0.1", keywords=("~x86", "~amd64")), |
63 | | - self.mk_pkg("0.2", keywords=("x86", "~amd64", "~sparc"))] |
| 62 | + l = [mk_pkg("0.1", keywords=("~x86", "~amd64")), |
| 63 | + mk_pkg("0.2", keywords=("x86", "~amd64", "~sparc"))] |
64 | 64 | r = self.assertReport(self.check, l) |
65 | 65 | assert r.later_versions == ("0.2",) |
| 66 | + |
| 67 | + |
| 68 | +class TestRedundantVersionByStable(misc.ReportTestCase): |
| 69 | + |
| 70 | + check_kls = cleanup.RedundantVersionCheck |
| 71 | + check = cleanup.RedundantVersionCheck(arghparse.Namespace(stable_only=True)) |
| 72 | + |
| 73 | + def test_only_unstable(self): |
| 74 | + l = [mk_pkg("0.1", keywords=("~x86", "~amd64")), |
| 75 | + mk_pkg("0.2", keywords=("~x86", "~amd64"))] |
| 76 | + self.assertNoReport(self.check, l) |
| 77 | + |
| 78 | + def test_only_stable(self): |
| 79 | + l = [mk_pkg("0.1", keywords=("x86", "amd64")), |
| 80 | + mk_pkg("0.2", keywords=("x86", "amd64"))] |
| 81 | + r = self.assertReport(self.check, l) |
| 82 | + assert r.later_versions == ("0.2",) |
| 83 | + |
| 84 | + def test_mixed_stable(self): |
| 85 | + l = [mk_pkg("0.1", keywords=("x86", "amd64", "~sparc")), |
| 86 | + mk_pkg("0.2", keywords=("x86", "amd64", "~sparc"))] |
| 87 | + r = self.assertReport(self.check, l) |
| 88 | + assert r.later_versions == ("0.2",) |
| 89 | + |
| 90 | + def test_mixed_history(self): |
| 91 | + l = [mk_pkg("0.1", keywords=("amd64")), |
| 92 | + mk_pkg("0.2", keywords=("~x86", "~amd64")), |
| 93 | + mk_pkg("0.3", keywords=("x86", "amd64")), |
| 94 | + mk_pkg("0.4", keywords=("~x86", "~amd64")), |
| 95 | + mk_pkg("0.5", keywords=("~x86", "~amd64"))] |
| 96 | + r = self.assertReport(self.check, l) |
| 97 | + assert r.later_versions == ("0.3", "0.4", "0.5") |
| 98 | + |
| 99 | + def test_no_redundant(self): |
| 100 | + l = [mk_pkg("0.1", keywords=("x86", "amd64")), |
| 101 | + mk_pkg("0.2", keywords=("x86", "~amd64"))] |
| 102 | + self.assertNoReport(self.check, l) |
0 commit comments