From 2ad079e853fae8b699274b5cecf1b31d6bbd514a Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Fri, 3 Apr 2015 13:24:59 +0100 Subject: Make _check_version_file return version Also add a distinct error message for an invalid version file Change-Id: I674e6af284b33705ae8235054906f56b8cd8a130 --- morphlib/sourceresolver.py | 22 ++++++++++++++++------ 1 file 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, -- cgit v1.2.1