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):
|
def values(self):
|
||||||
for i in self.keys():
|
for i in self.keys():
|
||||||
yield self[i]
|
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')
|
f = codecs.open(filename, 'r', 'utf-8')
|
||||||
if prefix == 'control':
|
if prefix == 'control':
|
||||||
return read_control(f)
|
return read_control(f)
|
||||||
|
if prefix == 'tests-control':
|
||||||
|
return read_tests_control(f)
|
||||||
return f.read()
|
return f.read()
|
||||||
|
|
||||||
def get(self, key, default=None):
|
def get(self, key, default=None):
|
||||||
|
@ -42,6 +44,10 @@ def read_control(f):
|
||||||
from .debian import Package
|
from .debian import Package
|
||||||
return _read_rfc822(f, 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):
|
def _read_rfc822(f, cls):
|
||||||
entries = []
|
entries = []
|
||||||
eof = False
|
eof = False
|
||||||
|
|
Loading…
Reference in New Issue