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 self.assertEqual(len(generate_reject_messages(input, defs)), num)
48 def testUnknownTag(self):
50 [('W', 'pkgname', 'unknown-tag', '')],
51 {'fatal': ['known-tag'], 'nonfatal': []},
55 def testFatalTags(self):
56 self.assertNumReject([
57 ('W', 'pkgname', 'fatal-tag-1', ''),
58 ('W', 'pkgname', 'fatal-tag-2', ''),
60 {'fatal': ['fatal-tag-1', 'fatal-tag-2'], 'nonfatal': []},
64 def testMixture(self):
65 self.assertNumReject([
66 ('W', 'pkgname', 'fatal-tag', ''),
67 ('W', 'pkgname', 'unknown-tag', ''),
69 {'fatal': ['fatal-tag'], 'nonfatal': []},
73 def testOverridable(self):
74 self.assertNumReject([
75 ('W', 'pkgname', 'non-fatal-tag', ''),
77 {'fatal': [], 'nonfatal': ['non-fatal-tag']},
78 1 + 1, # We add an extra 'reject' hint message
81 def testOverrideAllowed(self):
82 self.assertNumReject([
83 ('O', 'pkgname', 'non-fatal-tag', ''),
85 {'fatal': [], 'nonfatal': ['non-fatal-tag']},
89 def testOverrideNotAllowed(self):
90 self.assertNumReject([
91 ('O', 'pkgname', 'fatal-tag', ''),
93 {'fatal': ['fatal-tag'], 'nonfatal': []},
97 if __name__ == '__main__':