summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Jardón <jjardon@gnome.org>2015-03-18 17:42:38 +0000
committerGerrit Code Review <gerrit@baserock.org>2015-03-18 17:42:38 +0000
commit1d34c2a7825f0b964673d7719d4407d2b60cbe9d (patch)
tree20169c1d8ce91f948935dfdfaf1b25ac5e9397f4
parent33f48845d6f73659770075d004fc3f3ec75ee2f7 (diff)
parentbae41ec8678ce8217d5f7f09abfe330b3a910a1d (diff)
downloadmorph-1d34c2a7825f0b964673d7719d4407d2b60cbe9d.tar.gz
Merge "morphlib/sourceresolver.py: parse VERSION file in a function"
-rw-r--r--morphlib/sourceresolver.py28
1 files changed, 22 insertions, 6 deletions
diff --git a/morphlib/sourceresolver.py b/morphlib/sourceresolver.py
index 97d3e422..1e64c23a 100644
--- a/morphlib/sourceresolver.py
+++ b/morphlib/sourceresolver.py
@@ -346,15 +346,20 @@ class SourceResolver(object):
loader.set_defaults(morph)
return morph
- def _check_version_file(self,definitions_repo,
- definitions_absref): # pragma: no cover
- version_file = self._get_file_contents(
- definitions_repo, definitions_absref, 'VERSION')
+ def _parse_version_file(self, version_file): # pragma : no cover
+ '''Parse VERSION file and return the version of the format if:
- if version_file is None:
- return
+ VERSION is a YAML file
+ and it's a dict
+ and has the key 'version'
+ and the type stored in the 'version' key is an int
+ and that int is not in the supported format
+
+ otherwise returns None
+ '''
version = None
+
yaml_obj = yaml.safe_load(version_file)
if yaml_obj is not None:
if type(yaml_obj) is dict:
@@ -362,6 +367,17 @@ class SourceResolver(object):
if type(yaml_obj['version']) is int:
version = yaml_obj['version']
+ return version
+
+ 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
+
+ version = self._parse_version_file(version_file)
if version is not None:
if version not in supported_versions:
raise UnknownVersionError(version)