args_mock.after = "after"
self.assertEqual("", stdout_mock.getvalue())
- main.process("config", 3, 1, args_mock, "pg_config")
+ main.process("config", 3, 1, args_mock, "pg_config", "redis_config")
market_mock.from_config.assert_has_calls([
- mock.call("config", args_mock, pg_config="pg_config", market_id=3, user_id=1),
+ mock.call("config", args_mock, pg_config="pg_config", redis_config="redis_config", market_id=3, user_id=1),
mock.call().process("action", before="before", after="after"),
])
with self.subTest(exception=True):
market_mock.from_config.side_effect = Exception("boo")
- main.process(3, "config", 1, args_mock, "pg_config")
+ main.process(3, "config", 1, args_mock, "pg_config", "redis_config")
self.assertEqual("Exception: boo\n", stdout_mock.getvalue())
def test_main(self):
args_mock.user = "user"
parse_args.return_value = args_mock
- parse_config.return_value = "pg_config"
+ parse_config.return_value = ["pg_config", "redis_config"]
fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
self.assertEqual(2, process.call_count)
process.assert_has_calls([
- mock.call("config1", 3, 1, args_mock, "pg_config"),
- mock.call("config2", 1, 2, args_mock, "pg_config"),
+ mock.call("config1", 3, 1, args_mock, "pg_config", "redis_config"),
+ mock.call("config2", 1, 2, args_mock, "pg_config", "redis_config"),
])
with self.subTest(parallel=True):
with mock.patch("main.parse_args") as parse_args,\
mock.patch("main.parse_config") as parse_config,\
mock.patch("main.fetch_markets") as fetch_markets,\
mock.patch("main.process") as process,\
- mock.patch("store.Portfolio.start_worker") as start:
+ mock.patch("store.Portfolio.start_worker") as start,\
+ mock.patch("store.Portfolio.stop_worker") as stop:
args_mock = mock.Mock()
args_mock.parallel = True
args_mock.user = "user"
parse_args.return_value = args_mock
- parse_config.return_value = "pg_config"
+ parse_config.return_value = ["pg_config", "redis_config"]
fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
parse_config.assert_called_with(args_mock)
fetch_markets.assert_called_with("pg_config", "user")
+ stop.assert_called_once_with()
start.assert_called_once_with()
self.assertEqual(2, process.call_count)
process.assert_has_calls([
mock.call.__bool__(),
- mock.call("config1", 3, 1, args_mock, "pg_config"),
+ mock.call("config1", 3, 1, args_mock, "pg_config", "redis_config"),
mock.call.__bool__(),
- mock.call("config2", 1, 2, args_mock, "pg_config"),
+ mock.call("config2", 1, 2, args_mock, "pg_config", "redis_config"),
])
+ with self.subTest(quiet=True):
+ with mock.patch("main.parse_args") as parse_args,\
+ mock.patch("main.parse_config") as parse_config,\
+ mock.patch("main.fetch_markets") as fetch_markets,\
+ mock.patch("store.Portfolio.report") as report,\
+ mock.patch("main.process") as process:
+
+ args_mock = mock.Mock()
+ args_mock.parallel = False
+ args_mock.quiet = True
+ args_mock.user = "user"
+ parse_args.return_value = args_mock
+
+ parse_config.return_value = ["pg_config", "redis_config"]
+
+ fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
+
+ main.main(["Foo", "Bar"])
+
+ report.set_verbose.assert_called_once_with(False)
+
+ with self.subTest(quiet=False):
+ with mock.patch("main.parse_args") as parse_args,\
+ mock.patch("main.parse_config") as parse_config,\
+ mock.patch("main.fetch_markets") as fetch_markets,\
+ mock.patch("store.Portfolio.report") as report,\
+ mock.patch("main.process") as process:
+
+ args_mock = mock.Mock()
+ args_mock.parallel = False
+ args_mock.quiet = False
+ args_mock.user = "user"
+ parse_args.return_value = args_mock
+
+ parse_config.return_value = ["pg_config", "redis_config"]
+
+ fetch_markets.return_value = [[3, "config1", 1], [1, "config2", 2]]
+
+ main.main(["Foo", "Bar"])
+
+ report.set_verbose.assert_called_once_with(True)
+
@mock.patch.object(main.sys, "exit")
@mock.patch("main.os")
"db_user": "user",
"db_password": "password",
"db_database": "database",
+ "redis_host": "rhost",
+ "redis_port": "rport",
+ "redis_database": "rdb",
"report_path": None,
})
- result = main.parse_config(args)
+ db_config, redis_config = main.parse_config(args)
self.assertEqual({ "host": "host", "port": "port", "user":
"user", "password": "password", "database": "database"
- }, result)
+ }, db_config)
+ self.assertEqual({ "host": "rhost", "port": "rport", "db":
+ "rdb"}, redis_config)
+
with self.assertRaises(AttributeError):
args.db_password
+ with self.assertRaises(AttributeError):
+ args.redis_host
+
+ with self.subTest(redis_host="socket"):
+ args = main.configargparse.Namespace(**{
+ "db_host": "host",
+ "db_port": "port",
+ "db_user": "user",
+ "db_password": "password",
+ "db_database": "database",
+ "redis_host": "/run/foo",
+ "redis_port": "rport",
+ "redis_database": "rdb",
+ "report_path": None,
+ })
+
+ db_config, redis_config = main.parse_config(args)
+ self.assertEqual({ "unix_socket_path": "/run/foo", "db": "rdb"}, redis_config)
with self.subTest(report_path="present"):
args = main.configargparse.Namespace(**{
"db_user": "user",
"db_password": "password",
"db_database": "database",
+ "redis_host": "rhost",
+ "redis_port": "rport",
+ "redis_database": "rdb",
"report_path": "report_path",
})