X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=tests%2Ftest_lintian.py;h=4a574a9d1a5c5fdba63d5ff3136b5a3481e19f61;hb=cfa9081dd435e9b0fd5405c4a2aa5ecccac80312;hp=99d5e93ab33d3653a20257faeeec9778b4aeceda;hpb=6929479f75234f9a4c88ce6f297d6a7b070753f6;p=dak.git diff --git a/tests/test_lintian.py b/tests/test_lintian.py index 99d5e93a..4a574a9d 100755 --- a/tests/test_lintian.py +++ b/tests/test_lintian.py @@ -4,7 +4,7 @@ from base_test import DakTestCase import unittest -from daklib.lintian import parse_lintian_output +from daklib.lintian import parse_lintian_output, generate_reject_messages class ParseLintianTestCase(DakTestCase): def assertParse(self, output, expected): @@ -41,5 +41,59 @@ class ParseLintianTestCase(DakTestCase): [('W', 'pkgname source', 'some-tag', 'path/to/file')] ) +class GenerateRejectMessages(DakTestCase): + def assertNumReject(self, input, defs, num): + msgs = list(generate_reject_messages(input, defs)) + self.assertEqual(len(msgs), num) + + def testUnknownTag(self): + self.assertNumReject( + [('W', 'pkgname', 'unknown-tag', '')], + {'fatal': ['known-tag'], 'nonfatal': []}, + 0, + ) + + def testFatalTags(self): + self.assertNumReject([ + ('W', 'pkgname', 'fatal-tag-1', ''), + ('W', 'pkgname', 'fatal-tag-2', ''), + ], + {'fatal': ['fatal-tag-1', 'fatal-tag-2'], 'nonfatal': []}, + 2, + ) + + def testMixture(self): + self.assertNumReject([ + ('W', 'pkgname', 'fatal-tag', ''), + ('W', 'pkgname', 'unknown-tag', ''), + ], + {'fatal': ['fatal-tag'], 'nonfatal': []}, + 1, + ) + + def testOverridable(self): + self.assertNumReject([ + ('W', 'pkgname', 'non-fatal-tag', ''), + ], + {'fatal': [], 'nonfatal': ['non-fatal-tag']}, + 1 + 1, # We add an extra 'reject' hint message + ) + + def testOverrideAllowed(self): + self.assertNumReject([ + ('O', 'pkgname', 'non-fatal-tag', ''), + ], + {'fatal': [], 'nonfatal': ['non-fatal-tag']}, + 0, + ) + + def testOverrideNotAllowed(self): + self.assertNumReject([ + ('O', 'pkgname', 'fatal-tag', ''), + ], + {'fatal': ['fatal-tag'], 'nonfatal': []}, + 1, + ) + if __name__ == '__main__': unittest.main()