@@ -112,14 +112,17 @@ async def test_do_get_file(mock_provider, fake_request):
112112 }
113113
114114 mock_provider ._get_dav_property_d0 = AsyncMock (
115- return_value = (
116- 200 ,
117- await mock_provider ._create_dav_property_obj (
118- fake_request , DAVPath ("/testfile.txt" ), fake_status
119- ),
120- )
115+ return_value = (200 , await mock_provider ._create_dav_property_obj (
116+ fake_request , DAVPath ("/testfile.txt" ), fake_status
117+ ))
118+ )
119+
120+ async def fake_generator ():
121+ yield b"data"
122+
123+ mock_provider ._dav_response_data_generator = MagicMock (
124+ return_value = fake_generator ()
121125 )
122- mock_provider ._dav_response_data_generator = AsyncMock (return_value = AsyncMock ())
123126
124127 fake_request .ranges = [DAVRequestRange (DAVRangeType .RANGE , 0 , 100 , 200 )]
125128 status , basic_data , generator , _ = await mock_provider ._do_get (fake_request )
@@ -138,14 +141,17 @@ async def test_do_get_file_non_range(mock_provider, fake_request):
138141 }
139142
140143 mock_provider ._get_dav_property_d0 = AsyncMock (
141- return_value = (
142- 200 ,
143- await mock_provider ._create_dav_property_obj (
144- fake_request , DAVPath ("/testfile.txt" ), fake_status
145- ),
146- )
144+ return_value = (200 , await mock_provider ._create_dav_property_obj (
145+ fake_request , DAVPath ("/testfile.txt" ), fake_status
146+ ))
147+ )
148+
149+ async def fake_generator ():
150+ yield b"data"
151+
152+ mock_provider ._dav_response_data_generator = MagicMock (
153+ return_value = fake_generator ()
147154 )
148- mock_provider ._dav_response_data_generator = AsyncMock (return_value = AsyncMock ())
149155
150156 fake_request .ranges = None
151157 status , basic_data , generator , _ = await mock_provider ._do_get (fake_request )
@@ -361,24 +367,28 @@ async def __aexit__(self, exc_type, exc_val, exc_tb):
361367
362368@pytest .mark .asyncio
363369async 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 ()
370+ mock_provider ._precheck_source = AsyncMock (return_value = (True , False , False ))
368371
369- mock_provider .client .get .return_value = mock_response
372+ first_put = AsyncMock ()
373+ first_put .status_code = 307
374+ first_put .headers = {"location" : "http://fake-hdfs:9870/webhdfs/v1/file_put_location" }
375+ first_put .raise_for_status = MagicMock ()
370376
371- response = await mock_provider ._do_put (fake_request )
377+ second_put = AsyncMock ()
378+ second_put .status_code = 201
379+ second_put .raise_for_status = MagicMock ()
372380
373- assert response == 204
381+ mock_provider . client . put = AsyncMock ( side_effect = [ first_put , second_put ])
374382
383+ response = await mock_provider ._do_put (fake_request )
384+ assert response == 201
375385
376386@pytest .mark .asyncio
377387async def test_do_copy (mock_provider , fake_request ):
378388 mock_response = MagicMock ()
379389 mock_response .status_code = 200
380390 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
381- mock_response .raise_for_status = AsyncMock ()
391+ mock_response .raise_for_status = MagicMock ()
382392
383393 mock_provider .client .get .return_value = mock_response
384394
@@ -391,7 +401,7 @@ async def test_do_mkcol(mock_provider, fake_request):
391401 mock_response = MagicMock ()
392402 mock_response .status_code = 200
393403 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
394- mock_response .raise_for_status = AsyncMock ()
404+ mock_response .raise_for_status = MagicMock ()
395405
396406 mock_provider .client .get .return_value = mock_response
397407
@@ -405,7 +415,7 @@ async def test_do_propfind(mock_provider, fake_request):
405415 mock_response = MagicMock ()
406416 mock_response .status_code = 200
407417 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
408- mock_response .raise_for_status = AsyncMock ()
418+ mock_response .raise_for_status = MagicMock ()
409419
410420 mock_provider .client .get .return_value = mock_response
411421
@@ -477,7 +487,7 @@ async def test_do_head(mock_provider, fake_request):
477487 mock_response = MagicMock ()
478488 mock_response .status_code = 200
479489 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
480- mock_response .raise_for_status = AsyncMock ()
490+ mock_response .raise_for_status = MagicMock ()
481491
482492 mock_provider .client .get .return_value = mock_response
483493
@@ -491,7 +501,7 @@ async def test_do_precheck_destination(mock_provider, fake_request):
491501 mock_response = MagicMock ()
492502 mock_response .status_code = 200
493503 mock_response .json = MagicMock (return_value = {"FileStatus" : {}})
494- mock_response .raise_for_status = AsyncMock ()
504+ mock_response .raise_for_status = MagicMock ()
495505
496506 mock_provider .client .get .return_value = mock_response
497507
@@ -502,16 +512,24 @@ async def test_do_precheck_destination(mock_provider, fake_request):
502512
503513@pytest .mark .asyncio
504514async 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 ()
515+ fake_request .overwrite = True
509516
510- mock_provider .client .get .return_value = mock_response
517+ mock_provider ._precheck_destination = AsyncMock (return_value = (True , False , True ))
518+
519+ mock_delete_response = MagicMock ()
520+ mock_delete_response .status_code = 204
521+ mock_delete_response .raise_for_status = MagicMock ()
511522
512- response = await mock_provider . _do_move ( fake_request )
523+ mock_provider . client . delete = AsyncMock ( return_value = mock_delete_response )
513524
514- assert response == 204
525+ mock_put_response = MagicMock ()
526+ mock_put_response .status_code = 201
527+ mock_put_response .raise_for_status = MagicMock ()
528+
529+ mock_provider .client .put = AsyncMock (return_value = mock_put_response )
530+
531+ result = await mock_provider ._do_move (fake_request )
532+ assert result == 204
515533
516534
517535@pytest .mark .asyncio
0 commit comments