Skip to content

Commit

Permalink
Merge pull request #335 from liampauling/release/1.14.11
Browse files Browse the repository at this point in the history
Flaky flaky integration tests fix
  • Loading branch information
liampauling committed Nov 25, 2020
2 parents f785826 + c2b4ba2 commit c466dc6
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 12 deletions.
11 changes: 11 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@
Release History
---------------

1.14.11 (2020-11-25)
+++++++++++++++++++

**Improvements**

- Flaky flaky integration tests

**Bug Fixes**

- Missing 'on_process' function (now subclassed)

1.14.10 (2020-11-25)
+++++++++++++++++++

Expand Down
2 changes: 1 addition & 1 deletion flumine/__version__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
__title__ = "flumine"
__description__ = "Betfair trading framework"
__url__ = "https://github.com/liampauling/flumine"
__version__ = "1.14.10"
__version__ = "1.14.11"
__author__ = "Liam Pauling"
__license__ = "MIT"
8 changes: 3 additions & 5 deletions flumine/streams/historicalstream.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
import logging
import datetime
from betfairlightweight.streaming import StreamListener, HistoricalGeneratorStream
from betfairlightweight.streaming.stream import BaseStream as BFLWBaseStream
from betfairlightweight.streaming.stream import MarketStream
from betfairlightweight.resources.baseresource import BaseResource

from .basestream import BaseStream

logger = logging.getLogger(__name__)


class Stream(BFLWBaseStream):
class FlumineMarketStream(MarketStream):
"""
Custom bflw stream to speed up processing
by limiting to inplay/not inplay or limited
seconds to start.
"""

_lookup = "mc"

def snap(self, market_ids: list = None) -> list:
market_books = []
for cache in list(self._caches.values()):
Expand Down Expand Up @@ -58,7 +56,7 @@ def __init__(self, inplay: bool = None, seconds_to_start: float = None, **kwargs

def _add_stream(self, unique_id, stream_type):
if stream_type == "marketSubscription":
return Stream(self)
return FlumineMarketStream(self)


class HistoricalStream(BaseStream):
Expand Down
2 changes: 2 additions & 0 deletions tests/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ def process_market_book(self, market, market_book):
framework.add_strategy(market_strategy)
framework.run()

self.assertEqual(len(framework.markets), 1)

for market in framework.markets:
limit_orders = [
o for o in market.blotter if o.trade.strategy == limit_strategy
Expand Down
12 changes: 6 additions & 6 deletions tests/test_streams.py
Original file line number Diff line number Diff line change
Expand Up @@ -448,18 +448,18 @@ def test_create_generator(self, mock_generator):
self.assertEqual(generator, mock_generator().get_generator())


class TestStream(unittest.TestCase):
class TestFlumineMarketStream(unittest.TestCase):
def setUp(self) -> None:
self.listener = mock.Mock()
self.stream = historicalstream.Stream(self.listener)
self.stream = historicalstream.FlumineMarketStream(self.listener)

def test_init(self):
self.assertEqual(self.stream._listener, self.listener)
self.assertEqual(self.stream._lookup, "mc")

def test_snap_inplay(self):
# inPlay
self.stream = historicalstream.Stream(
self.stream = historicalstream.FlumineMarketStream(
mock.Mock(inplay=True, seconds_to_start=None)
)
self.stream._caches = {
Expand All @@ -475,7 +475,7 @@ def test_snap_inplay(self):
}
self.assertEqual(len(self.stream.snap()), 1)

self.stream = historicalstream.Stream(
self.stream = historicalstream.FlumineMarketStream(
mock.Mock(inplay=False, seconds_to_start=None)
)
self.stream._caches = {
Expand All @@ -489,7 +489,7 @@ def test_snap_inplay(self):

def test_snap_seconds_to_start(self):
# secondsToStart
self.stream = historicalstream.Stream(
self.stream = historicalstream.FlumineMarketStream(
mock.Mock(inplay=None, seconds_to_start=600)
)
self.stream._caches = {
Expand Down Expand Up @@ -527,7 +527,7 @@ def test_init(self):
self.assertTrue(self.listener.inplay)
self.assertEqual(self.listener.seconds_to_start, 123)

@mock.patch("flumine.streams.historicalstream.Stream")
@mock.patch("flumine.streams.historicalstream.FlumineMarketStream")
def test__add_stream(self, mock_stream):
self.assertEqual(
self.listener._add_stream(123, "marketSubscription"), mock_stream()
Expand Down

0 comments on commit c466dc6

Please sign in to comment.