]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - main.py
Add acceptance tests
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / main.py
diff --git a/main.py b/main.py
index b68d5408a800ced65e9c29242fabb169e5d481ba..2cfb01dfce5d39cf8d63e64a117ae86b80372a2b 100644 (file)
--- a/main.py
+++ b/main.py
@@ -1,4 +1,3 @@
-from datetime import datetime
 import configargparse
 import psycopg2
 import os
@@ -60,12 +59,15 @@ def make_order(market, value, currency, action="acquire",
     market.report.log_stage("make_order_end")
 
 def get_user_market(config_path, user_id, debug=False):
-    pg_config, report_path = parse_config(config_path)
+    args = ["--config", config_path]
+    if debug:
+        args.append("--debug")
+    args = parse_args(args)
+    pg_config = parse_config(args)
     market_id, market_config, user_id = list(fetch_markets(pg_config, str(user_id)))[0]
-    args = type('Args', (object,), { "debug": debug, "quiet": False })()
     return market.Market.from_config(market_config, args,
             pg_config=pg_config, market_id=market_id,
-            user_id=user_id, report_path=report_path)
+            user_id=user_id)
 
 def fetch_markets(pg_config, user):
     connection = psycopg2.connect(**pg_config)
@@ -167,13 +169,21 @@ def main(argv):
         import threading
         market.Portfolio.start_worker()
 
+        threads = []
         def process_(*args):
-            threading.Thread(target=process, args=args).start()
+            thread = threading.Thread(target=process, args=args)
+            thread.start()
+            threads.append(thread)
     else:
         process_ = process
 
     for market_id, market_config, user_id in fetch_markets(pg_config, args.user):
         process_(market_config, market_id, user_id, args, pg_config)
 
+    if args.parallel:
+        for thread in threads:
+            thread.join()
+        market.Portfolio.stop_worker()
+
 if __name__ == '__main__': # pragma: no cover
     main(sys.argv[1:])