@@ -269,118 +269,6 @@ async def test_query_change_feed_with_pk_range_id(self):
269269 iter_list = [item async for item in query_iterable ]
270270 self .assertEqual (len (iter_list ), 0 )
271271
272- async def test_query_change_feed (self , use_partition_key ):
273- created_collection = await self .created_db .create_container_if_not_exists (
274- "change_feed_test_" + str (uuid .uuid4 ()),
275- PartitionKey (path = "/pk" ))
276- # The test targets partition #3
277- partition_key = "pk"
278- partition_key_range_id = 0
279- partition_param = {"partition_key" : partition_key } if use_partition_key else {
280- "partition_key_range_id" : partition_key_range_id }
281-
282- # Read change feed without passing any options
283- query_iterable = created_collection .query_items_change_feed ()
284- iter_list = [item async for item in query_iterable ]
285- self .assertEqual (len (iter_list ), 0 )
286-
287- # Read change feed from current should return an empty list
288- query_iterable = created_collection .query_items_change_feed (** partition_param )
289- iter_list = [item async for item in query_iterable ]
290- self .assertEqual (len (iter_list ), 0 )
291- self .assertTrue ('etag' in created_collection .client_connection .last_response_headers )
292- self .assertNotEqual (created_collection .client_connection .last_response_headers ['etag' ], '' )
293-
294- # Read change feed from beginning should return an empty list
295- query_iterable = created_collection .query_items_change_feed (
296- is_start_from_beginning = True ,
297- ** partition_param
298- )
299- iter_list = [item async for item in query_iterable ]
300- self .assertEqual (len (iter_list ), 0 )
301- self .assertTrue ('etag' in created_collection .client_connection .last_response_headers )
302- continuation1 = created_collection .client_connection .last_response_headers ['etag' ]
303- self .assertNotEqual (continuation1 , '' )
304-
305- # Create a document. Read change feed should return be able to read that document
306- document_definition = {'pk' : 'pk' , 'id' : 'doc1' }
307- await created_collection .create_item (body = document_definition )
308- query_iterable = created_collection .query_items_change_feed (
309- is_start_from_beginning = True ,
310- ** partition_param
311- )
312- iter_list = [item async for item in query_iterable ]
313- self .assertEqual (len (iter_list ), 1 )
314- self .assertEqual (iter_list [0 ]['id' ], 'doc1' )
315- self .assertTrue ('etag' in created_collection .client_connection .last_response_headers )
316- continuation2 = created_collection .client_connection .last_response_headers ['etag' ]
317- self .assertNotEqual (continuation2 , '' )
318- self .assertNotEqual (continuation2 , continuation1 )
319-
320- # Create two new documents. Verify that change feed contains the 2 new documents
321- # with page size 1 and page size 100
322- document_definition = {'pk' : 'pk' , 'id' : 'doc2' }
323- await created_collection .create_item (body = document_definition )
324- document_definition = {'pk' : 'pk' , 'id' : 'doc3' }
325- await created_collection .create_item (body = document_definition )
326-
327- for pageSize in [1 , 100 ]:
328- # verify iterator
329- query_iterable = created_collection .query_items_change_feed (
330- continuation = continuation2 ,
331- max_item_count = pageSize ,
332- ** partition_param
333- )
334- it = query_iterable .__aiter__ ()
335- expected_ids = 'doc2.doc3.'
336- actual_ids = ''
337- async for item in it :
338- actual_ids += item ['id' ] + '.'
339- self .assertEqual (actual_ids , expected_ids )
340-
341- # verify by_page
342- # the options is not copied, therefore it need to be restored
343- query_iterable = created_collection .query_items_change_feed (
344- continuation = continuation2 ,
345- max_item_count = pageSize ,
346- ** partition_param
347- )
348- count = 0
349- expected_count = 2
350- all_fetched_res = []
351- for page in query_iterable .by_page ():
352- fetched_res = [item async for item in page ]
353- self .assertEqual (len (fetched_res ), min (pageSize , expected_count - count ))
354- count += len (fetched_res )
355- all_fetched_res .extend (fetched_res )
356-
357- actual_ids = ''
358- for item in all_fetched_res :
359- actual_ids += item ['id' ] + '.'
360- self .assertEqual (actual_ids , expected_ids )
361-
362- # verify reading change feed from the beginning
363- query_iterable = created_collection .query_items_change_feed (
364- is_start_from_beginning = True ,
365- ** partition_param
366- )
367- expected_ids = ['doc1' , 'doc2' , 'doc3' ]
368- it = query_iterable .__aiter__ ()
369- for i in range (0 , len (expected_ids )):
370- doc = await it .__anext__ ()
371- self .assertEqual (doc ['id' ], expected_ids [i ])
372- self .assertTrue ('etag' in created_collection .client_connection .last_response_headers )
373- continuation3 = created_collection .client_connection .last_response_headers ['etag' ]
374-
375- # verify reading empty change feed
376- query_iterable = created_collection .query_items_change_feed (
377- continuation = continuation3 ,
378- is_start_from_beginning = True ,
379- ** partition_param
380- )
381- iter_list = [item async for item in query_iterable ]
382- self .assertEqual (len (iter_list ), 0 )
383-
384272 async def test_populate_query_metrics (self ):
385273 created_collection = await self .created_db .create_container_if_not_exists ("query_metrics_test" ,
386274 PartitionKey (path = "/pk" ))
@@ -576,7 +464,7 @@ async def test_distinct(self):
576464
577465 await self ._validate_distinct (created_collection = created_collection ,
578466 query = 'SELECT distinct c.%s from c ORDER BY c.%s' % (
579- distinct_field , distinct_field ),
467+ distinct_field , distinct_field ),
580468 # nosec
581469 results = self ._get_distinct_docs (
582470 self ._get_order_by_docs (padded_docs , distinct_field , None ), distinct_field ,
@@ -635,7 +523,7 @@ async def test_distinct(self):
635523
636524 await self ._validate_distinct (created_collection = created_collection ,
637525 query = 'SELECT distinct c.%s from c ORDER BY c.%s' % (
638- different_field , different_field ),
526+ different_field , different_field ),
639527 # nosec
640528 results = [],
641529 is_select = True ,
0 commit comments