File tree Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Original file line number Diff line number Diff line change 9
9
10
10
def get_version (root ):
11
11
"""
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.
13
14
14
15
:param root: The root path that the ``version.json`` file will be opened
15
16
:type root: str
16
17
:returns: Content of ``version.json`` or None
17
18
:rtype: dict or None
18
19
"""
19
20
version_json = os .path .join (root , "version.json" )
21
+ version_env_var = os .getenv ("DOCKERFLOW_VERSION" )
20
22
if os .path .exists (version_json ):
21
23
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 }
23
30
return None
Original file line number Diff line number Diff line change 2
2
# License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
# file, you can obtain one at http://mozilla.org/MPL/2.0/.
4
4
import json
5
+ import os
5
6
6
7
from dockerflow .version import get_version
7
8
@@ -18,3 +19,22 @@ def test_get_version(tmpdir):
18
19
def test_no_version_json (tmpdir ):
19
20
version = get_version (str (tmpdir ))
20
21
assert version is None
22
+
23
+ def test_env_var_override (tmpdir , mocker ):
24
+ content = {"spam" : "eggs" }
25
+ mocker .patch .dict (os .environ , { "DOCKERFLOW_VERSION" : "foo" })
26
+ version_json = tmpdir .join ("version.json" )
27
+ version_json .write (json .dumps (content ))
28
+
29
+ version = get_version (str (tmpdir ))
30
+ assert version == {
31
+ "spam" : "eggs" ,
32
+ "version" : "foo"
33
+ }
34
+
35
+ def test_env_var_override_with_no_json (tmpdir , mocker ):
36
+ mocker .patch .dict (os .environ , { "DOCKERFLOW_VERSION" : "foo" })
37
+ version = get_version (str (tmpdir ))
38
+ assert version == {
39
+ "version" : "foo"
40
+ }
You can’t perform that action at this time.
0 commit comments