Example #1
0
 def test_cursor_after():
     query = query_module.QueryOptions()
     iterator = _datastore_query._PostFilterQueryIteratorImpl(
         query, "predicate"
     )
     iterator._cursor_after = "himom"
     assert iterator.cursor_after() == "himom"
Example #2
0
 def test_cursor_after_no_cursor():
     query = query_module.QueryOptions()
     iterator = _datastore_query._PostFilterQueryIteratorImpl(
         query, "predicate"
     )
     with pytest.raises(exceptions.BadArgumentError):
         iterator.cursor_after()
Example #3
0
    def test_iterate_async_raw():
        def predicate(result):
            return result.result % 2 == 0

        query = query_module.QueryOptions()
        iterator = _datastore_query._PostFilterQueryIteratorImpl(
            query, predicate, raw=True
        )
        iterator._result_set = MockResultSet([1, 2, 3, 4, 5, 6, 7])

        @tasklets.tasklet
        def iterate():
            results = []
            while (yield iterator.has_next_async()):
                results.append(iterator.next())
            raise tasklets.Return(results)

        assert iterate().result() == [
            MockResult(2),
            MockResult(4),
            MockResult(6),
        ]

        with pytest.raises(StopIteration):
            iterator.next()
Example #4
0
 def test_probably_has_next_delegate():
     query = query_module.QueryOptions()
     iterator = _datastore_query._PostFilterQueryIteratorImpl(
         query, "predicate"
     )
     iterator._result_set._next_result = "foo"
     assert iterator.probably_has_next() is True
Example #5
0
 def test_has_next_async_next_loaded():
     query = query_module.QueryOptions()
     iterator = _datastore_query._PostFilterQueryIteratorImpl(
         query, "predicate"
     )
     iterator._next_result = "foo"
     assert iterator.has_next_async().result()
 def test_probably_has_next_doesnt():
     query = query_module.QueryOptions()
     iterator = _datastore_query._PostFilterQueryIteratorImpl(
         query, "predicate")
     iterator._result_set._batch = []
     iterator._result_set._index = 0
     assert iterator.probably_has_next() is False
 def test_has_next():
     query = query_module.QueryOptions()
     iterator = _datastore_query._PostFilterQueryIteratorImpl(
         query, "predicate")
     iterator.has_next_async = mock.Mock(
         return_value=utils.future_result("bar"))
     assert iterator.has_next() == "bar"
 def test_constructor():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(offset=20,
                                       limit=10,
                                       filters=foo == u"this")
     predicate = object()
     iterator = _datastore_query._PostFilterQueryIteratorImpl(
         query, predicate)
     assert iterator._result_set._query == query_module.QueryOptions(
         filters=foo == u"this")
     assert iterator._offset == 20
     assert iterator._limit == 10
     assert iterator._predicate is predicate
    def test_iterate_async_w_limit_and_offset():
        def predicate(result):
            return result.result % 2 == 0

        query = query_module.QueryOptions(offset=1, limit=2)
        iterator = _datastore_query._PostFilterQueryIteratorImpl(
            query, predicate)
        iterator._result_set = MockResultSet([1, 2, 3, 4, 5, 6, 7, 8])

        @tasklets.tasklet
        def iterate():
            results = []
            while (yield iterator.has_next_async()):
                results.append(iterator.next())
            raise tasklets.Return(results)

        assert iterate().result() == [4, 6]

        with pytest.raises(StopIteration):
            iterator.next()