Exemple #1
0
    def test_iterate_async_raw():
        foo = model.StringProperty("foo")
        query = query_module.QueryOptions(
            filters=query_module.OR(foo == "this", foo == "that")
        )
        iterator = _datastore_query._MultiQueryIteratorImpl(query, raw=True)
        iterator._result_sets = [
            MockResultSet(["a", "c", "e", "g", "i"]),
            MockResultSet(["b", "d", "f", "h", "j"]),
        ]

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

        assert iterate().result() == [
            MockResult("a"),
            MockResult("c"),
            MockResult("e"),
            MockResult("g"),
            MockResult("i"),
            MockResult("b"),
            MockResult("d"),
            MockResult("f"),
            MockResult("h"),
            MockResult("j"),
        ]

        with pytest.raises(StopIteration):
            iterator.next()
Exemple #2
0
    def test_iterate_async_ordered():
        foo = model.StringProperty("foo")
        query = query_module.QueryOptions(
            filters=query_module.OR(foo == "this", foo == "that")
        )
        iterator = _datastore_query._MultiQueryIteratorImpl(query)
        iterator._sortable = True
        iterator._result_sets = [
            MockResultSet(["a", "c", "e", "g", "i"]),
            MockResultSet(["b", "d", "f", "h", "j"]),
        ]

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

        assert iterate().result() == [
            "a",
            "b",
            "c",
            "d",
            "e",
            "f",
            "g",
            "h",
            "i",
            "j",
        ]
 def test_index_list():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that"))
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     with pytest.raises(NotImplementedError):
         iterator.index_list()
Exemple #4
0
 def test_iter():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that")
     )
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     assert iter(iterator) is iterator
 def test_probably_has_next_doesnt():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that"))
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     iterator._result_sets = [MockResultSet([])]
     assert not iterator.probably_has_next()
 def test_cursor_after():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that"))
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     with pytest.raises(exceptions.BadArgumentError):
         iterator.cursor_after()
 def test_probably_has_next_loaded():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that"))
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     iterator._next = "foo"
     assert iterator.probably_has_next()
 def test_has_next_async_exhausted():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that"))
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     iterator._result_sets = []
     assert not iterator.has_next_async().result()
 def test_has_next():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that"))
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     iterator.has_next_async = mock.Mock(
         return_value=utils.future_result("bar"))
     assert iterator.has_next() == "bar"
 def test_constructor_sortable():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         filters=query_module.OR(foo == "this", foo == "that"),
         order_by=["foo"],
     )
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     assert iterator._result_sets[0]._query == query_module.QueryOptions(
         filters=foo == "this", order_by=["foo"])
     assert iterator._result_sets[1]._query == query_module.QueryOptions(
         filters=foo == "that", order_by=["foo"])
     assert iterator._sortable
 def test_constructor():
     foo = model.StringProperty("foo")
     query = query_module.QueryOptions(
         offset=20,
         limit=10,
         filters=query_module.OR(foo == "this", foo == "that"),
     )
     iterator = _datastore_query._MultiQueryIteratorImpl(query)
     assert iterator._result_sets[0]._query == query_module.QueryOptions(
         filters=foo == "this")
     assert iterator._result_sets[1]._query == query_module.QueryOptions(
         filters=foo == "that")
     assert not iterator._sortable
     assert iterator._offset == 20
     assert iterator._limit == 10