X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=tests%2Ftest_srcformats.py;h=2bd527d5bf05a080f79cab6400333979476c7ad3;hb=fd9038ac91d1ec43828ae4d0f364952aee2de181;hp=9c62d831bdb8a46b609e826848472fca584004f1;hpb=c9ba1a13b41a4f21b72485d9d93008f4d16f71ac;p=dak.git diff --git a/tests/test_srcformats.py b/tests/test_srcformats.py index 9c62d831..2bd527d5 100755 --- a/tests/test_srcformats.py +++ b/tests/test_srcformats.py @@ -8,6 +8,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from collections import defaultdict from daklib import srcformats +from daklib.formats import parse_format from daklib.dak_exceptions import UnknownFormatError class SourceFormatTestCase(unittest.TestCase): @@ -105,74 +106,59 @@ class FormatTreeQuiltTestCase(SourceFormatTestCase): ## -class ParseFormat(unittest.TestCase): - def assertFormat(self, input, expected, **kwargs): - format = srcformats.SourceFormat.parse_format(input) - self.assertEqual(format, expected) - srcformats.SourceFormat.validate_format(format, **kwargs) +class ValidateFormatTestCase(unittest.TestCase): + def assertValid(self, format, **kwargs): + self.fmt.validate_format(format, **kwargs) - def assertInvalidFormat(self, input, **kwargs): - try: - format = srcformats.SourceFormat.parse_format(input) - srcformats.SourceFormat.validate_format(format, **kwargs) - except UnknownFormatError: - return + def assertInvalid(self, *args, **kwargs): + self.assertRaises( + UnknownFormatError, + lambda: self.assertValid(*args, **kwargs), + ) - def testEmpty(self): - self.assertInvalidFormat('') - self.assertInvalidFormat(' ') - self.assertInvalidFormat(' ') - - def testBroken(self): - self.assertInvalidFormat('.0') - self.assertInvalidFormat('.1') - self.assertInvalidFormat('format') - -class ParseSourceFormat(ParseFormat): - def assertFormat(self, *args, **kwargs): - kwargs['is_a_dsc'] = kwargs.get('is_a_dsc', True) - super(ParseSourceFormat, self).assertFormat(*args, **kwargs) - - def assertInvalidFormat(self, *args, **kwargs): - kwargs['is_a_dsc'] = kwargs.get('is_a_dsc', True) - super(ParseSourceFormat, self).assertInvalidFormat(*args, **kwargs) - - def testSimple(self): - self.assertFormat('1.0', (1, 0)) - - def testZero(self): - self.assertInvalidFormat('0.0') - - def testNative(self): - self.assertFormat('3.0 (native)', (3, 0, 'native')) - - def testQuilt(self): - self.assertFormat('3.0 (quilt)', (3, 0, 'quilt')) - - def testUnknownThree(self): - self.assertInvalidFormat('3.0 (cvs)') - -class ParseBinaryFormat(ParseFormat): - def assertFormat(self, *args, **kwargs): - kwargs['is_a_dsc'] = kwargs.get('is_a_dsc', False) - super(ParseBinaryFormat, self).assertFormat(*args, **kwargs) +class ValidateFormatThreeTestCase(ValidateFormatTestCase): + fmt = srcformats.FormatThree - def assertInvalidFormat(self, *args, **kwargs): - kwargs['is_a_dsc'] = kwargs.get('is_a_dsc', False) - super(ParseBinaryFormat, self).assertInvalidFormat(*args, **kwargs) + def testValid(self): + self.assertValid((3, 0, 'native')) - def testSimple(self): - self.assertFormat('1.5', (1, 5)) + def testInvalid(self): + self.assertInvalid((1, 0)) + self.assertInvalid((0, 0)) + self.assertInvalid((3, 0, 'quilt')) - def testRange(self): - self.assertInvalidFormat('1.0') - self.assertFormat('1.5', (1, 5)) - self.assertFormat('1.8', (1, 8)) - self.assertInvalidFormat('1.9') +class ValidateFormatThreeQuiltTestCase(ValidateFormatTestCase): + fmt = srcformats.FormatThreeQuilt - def testFilesField(self): - self.assertInvalidFormat('1.7', field='notfiles') - self.assertFormat('1.8', (1, 8), field='notfiles') + def testValid(self): + self.assertValid((3, 0, 'quilt')) + + def testInvalid(self): + self.assertInvalid((1, 0)) + self.assertInvalid((0, 0)) + self.assertInvalid((3, 0, 'native')) + +class FormatFromStringTestCase(unittest.TestCase): + def assertFormat(self, txt, klass): + self.assertEqual(srcformats.get_format_from_string(txt), klass) + + def assertInvalid(self, txt): + self.assertRaises( + UnknownFormatError, + lambda: srcformats.get_format_from_string(txt), + ) + + def testFormats(self): + self.assertFormat('1.0', srcformats.FormatOne) + self.assertFormat('3.0 (native)', srcformats.FormatThree) + self.assertFormat('3.0 (quilt)', srcformats.FormatThreeQuilt) + + def testInvalidFormats(self): + self.assertInvalid('') + self.assertInvalid('.') + self.assertInvalid('3.0 (cvs)') + self.assertInvalid(' 1.0 ') + self.assertInvalid('8.4 (hardy)') if __name__ == '__main__': unittest.main()