File tree Expand file tree Collapse file tree 2 files changed +30
-2
lines changed
Expand file tree Collapse file tree 2 files changed +30
-2
lines changed Original file line number Diff line number Diff line change 99
1010def get_version (root ):
1111 """
12- Load and return the contents of version.json.
12+ Load and return the contents of version.json. If a DOCKERFLOW_VERSION
13+ env var is set, sets the "version" attribute to the env var value.
1314
1415 :param root: The root path that the ``version.json`` file will be opened
1516 :type root: str
1617 :returns: Content of ``version.json`` or None
1718 :rtype: dict or None
1819 """
1920 version_json = os .path .join (root , "version.json" )
21+ version_env_var = os .getenv ("DOCKERFLOW_VERSION" )
2022 if os .path .exists (version_json ):
2123 with open (version_json , "r" ) as version_json_file :
22- return json .load (version_json_file )
24+ version_info = json .load (version_json_file )
25+ if version_env_var != None :
26+ version_info ["version" ] = version_env_var
27+ return version_info
28+ if version_env_var != None :
29+ return { "version" : version_env_var }
2330 return None
Original file line number Diff line number Diff line change 22# License, v. 2.0. If a copy of the MPL was not distributed with this
33# file, you can obtain one at http://mozilla.org/MPL/2.0/.
44import json
5+ import os
56
67from dockerflow .version import get_version
8+ from unittest import mock
79
810
911def test_get_version (tmpdir ):
@@ -18,3 +20,22 @@ def test_get_version(tmpdir):
1820def test_no_version_json (tmpdir ):
1921 version = get_version (str (tmpdir ))
2022 assert version is None
23+
24+ def test_env_var_override (tmpdir ):
25+ content = {"spam" : "eggs" }
26+ mock .patch .dict (os .environ , { "DOCKERFLOW_VERSION" : "foo" })
27+ version_json = tmpdir .join ("version.json" )
28+ version_json .write (json .dumps (content ))
29+
30+ version = get_version (str (tmpdir ))
31+ assert version == {
32+ "spam" : "eggs" ,
33+ "version" : "foo"
34+ }
35+
36+ def test_env_var_override_with_no_json (tmpdir ):
37+ mock .patch .dict (os .environ , { "DOCKERFLOW_VERSION" : "foo" })
38+ version = get_version (str (tmpdir ))
39+ assert version == {
40+ "version" : "foo"
41+ }
You can’t perform that action at this time.
0 commit comments