summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Jardón <javier.jardon@codethink.co.uk>2015-02-27 15:48:13 +0000
committerJavier Jardón <jjardon@gnome.org>2015-03-04 19:14:41 +0000
commit1cf8cfda9e7def942f3fe568373c55b251e7e2f8 (patch)
tree9d4c952327ebfb872218f202dc6362b2094f3e23
parent0ad137344b5712a7a42c54dc744f7367c56a3212 (diff)
downloadmorph-1cf8cfda9e7def942f3fe568373c55b251e7e2f8.tar.gz
morphlib/sourceresolver.py: Add _get_file_contents()
And make _get_morphology() use it
-rw-r--r--morphlib/sourceresolver.py35
1 files changed, 23 insertions, 12 deletions
diff --git a/morphlib/sourceresolver.py b/morphlib/sourceresolver.py
index dd020803..cd183ee0 100644
--- a/morphlib/sourceresolver.py
+++ b/morphlib/sourceresolver.py
@@ -261,18 +261,13 @@ class SourceResolver(object):
return morph
- def _get_morphology(self, reponame, sha1, filename):
- '''Read the morphology at the specified location.
+ def _get_file_contents(self, reponame, sha1, filename): # pragma: no cover
+ '''Read the file at the specified location.
Returns None if the file does not exist in the specified commit.
'''
- key = (reponame, sha1, filename)
- if key in self._resolved_morphologies:
- return self._resolved_morphologies[key]
-
- loader = morphlib.morphloader.MorphologyLoader()
- morph = None
+ text = None
if reponame == self._definitions_repo and \
sha1 == self._definitions_absref: # pragma: no cover
@@ -280,11 +275,27 @@ class SourceResolver(object):
# we can quickly read definitions files from.
defs_filename = os.path.join(self._definitions_checkout_dir,
filename)
- morph = self._get_morphology_from_definitions(loader,
- defs_filename)
+ text = self._get_file_contents_from_definitions(defs_filename)
else:
- morph = self._get_morphology_from_repo(loader, reponame, sha1,
- filename)
+ text = self._get_file_contents_from_repo(reponame, sha1, filename)
+
+ return text
+
+ def _get_morphology(self, reponame, sha1, filename): # pragma: no cover
+ '''Read the morphology at the specified location.
+
+ Returns None if the file does not exist in the specified commit.
+
+ '''
+ key = (reponame, sha1, filename)
+ if key in self._resolved_morphologies:
+ return self._resolved_morphologies[key]
+
+ loader = morphlib.morphloader.MorphologyLoader()
+ morph = None
+
+ text = self._get_file_contents(reponame, sha1, filename)
+ morph = loader.load_from_string(text)
if morph is None:
return None