@@ -119,7 +119,13 @@ async def test_do_get_file(mock_provider, fake_request):
119119 ),
120120 )
121121 )
122- mock_provider ._dav_response_data_generator = AsyncMock (return_value = AsyncMock ())
122+
123+ async def fake_generator ():
124+ yield b"data"
125+
126+ mock_provider ._dav_response_data_generator = MagicMock (
127+ return_value = fake_generator ()
128+ )
123129
124130 fake_request .ranges = [DAVRequestRange (DAVRangeType .RANGE , 0 , 100 , 200 )]
125131 status , basic_data , generator , _ = await mock_provider ._do_get (fake_request )
@@ -145,7 +151,13 @@ async def test_do_get_file_non_range(mock_provider, fake_request):
145151 ),
146152 )
147153 )
148- mock_provider ._dav_response_data_generator = AsyncMock (return_value = AsyncMock ())
154+
155+ async def fake_generator ():
156+ yield b"data"
157+
158+ mock_provider ._dav_response_data_generator = MagicMock (
159+ return_value = fake_generator ()
160+ )
149161
150162 fake_request .ranges = None
151163 status , basic_data , generator , _ = await mock_provider ._do_get (fake_request )
@@ -361,24 +373,31 @@ async def __aexit__(self, exc_type, exc_val, exc_tb):
361373
362374@pytest .mark .asyncio
363375async def test_do_put (mock_provider , fake_request ):
364- mock_response = MagicMock ()
365- mock_response .status_code = 200
366- mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
367- mock_response .raise_for_status = MagicMock ()
376+ mock_provider ._precheck_source = AsyncMock (return_value = (True , False , False ))
368377
369- mock_provider .client .get .return_value = mock_response
378+ first_put = AsyncMock ()
379+ first_put .status_code = 307
380+ first_put .headers = {
381+ "location" : "http://fake-hdfs:9870/webhdfs/v1/file_put_location"
382+ }
383+ first_put .raise_for_status = MagicMock ()
370384
371- response = await mock_provider ._do_put (fake_request )
385+ second_put = AsyncMock ()
386+ second_put .status_code = 201
387+ second_put .raise_for_status = MagicMock ()
372388
373- assert response == 204
389+ mock_provider .client .put = AsyncMock (side_effect = [first_put , second_put ])
390+
391+ response = await mock_provider ._do_put (fake_request )
392+ assert response == 201
374393
375394
376395@pytest .mark .asyncio
377396async def test_do_copy (mock_provider , fake_request ):
378397 mock_response = MagicMock ()
379398 mock_response .status_code = 200
380399 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
381- mock_response .raise_for_status = AsyncMock ()
400+ mock_response .raise_for_status = MagicMock ()
382401
383402 mock_provider .client .get .return_value = mock_response
384403
@@ -391,7 +410,7 @@ async def test_do_mkcol(mock_provider, fake_request):
391410 mock_response = MagicMock ()
392411 mock_response .status_code = 200
393412 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
394- mock_response .raise_for_status = AsyncMock ()
413+ mock_response .raise_for_status = MagicMock ()
395414
396415 mock_provider .client .get .return_value = mock_response
397416
@@ -405,7 +424,7 @@ async def test_do_propfind(mock_provider, fake_request):
405424 mock_response = MagicMock ()
406425 mock_response .status_code = 200
407426 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
408- mock_response .raise_for_status = AsyncMock ()
427+ mock_response .raise_for_status = MagicMock ()
409428
410429 mock_provider .client .get .return_value = mock_response
411430
@@ -477,7 +496,7 @@ async def test_do_head(mock_provider, fake_request):
477496 mock_response = MagicMock ()
478497 mock_response .status_code = 200
479498 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
480- mock_response .raise_for_status = AsyncMock ()
499+ mock_response .raise_for_status = MagicMock ()
481500
482501 mock_provider .client .get .return_value = mock_response
483502
@@ -491,7 +510,7 @@ async def test_do_precheck_destination(mock_provider, fake_request):
491510 mock_response = MagicMock ()
492511 mock_response .status_code = 200
493512 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
494- mock_response .raise_for_status = AsyncMock ()
513+ mock_response .raise_for_status = MagicMock ()
495514
496515 mock_provider .client .get .return_value = mock_response
497516
@@ -502,16 +521,24 @@ async def test_do_precheck_destination(mock_provider, fake_request):
502521
503522@pytest .mark .asyncio
504523async def test_do_move (mock_provider , fake_request ):
505- mock_response = MagicMock ()
506- mock_response .status_code = 200
507- mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
508- mock_response .raise_for_status = MagicMock ()
524+ fake_request .overwrite = True
509525
510- mock_provider .client .get .return_value = mock_response
526+ mock_provider ._precheck_destination = AsyncMock (return_value = (True , False , True ))
527+
528+ mock_delete_response = MagicMock ()
529+ mock_delete_response .status_code = 204
530+ mock_delete_response .raise_for_status = MagicMock ()
531+
532+ mock_provider .client .delete = AsyncMock (return_value = mock_delete_response )
511533
512- response = await mock_provider ._do_move (fake_request )
534+ mock_put_response = MagicMock ()
535+ mock_put_response .status_code = 201
536+ mock_put_response .raise_for_status = MagicMock ()
513537
514- assert response == 204
538+ mock_provider .client .put = AsyncMock (return_value = mock_put_response )
539+
540+ result = await mock_provider ._do_move (fake_request )
541+ assert result == 204
515542
516543
517544@pytest .mark .asyncio
0 commit comments