]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - tests/test_market.py
Fix infinite recursion during fetch
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / tests / test_market.py
index 46fad53aab1344cdc71b35c68f86e60b32d1a85e..02116387a1f4298926c56c911a64b4816517b75e 100644 (file)
@@ -174,7 +174,7 @@ class MarketTest(WebMockTestCase):
                     base_currency='BTC', compute_value='average',
                     available_balance_only=False, liquidity='medium',
                     only=None, repartition=None)
-            m.report.log_balances.assert_called_once_with(tag="tag")
+            m.report.log_balances.assert_called_once_with(tag="tag", checkpoint=None)
 
         compute_trades.reset_mock()
         with self.subTest(available_balance_only=True),\
@@ -890,7 +890,7 @@ class MarketTest(WebMockTestCase):
             process.side_effect = Exception("bouh")
 
             m.process(["some_action"], before=True)
-            log_error.assert_called_with("market_process", exception=mock.ANY)
+            log_error.assert_called_with("market_process", exception=mock.ANY, message=mock.ANY)
             store_report.assert_called_once()
  
 
@@ -964,7 +964,7 @@ class ProcessorTest(WebMockTestCase):
             process_step.reset_mock()
 
             processor.process("sell_needed", steps=["before", "after"])
-            self.assertEqual(3, process_step.call_count)
+            self.assertEqual(4, process_step.call_count)
 
     def test_method_arguments(self):
         ccxt = mock.Mock(spec=market.ccxt.poloniexE)
@@ -1002,17 +1002,17 @@ class ProcessorTest(WebMockTestCase):
         processor = market.Processor(self.m)
 
         with mock.patch.object(processor, "run_action") as run_action:
-            step = processor.scenarios["sell_needed"][1]
+            step = processor.scenarios["sell_needed"][2]
 
             processor.process_step("foo", step, {"foo":"bar"})
 
             self.m.report.log_stage.assert_has_calls([
-                mock.call("process_foo__1_sell_begin"),
-                mock.call("process_foo__1_sell_end"),
+                mock.call("process_foo__2_sell_begin"),
+                mock.call("process_foo__2_sell_end"),
                 ])
             self.m.balances.fetch_balances.assert_has_calls([
-                mock.call(tag="process_foo__1_sell_begin", log_tickers=True),
-                mock.call(tag="process_foo__1_sell_end", log_tickers=True),
+                mock.call(tag="process_foo__2_sell_begin"),
+                mock.call(tag="process_foo__2_sell_end"),
                 ])
 
             self.assertEqual(5, run_action.call_count)
@@ -1029,6 +1029,24 @@ class ProcessorTest(WebMockTestCase):
         with mock.patch.object(processor, "run_action") as run_action:
             step = processor.scenarios["sell_needed"][0]
 
+            processor.process_step("foo", step, {"foo":"bar"})
+
+            self.m.report.log_stage.assert_has_calls([
+                mock.call("process_foo__0_print_balances_begin"),
+                mock.call("process_foo__0_print_balances_end"),
+                ])
+            self.m.balances.fetch_balances.assert_has_calls([
+                mock.call(add_portfolio=True, checkpoint='end',
+                    log_tickers=True,
+                    tag='process_foo__0_print_balances_begin')
+                ])
+
+            self.assertEqual(0, run_action.call_count)
+
+        self.m.reset_mock()
+        with mock.patch.object(processor, "run_action") as run_action:
+            step = processor.scenarios["sell_needed"][1]
+
             processor.process_step("foo", step, {"foo":"bar"})
             self.m.balances.fetch_balances.assert_not_called()