]>
Commit | Line | Data |
---|---|---|
1 | import sys | |
2 | import unittest | |
3 | from decimal import Decimal as D | |
4 | from unittest import mock | |
5 | import requests_mock | |
6 | from io import StringIO | |
7 | import portfolio, market, main, store, dbs | |
8 | import datetime | |
9 | ||
10 | __all__ = ["limits", "unittest", "WebMockTestCase", "mock", "D", | |
11 | "StringIO", "tz"] | |
12 | ||
13 | limits = ["acceptance", "unit"] | |
14 | for test_type in limits: | |
15 | if "--no{}".format(test_type) in sys.argv: | |
16 | sys.argv.remove("--no{}".format(test_type)) | |
17 | limits.remove(test_type) | |
18 | if "--only{}".format(test_type) in sys.argv: | |
19 | sys.argv.remove("--only{}".format(test_type)) | |
20 | limits = [test_type] | |
21 | break | |
22 | ||
23 | def tz(hours): | |
24 | return datetime.timezone(datetime.timedelta(hours=hours)) | |
25 | ||
26 | class WebMockTestCase(unittest.TestCase): | |
27 | import time | |
28 | ||
29 | def market_args(self, debug=False, quiet=False, report_path=None, **kwargs): | |
30 | return main.configargparse.Namespace(report_path=report_path, | |
31 | debug=debug, quiet=quiet, **kwargs) | |
32 | ||
33 | def setUp(self): | |
34 | super().setUp() | |
35 | self.wm = requests_mock.Mocker() | |
36 | self.wm.start() | |
37 | ||
38 | # market | |
39 | self.m = mock.Mock(name="Market", spec=market.Market) | |
40 | self.m.debug = False | |
41 | ||
42 | self.patchers = [ | |
43 | mock.patch.multiple(market.Portfolio, | |
44 | data=store.LockedVar(None), | |
45 | liquidities=store.LockedVar({}), | |
46 | last_date=store.LockedVar(None), | |
47 | report=mock.Mock(), | |
48 | worker=None, | |
49 | worker_tag="", | |
50 | worker_notify=None, | |
51 | worker_started=False, | |
52 | poll_started_at=None, | |
53 | callback=None), | |
54 | mock.patch.multiple(portfolio.Computation, | |
55 | computations=portfolio.Computation.computations), | |
56 | mock.patch.multiple(dbs, | |
57 | redis=None, psql=None) | |
58 | ] | |
59 | for patcher in self.patchers: | |
60 | patcher.start() | |
61 | ||
62 | def tearDown(self): | |
63 | for patcher in self.patchers: | |
64 | patcher.stop() | |
65 | self.wm.stop() | |
66 | super().tearDown() | |
67 |