debian_linux.{debian,utils}: Support templates for debian/tests/control
This commit is contained in:
parent
9c8d371306
commit
5c869ad70b
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue