debian_linux.{debian,utils}: Support templates for debian/tests/control

This commit is contained in:
Ben Hutchings 2015-08-11 23:42:35 +02:00
parent 9c8d371306
commit 5c869ad70b
2 changed files with 27 additions and 0 deletions

View File

@ -434,3 +434,24 @@ class Package(dict):
def values(self):
for i in self.keys():
yield self[i]
class TestsControl(dict):
_fields = {
'Tests': str,
'Test-Command': str,
'Restrictions': str,
'Features': str,
'Depends': PackageRelation,
'Tests-Directory': str,
'Classes': str,
}
def __setitem__(self, key, value):
try:
cls = self._fields[key]
if not isinstance(value, cls):
value = cls(value)
except KeyError:
pass
super(TestsControl, self).__setitem__(key, value)

View File

@ -26,6 +26,8 @@ class Templates(object):
f = codecs.open(filename, 'r', 'utf-8')
if prefix == 'control':
return read_control(f)
if prefix == 'tests-control':
return read_tests_control(f)
return f.read()
def get(self, key, default=None):
@ -42,6 +44,10 @@ def read_control(f):
from .debian import Package
return _read_rfc822(f, Package)
def read_tests_control(f):
from .debian import TestsControl
return _read_rfc822(f, TestsControl)
def _read_rfc822(f, cls):
entries = []
eof = False