]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blame - tests/helper.py
Store duration in http requests
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / tests / helper.py
CommitLineData
c682bdf4
IB
1import sys
2import unittest
3from decimal import Decimal as D
4from unittest import mock
5import requests_mock
6from io import StringIO
7import portfolio, market, main, store
8
1d72880c 9__all__ = ["unittest", "WebMockTestCase", "mock", "D",
c682bdf4
IB
10 "StringIO"]
11
c682bdf4
IB
12class WebMockTestCase(unittest.TestCase):
13 import time
14
15 def market_args(self, debug=False, quiet=False, report_path=None, **kwargs):
16 return main.configargparse.Namespace(report_path=report_path,
17 debug=debug, quiet=quiet, **kwargs)
18
19 def setUp(self):
20 super().setUp()
21 self.wm = requests_mock.Mocker()
22 self.wm.start()
23
24 # market
25 self.m = mock.Mock(name="Market", spec=market.Market)
26 self.m.debug = False
27
28 self.patchers = [
29 mock.patch.multiple(market.Portfolio,
30 data=store.LockedVar(None),
31 liquidities=store.LockedVar({}),
32 last_date=store.LockedVar(None),
33 report=mock.Mock(),
34 worker=None,
a0dcf4e0 35 worker_tag="",
c682bdf4
IB
36 worker_notify=None,
37 worker_started=False,
38 callback=None),
39 mock.patch.multiple(portfolio.Computation,
40 computations=portfolio.Computation.computations),
41 ]
42 for patcher in self.patchers:
43 patcher.start()
44
45 def tearDown(self):
46 for patcher in self.patchers:
47 patcher.stop()
48 self.wm.stop()
49 super().tearDown()
50