3 from base_test import DakTestCase
7 from daklib.lintian import parse_lintian_output, generate_reject_messages
9 class ParseLintianTestCase(DakTestCase):
10 def assertParse(self, output, expected):
12 list(parse_lintian_output(output)),
18 'W: pkgname: some-tag path/to/file',
19 [('W', 'pkgname', 'some-tag', 'path/to/file')],
22 self.assertParse('', [])
23 self.assertParse('\n\n', [])
24 self.assertParse('dummy error test', [])
26 def testBinaryNoDescription(self):
28 'W: pkgname: some-tag',
29 [('W', 'pkgname', 'some-tag', '')],
34 'W: pkgname source: some-tag',
35 [('W', 'pkgname source', 'some-tag', '')]
38 def testSourceNoDescription(self):
40 'W: pkgname source: some-tag path/to/file',
41 [('W', 'pkgname source', 'some-tag', 'path/to/file')]
44 class GenerateRejectMessages(DakTestCase):
45 def assertNumReject(self, input, defs, num):
46 msgs = list(generate_reject_messages(input, defs))
47 self.assertEqual(len(msgs), num)
49 def testUnknownTag(self):
51 [('W', 'pkgname', 'unknown-tag', '')],
52 {'fatal': ['known-tag'], 'nonfatal': []},
56 def testFatalTags(self):
57 self.assertNumReject([
58 ('W', 'pkgname', 'fatal-tag-1', ''),
59 ('W', 'pkgname', 'fatal-tag-2', ''),
61 {'fatal': ['fatal-tag-1', 'fatal-tag-2'], 'nonfatal': []},
65 def testMixture(self):
66 self.assertNumReject([
67 ('W', 'pkgname', 'fatal-tag', ''),
68 ('W', 'pkgname', 'unknown-tag', ''),
70 {'fatal': ['fatal-tag'], 'nonfatal': []},
74 def testOverridable(self):
75 self.assertNumReject([
76 ('W', 'pkgname', 'non-fatal-tag', ''),
78 {'fatal': [], 'nonfatal': ['non-fatal-tag']},
79 1 + 1, # We add an extra 'reject' hint message
82 def testOverrideAllowed(self):
83 self.assertNumReject([
84 ('O', 'pkgname', 'non-fatal-tag', ''),
86 {'fatal': [], 'nonfatal': ['non-fatal-tag']},
90 def testOverrideNotAllowed(self):
91 self.assertNumReject([
92 ('O', 'pkgname', 'fatal-tag', ''),
94 {'fatal': ['fatal-tag'], 'nonfatal': []},
98 if __name__ == '__main__':