X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=tests%2Ftest_parse_changes.py;h=c7193dbef1148379509b097bd1f928ff09933965;hb=4f3c7874fd19d380b106a9d4bbab0403ed089359;hp=38f653d006256bc612c9d86b7d0a3e3eaaae35b2;hpb=f5b045598b52c83b2d9e3f906e9629c54aaf6500;p=dak.git diff --git a/tests/test_parse_changes.py b/tests/test_parse_changes.py index 38f653d0..c7193dbe 100755 --- a/tests/test_parse_changes.py +++ b/tests/test_parse_changes.py @@ -10,59 +10,64 @@ from daklib.dak_exceptions import InvalidDscError, ParseChangesError class ParseChangesTestCase(DakTestCase): def assertParse(self, filename, *args): - return parse_changes(fixture(filename), *args, keyrings=()) - - def assertFails(self, filename, line=None, *args): - try: - self.assertParse(filename, *args) - self.fail('%s was not recognised as invalid' % filename) - except ParseChangesError: - pass - except GpgException: - pass - except InvalidDscError, actual_line: - if line is not None: - assertEqual(actual_line, line) + return parse_changes(fixture(filename), *args) class ParseDscTestCase(ParseChangesTestCase): def test_1(self): - self.assertParse('dsc/1.dsc', 0, 1) + self.assertParse('dsc/1.dsc', -1, 1) def test_1_ignoreErrors(self): # Valid .dsc ; ignoring errors - self.assertParse('dsc/1.dsc', 0, 1) + self.assertParse('dsc/1.dsc', -1, 1) def test_2(self): # Missing blank line before signature body - self.assertParse('dsc/2.dsc', 0, 1) + self.assertParse('dsc/2.dsc', -1, 1) def test_2_ignoreErrors(self): # Invalid .dsc ; ignoring errors - self.assertParse('dsc/2.dsc', 0, 1) + self.assertParse('dsc/2.dsc', -1, 1) def test_3(self): # Missing blank line after signature header - self.assertParse('dsc/3.dsc', 0, 1) + self.assertParse('dsc/3.dsc', -1, 1) def test_4(self): # No blank lines at all - self.assertFails('dsc/4.dsc', 0, 1) + with self.assertRaises(GpgException): + self.assertParse('dsc/4.dsc', -1, 1) def test_5(self): # Extra blank line before signature body - self.assertParse('dsc/5.dsc', 0, 1) + self.assertParse('dsc/5.dsc', -1, 1) def test_6(self): # Extra blank line after signature header - self.assertParse('dsc/6.dsc', 0, 1) + self.assertParse('dsc/6.dsc', -1, 1) + + def test_7(self): + # Blank file is an invalid armored GPG file + with self.assertRaises(GpgException): + self.assertParse('dsc/7.dsc', -1, 1) + + def test_8(self): + # No armored contents + with self.assertRaisesRegexp(ParseChangesError, "Empty changes"): + self.assertParse('dsc/8.dsc', -1, 1) + + def test_9(self): + changes = self.assertParse('dsc/9.dsc', -1, 1) + self.assert_(changes['question'] == 'Is this a bug?') + self.failIf(changes.get('this')) class ParseChangesTestCase(ParseChangesTestCase): def test_1(self): # Empty changes - self.assertFails('changes/1.changes', line=5) + with self.assertRaises(GpgException): + self.assertParse('changes/1.changes', 1) def test_2(self): - changes = self.assertParse('changes/2.changes', 0) + changes = self.assertParse('changes/2.changes', -1) binaries = changes['binary'] @@ -70,7 +75,7 @@ class ParseChangesTestCase(ParseChangesTestCase): def test_3(self): for filename in ('valid', 'bogus-pre', 'bogus-post'): - for strict_whitespace in (0, 1): + for strict_whitespace in (-1,): changes = self.assertParse( 'changes/%s.changes' % filename, strict_whitespace,