コード例 #1
0
class MarketStreamTest(unittest.TestCase):
    def setUp(self):
        self.output_queue = mock.Mock()
        self.unique_id = 1
        self.max_latency = 1.5
        self.stream = MarketStream(self.unique_id, self.output_queue,
                                   self.max_latency, False)

    @mock.patch('betfairlightweight.streaming.stream.MarketStream._process')
    @mock.patch('betfairlightweight.streaming.stream.MarketStream._update_clk')
    def test_on_subscribe(self, mock_update_clk, mock_process):
        self.stream.on_subscribe({})
        mock_update_clk.assert_called_once_with({})

        self.stream.on_subscribe({'mc': {123}})
        mock_process.assert_called_once_with({123}, None)

    @mock.patch('betfairlightweight.streaming.stream.MarketBookCache')
    def test_process(self, mock_market_book_cache):
        now = mock.Mock()
        market_books = [mock.Mock()]
        self.stream._caches = mock.Mock()
        # self.stream._process(market_books, now)

    def test_str(self):
        assert str(self.stream) == 'MarketStream'

    def test_repr(self):
        assert repr(self.stream) == '<MarketStream [0]>'
コード例 #2
0
class MarketStreamTest(unittest.TestCase):
    def setUp(self):
        self.listener = mock.Mock()
        self.stream = MarketStream(self.listener)

    def test_init(self):
        assert self.stream._lookup == "mc"
        assert self.stream._name == "MarketStream"

    @mock.patch("betfairlightweight.streaming.stream.MarketStream._process")
    @mock.patch("betfairlightweight.streaming.stream.MarketStream._update_clk")
    def test_on_subscribe(self, mock_update_clk, mock_process):
        self.stream.on_subscribe({})
        mock_update_clk.assert_called_once_with({})
        self.stream.on_subscribe({"mc": {123}})
        mock_process.assert_called_once_with({123}, None)

    @mock.patch("betfairlightweight.streaming.stream.MarketBookCache")
    @mock.patch("betfairlightweight.streaming.stream.MarketStream.on_process")
    def test_process(self, mock_on_process, mock_cache):
        sub_image = create_mock_json(
            "tests/resources/streaming_mcm_SUB_IMAGE.json")
        data = sub_image.json()["mc"]
        self.assertTrue(self.stream._process(data, 123))
        self.assertEqual(len(self.stream), len(data))
        mock_on_process.assert_called_with([mock_cache()])

    @mock.patch("betfairlightweight.streaming.stream.MarketBookCache")
    @mock.patch("betfairlightweight.streaming.stream.MarketStream.on_process")
    def test_process_no_market_definition(self, mock_on_process, mock_cache):
        sub_image_error = create_mock_json(
            "tests/resources/streaming_mcm_SUB_IMAGE_no_market_def.json")
        data = sub_image_error.json()["mc"]
        self.assertTrue(self.stream._process(data, 123))
        self.assertEqual(len(data), 137)
        self.assertEqual(len(self.stream),
                         135)  # two markets missing marketDef

    @mock.patch("betfairlightweight.streaming.stream.MarketBookCache")
    @mock.patch("betfairlightweight.streaming.stream.MarketStream.on_process")
    def test_process_no_img(self, mock_on_process, mock_cache):
        sub_image = create_mock_json(
            "tests/resources/streaming_mcm_SUB_IMAGE.json")
        data = sub_image.json()["mc"]
        data[0]["img"] = False
        mock_market_cache = mock_cache()
        self.stream._caches = {data[0]["id"]: mock_market_cache}
        self.assertFalse(self.stream._process(data, 123))
        self.assertEqual(len(self.stream), len(data))
        mock_market_cache.update_cache.assert_called_with(data[0], 123)

    def test_str(self):
        assert str(self.stream) == "MarketStream"

    def test_repr(self):
        assert repr(self.stream) == "<MarketStream [0]>"
コード例 #3
0
class MarketStreamTest(unittest.TestCase):
    def setUp(self):
        self.listener = mock.Mock()
        self.stream = MarketStream(self.listener)

    @mock.patch('betfairlightweight.streaming.stream.MarketStream._process')
    @mock.patch('betfairlightweight.streaming.stream.MarketStream._update_clk')
    def test_on_subscribe(self, mock_update_clk, mock_process):
        self.stream.on_subscribe({})
        mock_update_clk.assert_called_once_with({})

        self.stream.on_subscribe({'mc': {123}})
        mock_process.assert_called_once_with({123}, None)

    @mock.patch('betfairlightweight.streaming.stream.MarketStream._process')
    @mock.patch('betfairlightweight.streaming.stream.MarketStream._update_clk')
    def test_on_subscribe(self, mock_update_clk, mock_process):
        self.stream.on_subscribe({})
        mock_update_clk.assert_called_once_with({})

        self.stream.on_subscribe({'mc': {123}})
        mock_process.assert_called_once_with({123}, None)

    # @mock.patch('betfairlightweight.streaming.stream.MarketBookCache')
    # def test_process(self, mock_market_book_cache):
    #     now = mock.Mock()
    #     market_books = [mock.Mock()]
    #     self.stream._caches = mock.Mock()
    #     # self.stream._process(market_books, now)

    def test_str(self):
        assert str(self.stream) == 'MarketStream'

    def test_repr(self):
        assert repr(self.stream) == '<MarketStream [0]>'