@@ -211,7 +211,8 @@ async def test_search_filter(item_descriptions,
211211
212212 cl = DataClient (session , base_url = TEST_URL )
213213 items_list = [
214- i async for i in cl .search (['PSScene' ], search_filter = search_filter )
214+ i async for i in cl .search (item_types = ['PSScene' ],
215+ search_filter = search_filter )
215216 ]
216217
217218 # check that request is correct
@@ -332,7 +333,7 @@ async def test_create_search_basic(search_filter, session):
332333 respx .post (TEST_SEARCHES_URL ).return_value = mock_resp
333334
334335 cl = DataClient (session , base_url = TEST_URL )
335- search = await cl .create_search (['PSScene' ],
336+ search = await cl .create_search (item_types = ['PSScene' ],
336337 search_filter = search_filter ,
337338 name = 'test' )
338339
@@ -350,6 +351,43 @@ async def test_create_search_basic(search_filter, session):
350351 assert search == page_response
351352
352353
354+ @respx .mock
355+ @pytest .mark .anyio
356+ async def test_create_search_basic_positional_args (search_filter , session ):
357+ """Test that positional arguments are accepted for create_search"""
358+
359+ page_response = {
360+ "__daily_email_enabled" : False ,
361+ "_links" : {
362+ "_self" : "string" , "thumbnail" : "string"
363+ },
364+ "created" : "2019-08-24T14:15:22Z" ,
365+ "filter" : search_filter ,
366+ "id" : "string" ,
367+ "last_executed" : "2019-08-24T14:15:22Z" ,
368+ "name" : "test" ,
369+ "updated" : "2019-08-24T14:15:22Z"
370+ }
371+ mock_resp = httpx .Response (HTTPStatus .OK , json = page_response )
372+ respx .post (TEST_SEARCHES_URL ).return_value = mock_resp
373+
374+ cl = DataClient (session , base_url = TEST_URL )
375+ search = await cl .create_search (['PSScene' ], search_filter , name = 'test' )
376+
377+ # check that request is correct
378+ expected_request = {
379+ "item_types" : ["PSScene" ],
380+ "filter" : search_filter ,
381+ "name" : "test" ,
382+ "__daily_email_enabled" : False
383+ }
384+ actual_body = json .loads (respx .calls [0 ].request .content )
385+ assert actual_body == expected_request
386+
387+ # check the response is returned unaltered
388+ assert search == page_response
389+
390+
353391@respx .mock
354392@pytest .mark .anyio
355393async def test_create_search_email (search_filter , session ):
@@ -457,6 +495,46 @@ async def test_update_search_basic(search_filter, session):
457495 assert search == page_response
458496
459497
498+ @respx .mock
499+ @pytest .mark .anyio
500+ async def test_update_search_basic_positional_args (search_filter , session ):
501+ """Test that positional arguments are accepted for update_search"""
502+
503+ page_response = {
504+ "__daily_email_enabled" : False ,
505+ "_links" : {
506+ "_self" : "string" , "thumbnail" : "string"
507+ },
508+ "created" : "2019-08-24T14:15:22Z" ,
509+ "filter" : search_filter ,
510+ "id" : VALID_SEARCH_ID ,
511+ "last_executed" : "2019-08-24T14:15:22Z" ,
512+ "name" : "test" ,
513+ "updated" : "2019-08-24T14:15:22Z"
514+ }
515+ mock_resp = httpx .Response (HTTPStatus .OK , json = page_response )
516+ respx .put (
517+ f'{ TEST_SEARCHES_URL } /{ VALID_SEARCH_ID } ' ).return_value = mock_resp
518+
519+ cl = DataClient (session , base_url = TEST_URL )
520+ search = await cl .update_search (VALID_SEARCH_ID , ['PSScene' ],
521+ search_filter ,
522+ name = 'test' )
523+
524+ # check that request is correct
525+ expected_request = {
526+ "item_types" : ["PSScene" ],
527+ "filter" : search_filter ,
528+ "name" : "test" ,
529+ "__daily_email_enabled" : False
530+ }
531+ actual_body = json .loads (respx .calls [0 ].request .content )
532+ assert actual_body == expected_request
533+
534+ # check the response is returned unaltered
535+ assert search == page_response
536+
537+
460538@respx .mock
461539@pytest .mark .anyio
462540@pytest .mark .parametrize ("limit, expected_list_length" , [(None , 4 ), (3 , 3 )])
0 commit comments