X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=blobdiff_plain;f=tests%2Ftest_formats.py;h=a897eeb0b7df98a92b0c7b9acde9039363cd2fba;hp=8a2b1ad56f27d98064fac0b368139f714e1426f8;hb=7c5adcf962fe99d6a42307595f263f47d0112fbc;hpb=ef55b8c79ae2d3e593aacb7a1f4a3c893bf62094 diff --git a/tests/test_formats.py b/tests/test_formats.py index 8a2b1ad5..a897eeb0 100755 --- a/tests/test_formats.py +++ b/tests/test_formats.py @@ -1,14 +1,13 @@ #!/usr/bin/env python -import unittest +from base_test import DakTestCase -import os, sys -sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +import unittest -from daklib.formats import parse_format +from daklib.formats import parse_format, validate_changes_format from daklib.dak_exceptions import UnknownFormatError -class ParseFormatTestCase(unittest.TestCase): +class ParseFormatTestCase(DakTestCase): def assertParse(self, format, expected): self.assertEqual(parse_format(format), expected) @@ -29,3 +28,33 @@ class ParseFormatTestCase(unittest.TestCase): def textText(self): self.assertParse('1.2 (three)', (1, 2, 'three')) self.assertParseFail('0.0 ()') + +class ValidateChangesFormat(DakTestCase): + def assertValid(self, changes, field='files'): + validate_changes_format(changes, field) + + def assertInvalid(self, *args, **kwargs): + self.assertRaises( + UnknownFormatError, + lambda: self.assertValid(*args, **kwargs) + ) + + ## + + def testBinary(self): + self.assertValid((1, 5)) + self.assertValid((1, 8)) + self.assertInvalid((1, 0)) + + def testRange(self): + self.assertInvalid((1, 3)) + self.assertValid((1, 5)) + self.assertValid((1, 8)) + self.assertInvalid((1, 9)) + + def testFilesField(self): + self.assertInvalid((1, 7), field='notfiles') + self.assertValid((1, 8), field='notfiles') + +if __name__ == '__main__': + unittest.main()