def test_cursor_after(): query = query_module.QueryOptions() iterator = _datastore_query._PostFilterQueryIteratorImpl( query, "predicate" ) iterator._cursor_after = "himom" assert iterator.cursor_after() == "himom"
def test_cursor_after_no_cursor(): query = query_module.QueryOptions() iterator = _datastore_query._PostFilterQueryIteratorImpl( query, "predicate" ) with pytest.raises(exceptions.BadArgumentError): iterator.cursor_after()
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()
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
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()