summaryrefslogtreecommitdiff
path: root/tests/testutils.py
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2013-04-03 15:29:19 +0300
committerGuido Günther <agx@sigxcpu.org>2013-04-26 22:07:15 +0200
commitf880910c80c30bf64f951bb054814d2e00e76b77 (patch)
treea18da537a857d09ac8fb4c66c850e792d42c9c3c /tests/testutils.py
parentae63dba9f6d2fe2d1c0889b69eccacb3fc256a9c (diff)
tests: Fix tests for Ubuntu
On Ubuntu dch produces different version numbering. Adapt tests for this. Adds a jew class to parse '/etc/lsb-release' to determine the distribution and it's codename to dynamically adapt tests accordingly. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Diffstat (limited to 'tests/testutils.py')
-rw-r--r--tests/testutils.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/testutils.py b/tests/testutils.py
index 38e0ac3..0f953bc 100644
--- a/tests/testutils.py
+++ b/tests/testutils.py
@@ -41,3 +41,36 @@ class DebianGitTestRepo(unittest.TestCase):
content == None or f.write(content)
self.repo.add_files(name, force=True)
self.repo.commit_files(path, msg or "added %s" % name)
+
+class OsReleaseFile(object):
+ """Repesents a simple file with key-value pairs"""
+
+ def __init__(self, filename):
+ self._values = {}
+
+ try:
+ with open(filename, 'r') as filed:
+ for line in filed.readlines():
+ try:
+ key, value = line.split('=', 1)
+ except ValueError:
+ pass
+ else:
+ self._values[key] = value.strip()
+ except IOError as err:
+ gbp.log.info('Failed to read OS release file %s: %s' %
+ (filename, err))
+
+ def __getitem__(self, key):
+ if key in self._values:
+ return self._values[key]
+ return None
+
+ def __contains__(self, key):
+ return key in self._values
+
+ def __str__(self):
+ return str(self._values)
+
+ def __repr__(self):
+ return repr(self._values)