yield "contains source files not allowed in format %s" % cls.name
@classmethod
- def parse_format(cls, txt, is_a_dsc=False, field='files'):
+ def parse_format(cls, txt):
format = re_verwithext.search(txt)
if format is None:
if format[2] is None:
format = format[:2]
+ return format
+
+ @classmethod
+ def validate_format(cls, format, is_a_dsc=False, field='files'):
if is_a_dsc:
if format != (1,0) and \
format != (3,0,"quilt") and format != (3,0,"native"):
- raise UnknownFormatError, txt
+ raise UnknownFormatError, repr(format)
else:
if (format < (1,5) or format > (1,8)):
- raise UnknownFormatError, txt
+ raise UnknownFormatError, repr(format)
if field != "files" and format < (1,8):
- raise UnknownFormatError, txt
-
- return format
+ raise UnknownFormatError, repr(format)
class FormatOne(SourceFormat):
__metaclass__ = SourceFormat
if not changes.has_key(field):
raise NoFilesFieldError
- format = SourceFormat.parse_format(changes.get["format"], field, is_a_dsc)
+ format = SourceFormat.parse_format(changes.get["format"])
+ SourceFormat.validate_format(format, is_a_dsc=False, field='files')
includes_section = (not is_a_dsc) and field == "files"
class ParseFormat(unittest.TestCase):
def assertFormat(self, input, expected, **kwargs):
- self.assertEqual(
- srcformats.SourceFormat.parse_format(input, **kwargs),
- expected,
- )
+ format = srcformats.SourceFormat.parse_format(input)
+ self.assertEqual(format, expected)
+ srcformats.SourceFormat.validate_format(format, **kwargs)
def assertInvalidFormat(self, input, **kwargs):
- self.assertRaises(
- UnknownFormatError,
- lambda: srcformats.SourceFormat.parse_format(input, **kwargs),
- )
+ try:
+ format = srcformats.SourceFormat.parse_format(input)
+ srcformats.SourceFormat.validate_format(format, **kwargs)
+ except UnknownFormatError:
+ return
def testEmpty(self):
self.assertInvalidFormat('')