]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - tests/test_main.py
Store some information to redis
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / tests / test_main.py
index d2f80297b37f6b499289944d723020e889e01be9..b650870ba59729ab9ff55bd78fbb390009cf8259 100644 (file)
@@ -135,16 +135,16 @@ class MainTest(WebMockTestCase):
             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):
@@ -159,7 +159,7 @@ class MainTest(WebMockTestCase):
                 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]]
 
@@ -171,8 +171,8 @@ class MainTest(WebMockTestCase):
 
                 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,\
@@ -187,7 +187,7 @@ class MainTest(WebMockTestCase):
                 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]]
 
@@ -202,9 +202,9 @@ class MainTest(WebMockTestCase):
                 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,\
@@ -219,7 +219,7 @@ class MainTest(WebMockTestCase):
                 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]]
 
@@ -240,7 +240,7 @@ class MainTest(WebMockTestCase):
                 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]]
 
@@ -259,15 +259,39 @@ class MainTest(WebMockTestCase):
                 "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(**{
@@ -276,6 +300,9 @@ class MainTest(WebMockTestCase):
                 "db_user": "user",
                 "db_password": "password",
                 "db_database": "database",
+                "redis_host": "rhost",
+                "redis_port": "rport",
+                "redis_database": "rdb",
                 "report_path": "report_path",
                 })