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 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
8
+ from unittest import mock
7
9
8
10
9
11
def test_get_version (tmpdir ):
@@ -18,3 +20,22 @@ def test_get_version(tmpdir):
18
20
def test_no_version_json (tmpdir ):
19
21
version = get_version (str (tmpdir ))
20
22
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