Exemple #1
0
    def test__fetch_from_upbit_should_call__fetch_from_upbit_up_to_200(self, mock_to_end_min):
        start = "2020-03-20T00:00:00"
        end = "2020-03-21T00:00:00"
        repo = DataRepository()
        repo._query = MagicMock(side_effect=[["mango"], ["apple"], ["orange"]])
        repo._is_equal = MagicMock()
        repo._update = MagicMock()
        repo.verify_mode = False
        repo._fetch_from_upbit_up_to_200 = MagicMock(side_effect=[["kiwi"]])
        mock_to_end_min.return_value = [
            ("2020-03-20T00:00:00", "2020-03-21T00:10:00", 1),
            ("2020-03-20T00:10:00", "2020-03-21T00:20:00", 1),
            ("2020-03-20T00:20:00", "2020-03-21T00:30:00", 2),
        ]
        repo._recovery_upbit_data = MagicMock(side_effect=[["orange"]])
        result = repo._fetch_from_upbit(start, end, "mango_market")

        mock_to_end_min.assert_called_once_with(start_iso=start, end_iso=end, max_count=200)
        self.assertEqual(repo._query.call_args_list[0][0][0], "2020-03-20T00:00:00")
        self.assertEqual(repo._query.call_args_list[1][0][0], "2020-03-20T00:10:00")
        self.assertEqual(repo._query.call_args_list[2][0][0], "2020-03-20T00:20:00")
        self.assertEqual(repo._query.call_args_list[0][0][1], "2020-03-21T00:10:00")
        self.assertEqual(repo._query.call_args_list[1][0][1], "2020-03-21T00:20:00")
        self.assertEqual(repo._query.call_args_list[2][0][1], "2020-03-21T00:30:00")
        repo._fetch_from_upbit_up_to_200.assert_called_once_with(
            "2020-03-21T00:30:00", 2, "mango_market"
        )
        repo._update.assert_called_once_with(["orange"])
        self.assertEqual(result, ["mango", "apple", "orange"])
        repo._recovery_upbit_data.assert_called_once_with(
            ["kiwi"], "2020-03-20T00:20:00", 2, "mango_market"
        )
Exemple #2
0
    def test_get_data_should_return_data_when_database_data_not_enough(self, mock_to_end_min):
        repo = DataRepository()
        mock_to_end_min.return_value = [
            ("2020-03-20T00:00:00", "2020-03-21T00:00:00", 10),
        ]
        repo.database = MagicMock()
        repo.database.query.return_value = []
        repo._fetch_from_upbit = MagicMock(
            return_value=[
                {"content": "mango", "date_time": "2020-03-20T00:00:00"},
                {"content": "banana", "date_time": "2020-03-20 00:01:00"},
            ]
        )
        result = repo.get_data("2020-02-20T17:00:15", "2020-02-20T22:00:15", "mango")

        self.assertEqual(
            result,
            [
                {"content": "mango", "date_time": "2020-03-20T00:00:00"},
                {"content": "banana", "date_time": "2020-03-20T00:01:00"},
            ],
        )
        mock_to_end_min.assert_called_once_with(
            start_iso="2020-02-20T17:00:15", end_iso="2020-02-20T22:00:15"
        )
        repo._fetch_from_upbit.assert_called_once_with(
            "2020-02-20T17:00:15", "2020-02-20T22:00:15", "mango"
        )