@@ -396,3 +396,55 @@ def test_minimum_valid_data_submission(m_request_post, anvil):
396396anvil .forge_submit (payload = payload )
397397assert m_request_post .call_count == 1
398398assert _expected_data in m_request_post .call_args
399+
400+ def describe_rest_request_absolute_url_behavior ():
401+ @pytest .mark .parametrize (
402+ "url, expected_absolute_url" ,
403+ [
404+ ("some/relative/path" ,False ),
405+ ("https://external.example.com/full/path/file.pdf" ,True ),
406+ ],
407+ )
408+ @mock .patch ("python_anvil.api_resources.requests.AnvilRequest._request" )
409+ def test_get_behavior (mock_request ,anvil ,url ,expected_absolute_url ):
410+ mock_request .return_value = (b"fake_content" ,200 , {})
411+ rest_client = anvil .request_rest ()
412+
413+ if expected_absolute_url :
414+ rest_client .get (url ,absolute_url = True )
415+ else :
416+ rest_client .get (url )
417+
418+ mock_request .assert_called_once_with (
419+ "GET" ,
420+ url ,
421+ params = None ,
422+ retry = True ,
423+ absolute_url = expected_absolute_url ,
424+ )
425+
426+ @pytest .mark .parametrize (
427+ "url, expected_absolute_url" ,
428+ [
429+ ("some/relative/path" ,False ),
430+ ("https://external.example.com/full/path/file.pdf" ,True ),
431+ ],
432+ )
433+ @mock .patch ("python_anvil.api_resources.requests.AnvilRequest._request" )
434+ def test_post_behavior (mock_request ,anvil ,url ,expected_absolute_url ):
435+ mock_request .return_value = (b"fake_content" ,200 , {})
436+ rest_client = anvil .request_rest ()
437+
438+ if expected_absolute_url :
439+ rest_client .post (url ,data = {},absolute_url = True )
440+ else :
441+ rest_client .post (url ,data = {})
442+
443+ mock_request .assert_called_once_with (
444+ "POST" ,
445+ url ,
446+ json = {},
447+ retry = True ,
448+ params = None ,
449+ absolute_url = expected_absolute_url ,
450+ )