diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2015-08-11 23:42:35 +0200 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2015-10-31 22:04:13 +0000 |
commit | 5c869ad70b32001c3d3db8de13d7d49e4535472b (patch) | |
tree | 631f730f7c2b62c8470302fb5814962a53c4f78b | |
parent | 9c8d371306ec4d01456faba55188fc8ac1413c6e (diff) | |
download | kernel_replicant_linux-5c869ad70b32001c3d3db8de13d7d49e4535472b.tar.gz kernel_replicant_linux-5c869ad70b32001c3d3db8de13d7d49e4535472b.tar.bz2 kernel_replicant_linux-5c869ad70b32001c3d3db8de13d7d49e4535472b.zip |
debian_linux.{debian,utils}: Support templates for debian/tests/control
-rw-r--r-- | debian/lib/python/debian_linux/debian.py | 21 | ||||
-rw-r--r-- | debian/lib/python/debian_linux/utils.py | 6 |
2 files changed, 27 insertions, 0 deletions
diff --git a/debian/lib/python/debian_linux/debian.py b/debian/lib/python/debian_linux/debian.py index e0780ba7eae6..e59e64f4458a 100644 --- a/debian/lib/python/debian_linux/debian.py +++ b/debian/lib/python/debian_linux/debian.py @@ -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) diff --git a/debian/lib/python/debian_linux/utils.py b/debian/lib/python/debian_linux/utils.py index a7d4b1dbd8b8..f2fb6c39cd69 100644 --- a/debian/lib/python/debian_linux/utils.py +++ b/debian/lib/python/debian_linux/utils.py @@ -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 |