def test_chunk(self):
        query_builder = self.get_mock_query_builder()
        query_results = [["foo1", "foo2"], ["foo3"]]
        query_builder.chunk = mock.MagicMock(return_value=query_results)

        builder = Builder(query_builder)
        model = self.get_mock_model()
        builder.set_model(model)

        results = [Collection(["foo1", "foo2"]), Collection(["foo3"])]

        model.hydrate = mock.MagicMock(return_value=[])
        model.new_collection = mock.MagicMock(side_effect=results)
        model.get_connection_name = mock.MagicMock(return_value="foo")

        i = 0
        for result in builder.chunk(2):
            self.assertEqual(result, results[i])

            i += 1

        self.assertEqual(i, 2)

        query_builder.chunk.assert_has_calls([mock.call(2)])
        model.hydrate.assert_has_calls(
            [mock.call(["foo1", "foo2"], "foo"),
             mock.call(["foo3"], "foo")])
        model.new_collection.assert_has_calls([mock.call([]), mock.call([])])
Esempio n. 2
0
    def test_chunk(self):
        builder = Builder(self.get_mock_query_builder())
        results = [['foo1', 'foo2'], ['foo3'], []]
        builder.for_page = mock.MagicMock(return_value=builder)
        builder.get = mock.MagicMock(side_effect=results)

        i = 0
        for result in builder.chunk(2):
            self.assertEqual(result, results[i])

            i += 1

        builder.for_page.assert_has_calls(
            [mock.call(1, 2),
             mock.call(2, 2),
             mock.call(3, 2)])
    def test_chunk(self):
        builder = Builder(self.get_mock_query_builder())
        results = [['foo1', 'foo2'], ['foo3'], []]
        builder.for_page = mock.MagicMock(return_value=builder)
        builder.get = mock.MagicMock(side_effect=results)

        i = 0
        for result in builder.chunk(2):
            self.assertEqual(result, results[i])

            i += 1

        builder.for_page.assert_has_calls([
            mock.call(1, 2),
            mock.call(2, 2),
            mock.call(3, 2)
        ])