summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richardipsum@fastmail.co.uk>2015-04-03 13:24:59 +0100
committerBaserock Gerrit <gerrit@baserock.org>2015-04-11 12:23:34 +0000
commit2ad079e853fae8b699274b5cecf1b31d6bbd514a (patch)
treeef4a6d23c6edf6843c6b911bb1f98aeb633b8278
parent4c17ac32131afb5e986075d7c65dbe8c20df7fc4 (diff)
downloadmorph-2ad079e853fae8b699274b5cecf1b31d6bbd514a.tar.gz
Make _check_version_file return version
Also add a distinct error message for an invalid version file Change-Id: I674e6af284b33705ae8235054906f56b8cd8a130
-rw-r--r--morphlib/sourceresolver.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/morphlib/sourceresolver.py b/morphlib/sourceresolver.py
index c105fced..7e0124b4 100644
--- a/morphlib/sourceresolver.py
+++ b/morphlib/sourceresolver.py
@@ -96,6 +96,11 @@ class UnknownVersionError(SourceResolverError): # pragma: no cover
self, "Definitions format version %s is not supported" % version)
+class InvalidVersionFileError(SourceResolverError): #pragma: no cover
+ def __init__(self):
+ SourceResolverError.__init__(self, "invalid VERSION file")
+
+
class SourceResolver(object):
'''Provides a way of resolving the set of sources for a given system.
@@ -369,18 +374,23 @@ class SourceResolver(object):
return version
- def _check_version_file(self,definitions_repo,
+ def _check_version_file(self, definitions_repo,
definitions_absref): # pragma: no cover
version_file = self._get_file_contents(
definitions_repo, definitions_absref, 'VERSION')
- if version_file is None:
- return
+ if version_file == None:
+ return 0 # Assume version 0 if no version file
version = self._parse_version_file(version_file)
- if version is not None:
- if version not in supported_versions:
- raise UnknownVersionError(version)
+
+ if version == None:
+ raise InvalidVersionFileError()
+
+ if version not in supported_versions:
+ raise UnknownVersionError(version)
+
+ return version
def _process_definitions_with_children(self, system_filenames,
definitions_repo,