X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=tests%2Ftest_srcformats.py;h=fa6f3b386c34aa3706d62b359f2755dc31ca70c1;hb=008ec05c90d3130241fc7869c5b38a6a33fc71c8;hp=9fec4a8765fd0db46d86fc636feee6773dcce542;hpb=1fa1f22b70c6ee46aea78ee40b9797a574d7c583;p=dak.git diff --git a/tests/test_srcformats.py b/tests/test_srcformats.py index 9fec4a87..fa6f3b38 100755 --- a/tests/test_srcformats.py +++ b/tests/test_srcformats.py @@ -1,15 +1,13 @@ #!/usr/bin/env python -import unittest - -import os, sys -sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -from collections import defaultdict +from base_test import DakTestCase from daklib import srcformats +from collections import defaultdict +from daklib.formats import parse_format +from daklib.dak_exceptions import UnknownFormatError -class SourceFormatTestCase(unittest.TestCase): +class SourceFormatTestCase(DakTestCase): def get_rejects(self, has_vars): has = defaultdict(lambda: 0) has.update(has_vars) @@ -102,5 +100,27 @@ class FormatTreeQuiltTestCase(SourceFormatTestCase): 'native_tar': 1, }) +class FormatFromStringTestCase(DakTestCase): + 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()