11"""test docker run."""
22
33import time
4- from unittest .mock import patch
4+ from unittest .mock import Mock , patch
55
66import pytest
77
8- from nhp .docker import config
98from nhp .docker .__main__ import main , parse_args
109
1110
@@ -93,6 +92,12 @@ def test_main_azure(mocker):
9392 rwls = mocker .patch ("nhp.docker.__main__.RunWithLocalStorage" )
9493 rwas = mocker .patch ("nhp.docker.__main__.RunWithAzureStorage" )
9594
95+ config = Mock ()
96+ config .APP_VERSION = "dev"
97+ config .DATA_VERSION = "dev"
98+ config .CONTAINER_TIMEOUT_SECONDS = 3600
99+ config .STORAGE_ACCOUNT = "sa"
100+
96101 params = {
97102 "model_runs" : 256 ,
98103 "start_year" : 2019 ,
@@ -108,11 +113,11 @@ def test_main_azure(mocker):
108113 )
109114
110115 # act
111- main ()
116+ main (config )
112117
113118 # assert
114119 rwls .assert_not_called ()
115- rwas .assert_called_once_with ("params.json" , "dev" )
120+ rwas .assert_called_once_with ("params.json" , config )
116121
117122 s = rwas ()
118123 ru_m .assert_called_once_with (params , "data" , s .progress_callback (), False )
@@ -121,6 +126,9 @@ def test_main_azure(mocker):
121126
122127def test_init (mocker ):
123128 """It should run the main method if __name__ is __main__."""
129+ config = mocker .patch ("nhp.docker.__main__.Config" )
130+ config ().CONTAINER_TIMEOUT_SECONDS = 3600
131+
124132 import nhp .docker .__main__ as r
125133
126134 main_mock = mocker .patch ("nhp.docker.__main__.main" )
@@ -130,31 +138,33 @@ def test_init(mocker):
130138
131139 with patch .object (r , "__name__" , "__main__" ):
132140 r .init () # should call main
133- main_mock .assert_called_once ( )
141+ main_mock .assert_called_once_with ( config () )
134142
135143
136144def test_init_timeout_call_exit (mocker ):
137- config .CONTAINER_TIMEOUT_SECONDS = 0.1
145+ config = mocker .patch ("nhp.docker.__main__.Config" )
146+ config ().CONTAINER_TIMEOUT_SECONDS = 0.1
138147
139148 import nhp .docker .__main__ as r
140149
141150 main_mock = mocker .patch ("nhp.docker.__main__.main" )
142151 exit_container_mock = mocker .patch ("nhp.docker.__main__._exit_container" )
143- main_mock .side_effect = lambda : time .sleep (0.2 )
152+ main_mock .side_effect = lambda * args , ** kwargs : time .sleep (0.2 )
144153 with patch .object (r , "__name__" , "__main__" ):
145154 r .init ()
146155
147156 exit_container_mock .assert_called_once ()
148157
149158
150159def test_init_timeout_dont_call_exit (mocker ):
151- config .CONTAINER_TIMEOUT_SECONDS = 0.1
152-
153160 import nhp .docker .__main__ as r
154161
162+ config = mocker .patch ("nhp.docker.__main__.Config" )
163+ config ().CONTAINER_TIMEOUT_SECONDS = 0.1
164+
155165 main_mock = mocker .patch ("nhp.docker.__main__.main" )
156166 exit_container_mock = mocker .patch ("nhp.docker.__main__._exit_container" )
157- main_mock .side_effect = lambda : time .sleep (0.02 )
167+ main_mock .side_effect = lambda * args , ** kwargs : time .sleep (0.02 )
158168 with patch .object (r , "__name__" , "__main__" ):
159169 r .init ()
160170
0 commit comments