aboutsummaryrefslogtreecommitdiff
path: root/tests/test_main.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_main.py')
-rw-r--r--tests/test_main.py53
1 files changed, 40 insertions, 13 deletions
diff --git a/tests/test_main.py b/tests/test_main.py
index d2f8029..b650870 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -135,16 +135,16 @@ class MainTest(WebMockTestCase):
135 args_mock.after = "after" 135 args_mock.after = "after"
136 self.assertEqual("", stdout_mock.getvalue()) 136 self.assertEqual("", stdout_mock.getvalue())
137 137
138 main.process("config", 3, 1, args_mock, "pg_config") 138 main.process("config", 3, 1, args_mock, "pg_config", "redis_config")
139 139
140 market_mock.from_config.assert_has_calls([ 140 market_mock.from_config.assert_has_calls([
141 mock.call("config", args_mock, pg_config="pg_config", market_id=3, user_id=1), 141 mock.call("config", args_mock, pg_config="pg_config", redis_config="redis_config", market_id=3, user_id=1),
142 mock.call().process("action", before="before", after="after"), 142 mock.call().process("action", before="before", after="after"),
143 ]) 143 ])
144 144
145 with self.subTest(exception=True): 145 with self.subTest(exception=True):
146 market_mock.from_config.side_effect = Exception("boo") 146 market_mock.from_config.side_effect = Exception("boo")
147 main.process(3, "config", 1, args_mock, "pg_config") 147 main.process(3, "config", 1, args_mock, "pg_config", "redis_config")
148 self.assertEqual("Exception: boo\n", stdout_mock.getvalue()) 148 self.assertEqual("Exception: boo\n", stdout_mock.getvalue())
149 149
150 def test_main(self): 150 def test_main(self):
@@ -159,7 +159,7 @@ class MainTest(WebMockTestCase):
159 args_mock.user = "user" 159 args_mock.user = "user"
160 parse_args.return_value = args_mock 160 parse_args.return_value = args_mock
161 161
162 parse_config.return_value = "pg_config" 162 parse_config.return_value = ["pg_config", "redis_config"]
163 163
164 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]] 164 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
165 165
@@ -171,8 +171,8 @@ class MainTest(WebMockTestCase):
171 171
172 self.assertEqual(2, process.call_count) 172 self.assertEqual(2, process.call_count)
173 process.assert_has_calls([ 173 process.assert_has_calls([
174 mock.call("config1", 3, 1, args_mock, "pg_config"), 174 mock.call("config1", 3, 1, args_mock, "pg_config", "redis_config"),
175 mock.call("config2", 1, 2, args_mock, "pg_config"), 175 mock.call("config2", 1, 2, args_mock, "pg_config", "redis_config"),
176 ]) 176 ])
177 with self.subTest(parallel=True): 177 with self.subTest(parallel=True):
178 with mock.patch("main.parse_args") as parse_args,\ 178 with mock.patch("main.parse_args") as parse_args,\
@@ -187,7 +187,7 @@ class MainTest(WebMockTestCase):
187 args_mock.user = "user" 187 args_mock.user = "user"
188 parse_args.return_value = args_mock 188 parse_args.return_value = args_mock
189 189
190 parse_config.return_value = "pg_config" 190 parse_config.return_value = ["pg_config", "redis_config"]
191 191
192 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]] 192 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
193 193
@@ -202,9 +202,9 @@ class MainTest(WebMockTestCase):
202 self.assertEqual(2, process.call_count) 202 self.assertEqual(2, process.call_count)
203 process.assert_has_calls([ 203 process.assert_has_calls([
204 mock.call.__bool__(), 204 mock.call.__bool__(),
205 mock.call("config1", 3, 1, args_mock, "pg_config"), 205 mock.call("config1", 3, 1, args_mock, "pg_config", "redis_config"),
206 mock.call.__bool__(), 206 mock.call.__bool__(),
207 mock.call("config2", 1, 2, args_mock, "pg_config"), 207 mock.call("config2", 1, 2, args_mock, "pg_config", "redis_config"),
208 ]) 208 ])
209 with self.subTest(quiet=True): 209 with self.subTest(quiet=True):
210 with mock.patch("main.parse_args") as parse_args,\ 210 with mock.patch("main.parse_args") as parse_args,\
@@ -219,7 +219,7 @@ class MainTest(WebMockTestCase):
219 args_mock.user = "user" 219 args_mock.user = "user"
220 parse_args.return_value = args_mock 220 parse_args.return_value = args_mock
221 221
222 parse_config.return_value = "pg_config" 222 parse_config.return_value = ["pg_config", "redis_config"]
223 223
224 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]] 224 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
225 225
@@ -240,7 +240,7 @@ class MainTest(WebMockTestCase):
240 args_mock.user = "user" 240 args_mock.user = "user"
241 parse_args.return_value = args_mock 241 parse_args.return_value = args_mock
242 242
243 parse_config.return_value = "pg_config" 243 parse_config.return_value = ["pg_config", "redis_config"]
244 244
245 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]] 245 fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
246 246
@@ -259,15 +259,39 @@ class MainTest(WebMockTestCase):
259 "db_user": "user", 259 "db_user": "user",
260 "db_password": "password", 260 "db_password": "password",
261 "db_database": "database", 261 "db_database": "database",
262 "redis_host": "rhost",
263 "redis_port": "rport",
264 "redis_database": "rdb",
262 "report_path": None, 265 "report_path": None,
263 }) 266 })
264 267
265 result = main.parse_config(args) 268 db_config, redis_config = main.parse_config(args)
266 self.assertEqual({ "host": "host", "port": "port", "user": 269 self.assertEqual({ "host": "host", "port": "port", "user":
267 "user", "password": "password", "database": "database" 270 "user", "password": "password", "database": "database"
268 }, result) 271 }, db_config)
272 self.assertEqual({ "host": "rhost", "port": "rport", "db":
273 "rdb"}, redis_config)
274
269 with self.assertRaises(AttributeError): 275 with self.assertRaises(AttributeError):
270 args.db_password 276 args.db_password
277 with self.assertRaises(AttributeError):
278 args.redis_host
279
280 with self.subTest(redis_host="socket"):
281 args = main.configargparse.Namespace(**{
282 "db_host": "host",
283 "db_port": "port",
284 "db_user": "user",
285 "db_password": "password",
286 "db_database": "database",
287 "redis_host": "/run/foo",
288 "redis_port": "rport",
289 "redis_database": "rdb",
290 "report_path": None,
291 })
292
293 db_config, redis_config = main.parse_config(args)
294 self.assertEqual({ "unix_socket_path": "/run/foo", "db": "rdb"}, redis_config)
271 295
272 with self.subTest(report_path="present"): 296 with self.subTest(report_path="present"):
273 args = main.configargparse.Namespace(**{ 297 args = main.configargparse.Namespace(**{
@@ -276,6 +300,9 @@ class MainTest(WebMockTestCase):
276 "db_user": "user", 300 "db_user": "user",
277 "db_password": "password", 301 "db_password": "password",
278 "db_database": "database", 302 "db_database": "database",
303 "redis_host": "rhost",
304 "redis_port": "rport",
305 "redis_database": "rdb",
279 "report_path": "report_path", 306 "report_path": "report_path",
280 }) 307 })
281 308