mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-17 11:25:55 +08:00
exceptions tests passing
This commit is contained in:
@@ -52,18 +52,14 @@ class ExceptionTestCase(TestCase):
|
||||
**self.zipline_test_config
|
||||
)
|
||||
output, _ = drain_zipline(self, zipline)
|
||||
self.assertEqual(len(output), 1)
|
||||
self.assertEqual(len(output), 2)
|
||||
self.assertEqual(output[-1]['prefix'], 'EXCEPTION')
|
||||
payload = output[-1]['payload']
|
||||
self.assertTrue(payload['date'])
|
||||
del payload['date']
|
||||
check(self, payload, INITIALIZE_TB)
|
||||
self.assertTrue(zipline.sim.ready())
|
||||
self.assertFalse(zipline.sim.exception)
|
||||
|
||||
|
||||
def test_exception_in_handle_data(self):
|
||||
|
||||
# Simulation
|
||||
# ----------
|
||||
self.zipline_test_config['algorithm'] = \
|
||||
@@ -77,15 +73,12 @@ class ExceptionTestCase(TestCase):
|
||||
)
|
||||
|
||||
output, _ = drain_zipline(self, zipline)
|
||||
|
||||
self.assertEqual(len(output), 1)
|
||||
self.assertEqual(len(output), 3)
|
||||
self.assertEqual(output[-1]['prefix'], 'EXCEPTION')
|
||||
payload = output[-1]['payload']
|
||||
self.assertTrue(payload['date'])
|
||||
del payload['date']
|
||||
check(self, payload, HANDLE_DATA_TB)
|
||||
self.assertTrue(zipline.sim.ready())
|
||||
self.assertFalse(zipline.sim.exception)
|
||||
|
||||
def test_zerodivision_exception_in_handle_data(self):
|
||||
|
||||
@@ -101,14 +94,12 @@ class ExceptionTestCase(TestCase):
|
||||
)
|
||||
|
||||
output, _ = drain_zipline(self, zipline)
|
||||
self.assertEqual(len(output), 5)
|
||||
self.assertEqual(len(output), 6)
|
||||
self.assertEqual(output[-1]['prefix'], 'EXCEPTION')
|
||||
payload = output[-1]['payload']
|
||||
self.assertTrue(payload['date'])
|
||||
del payload['date']
|
||||
check(self, payload, ZERO_DIV_TB)
|
||||
self.assertTrue(zipline.sim.ready())
|
||||
self.assertFalse(zipline.sim.exception)
|
||||
|
||||
# TODO:
|
||||
# - define more zipline failure modes: exception in other
|
||||
@@ -120,21 +111,12 @@ class ExceptionTestCase(TestCase):
|
||||
INITIALIZE_TB =\
|
||||
{'message': 'Algo exception in initialize',
|
||||
'name': 'Exception',
|
||||
'stack': [{'filename': '/zipline/core/component.py', 'line': 'self._run()', 'lineno': 210, 'method': 'run'},
|
||||
{'filename': '/zipline/core/component.py', 'line': 'self.loop()', 'lineno': 201, 'method': '_run'},
|
||||
{'filename': '/zipline/core/component.py', 'line': 'self.do_work()', 'lineno': 241, 'method': 'loop'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.initialize_algo()',
|
||||
'lineno': 91,
|
||||
'method': 'do_work'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.do_op(self.algorithm.initialize)',
|
||||
'lineno': 74,
|
||||
'method': 'initialize_algo'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'callable_op(*args, **kwargs)',
|
||||
'lineno': 194,
|
||||
'method': 'do_op'},
|
||||
'stack': [{'filename': '/zipline/lines.py', 'line': 'for event in self.gen:', 'lineno': 152, 'method': 'stream_results'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py', 'line': 'self.algo,', 'lineno': 93, 'method': 'simulate'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'self.algo.initialize()',
|
||||
'lineno': 123,
|
||||
'method': '__init__'},
|
||||
{'filename': '/zipline/test_algorithms.py',
|
||||
'line': 'raise Exception("Algo exception in initialize")',
|
||||
'lineno': 166,
|
||||
@@ -143,25 +125,27 @@ INITIALIZE_TB =\
|
||||
HANDLE_DATA_TB =\
|
||||
{'message': 'Algo exception in handle_data',
|
||||
'name': 'Exception',
|
||||
'stack': [{'filename': '/zipline/core/component.py', 'line': 'self._run()', 'lineno': 210, 'method': 'run'},
|
||||
{'filename': '/zipline/core/component.py', 'line': 'self.loop()', 'lineno': 201, 'method': '_run'},
|
||||
{'filename': '/zipline/core/component.py', 'line': 'self.do_work()', 'lineno': 241, 'method': 'loop'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.process_event(event)',
|
||||
'lineno': 110,
|
||||
'method': 'do_work'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.run_algorithm()',
|
||||
'lineno': 158,
|
||||
'method': 'process_event'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.do_op(self.algorithm.handle_data, data)',
|
||||
'lineno': 180,
|
||||
'method': 'run_algorithm'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'callable_op(*args, **kwargs)',
|
||||
'lineno': 194,
|
||||
'method': 'do_op'},
|
||||
'stack': [{'filename': '/zipline/lines.py', 'line': 'for event in self.gen:', 'lineno': 152, 'method': 'stream_results'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'for message in algo_results:',
|
||||
'lineno': 100,
|
||||
'method': 'simulate'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'return self.__generator.next()',
|
||||
'lineno': 144,
|
||||
'method': 'next'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'self.update_current_snapshot(event)',
|
||||
'lineno': 199,
|
||||
'method': '_gen'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'self.simulate_current_snapshot()',
|
||||
'lineno': 221,
|
||||
'method': 'update_current_snapshot'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'self.algo.handle_data(self.universe)',
|
||||
'lineno': 246,
|
||||
'method': 'simulate_current_snapshot'},
|
||||
{'filename': '/zipline/test_algorithms.py',
|
||||
'line': 'raise Exception("Algo exception in handle_data")',
|
||||
'lineno': 187,
|
||||
@@ -170,23 +154,25 @@ HANDLE_DATA_TB =\
|
||||
ZERO_DIV_TB= \
|
||||
{'message': 'integer division or modulo by zero',
|
||||
'name': 'ZeroDivisionError',
|
||||
'stack': [{'filename': '/zipline/core/component.py', 'line': 'self._run()', 'lineno': 210, 'method': 'run'},
|
||||
{'filename': '/zipline/core/component.py', 'line': 'self.loop()', 'lineno': 201, 'method': '_run'},
|
||||
{'filename': '/zipline/core/component.py', 'line': 'self.do_work()', 'lineno': 241, 'method': 'loop'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.process_event(event)',
|
||||
'lineno': 110,
|
||||
'method': 'do_work'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.run_algorithm()',
|
||||
'lineno': 158,
|
||||
'method': 'process_event'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'self.do_op(self.algorithm.handle_data, data)',
|
||||
'lineno': 180,
|
||||
'method': 'run_algorithm'},
|
||||
{'filename': '/zipline/components/tradesimulation.py',
|
||||
'line': 'callable_op(*args, **kwargs)',
|
||||
'lineno': 194,
|
||||
'method': 'do_op'},
|
||||
'stack': [{'filename': '/zipline/lines.py', 'line': 'for event in self.gen:', 'lineno': 152, 'method': 'stream_results'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'for message in algo_results:',
|
||||
'lineno': 100,
|
||||
'method': 'simulate'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'return self.__generator.next()',
|
||||
'lineno': 144,
|
||||
'method': 'next'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'self.update_current_snapshot(event)',
|
||||
'lineno': 199,
|
||||
'method': '_gen'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'self.simulate_current_snapshot()',
|
||||
'lineno': 221,
|
||||
'method': 'update_current_snapshot'},
|
||||
{'filename': '/zipline/gens/tradesimulation.py',
|
||||
'line': 'self.algo.handle_data(self.universe)',
|
||||
'lineno': 246,
|
||||
'method': 'simulate_current_snapshot'},
|
||||
{'filename': '/zipline/test_algorithms.py', 'line': '5/0', 'lineno': 218, 'method': 'handle_data'}]}
|
||||
|
||||
Reference in New Issue
Block a user