X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2Fhelper.py;fp=tests%2Fhelper.py;h=4cf1b41d7d1c5426090ba0938bd19f902d384fff;hb=c682bdf4a02a45312ef1aadf8aa26136cf308414;hp=0000000000000000000000000000000000000000;hpb=e6015816224f8f405e9b1c9557f22e73b21246e8;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/tests/helper.py b/tests/helper.py new file mode 100644 index 0000000..4cf1b41 --- /dev/null +++ b/tests/helper.py @@ -0,0 +1,59 @@ +import sys +import unittest +from decimal import Decimal as D +from unittest import mock +import requests_mock +from io import StringIO +import portfolio, market, main, store + +__all__ = ["limits", "unittest", "WebMockTestCase", "mock", "D", + "StringIO"] + +limits = ["acceptance", "unit"] +for test_type in limits: + if "--no{}".format(test_type) in sys.argv: + sys.argv.remove("--no{}".format(test_type)) + limits.remove(test_type) + if "--only{}".format(test_type) in sys.argv: + sys.argv.remove("--only{}".format(test_type)) + limits = [test_type] + break + +class WebMockTestCase(unittest.TestCase): + import time + + def market_args(self, debug=False, quiet=False, report_path=None, **kwargs): + return main.configargparse.Namespace(report_path=report_path, + debug=debug, quiet=quiet, **kwargs) + + def setUp(self): + super().setUp() + self.wm = requests_mock.Mocker() + self.wm.start() + + # market + self.m = mock.Mock(name="Market", spec=market.Market) + self.m.debug = False + + self.patchers = [ + mock.patch.multiple(market.Portfolio, + data=store.LockedVar(None), + liquidities=store.LockedVar({}), + last_date=store.LockedVar(None), + report=mock.Mock(), + worker=None, + worker_notify=None, + worker_started=False, + callback=None), + mock.patch.multiple(portfolio.Computation, + computations=portfolio.Computation.computations), + ] + for patcher in self.patchers: + patcher.start() + + def tearDown(self): + for patcher in self.patchers: + patcher.stop() + self.wm.stop() + super().tearDown() +