diff options
Diffstat (limited to 'tests/test_main.py')
-rw-r--r-- | tests/test_main.py | 53 |
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 | ||