async def test(backend): url = "https://foo.bar/1/" respx.get(re.compile("https://some.thing")) respx.delete("https://some.thing") foobar1 = respx.get(url, status_code=202, alias="get_foobar", content="get") foobar2 = respx.delete(url, status_code=200, alias="del_foobar", content="del") assert foobar1.called is False assert foobar1.call_count == len(foobar1.calls) assert foobar1.call_count == 0 assert respx.stats.call_count == len(respx.calls) assert respx.stats.call_count == 0 async with httpx.AsyncClient() as client: get_response = await client.get(url) del_response = await client.delete(url) assert foobar1.called is True assert foobar2.called is True assert foobar1.call_count == 1 assert foobar2.call_count == 1 _request, _response = foobar1.calls[-1] assert isinstance(_request, httpx.Request) assert isinstance(_response, httpx.Response) assert _request.method == "GET" assert _request.url == url assert _response.status_code == 202 assert _response.status_code == get_response.status_code assert _response.content == get_response.content assert id(_response) != id(get_response) # TODO: Fix this? _request, _response = foobar2.calls[-1] assert isinstance(_request, httpx.Request) assert isinstance(_response, httpx.Response) assert _request.method == "DELETE" assert _request.url == url assert _response.status_code == 200 assert _response.status_code == del_response.status_code assert _response.content == del_response.content assert id(_response) != id(del_response) # TODO: Fix this? assert respx.stats.call_count == 2 assert respx.calls[0] == foobar1.calls[-1] assert respx.calls[1] == foobar2.calls[-1] alias = respx.aliases["get_foobar"] assert alias == foobar1 assert alias.alias == foobar1.alias alias = respx.aliases["del_foobar"] assert alias == foobar2 assert alias.alias == foobar2.alias
def test_mock_delete_followup_message_fail_sync( followup_object_with_already_set_id: FollowUpMessages, ): respx.delete( f"https://discord.com/api/v8/webhooks/APPID/exampleToken/messages/SampleMessageId" ).mock(return_value=Response(404, json={"id": "exampleIncomingToken"})) with pytest.raises(DiscordAPIError): followup_object_with_already_set_id.delete_follow_up_message()
async def test_http_methods(client): async with respx.mock: url = "https://foo.bar" route = respx.get(url, path="/") % 404 respx.post(url, path="/").respond(200) respx.post(url, path="/").respond(201) respx.put(url, path="/").respond(202) respx.patch(url, path="/").respond(500) respx.delete(url, path="/").respond(204) respx.head(url, path="/").respond(405) respx.options(url, path="/").respond(status_code=501) respx.request("GET", url, path="/baz/").respond(status_code=204) url += "/" response = httpx.get(url) assert response.status_code == 404 response = await client.get(url) assert response.status_code == 404 response = httpx.get(url + "baz/") assert response.status_code == 204 response = await client.get(url + "baz/") assert response.status_code == 204 response = httpx.post(url) assert response.status_code == 201 response = await client.post(url) assert response.status_code == 201 response = httpx.put(url) assert response.status_code == 202 response = await client.put(url) assert response.status_code == 202 response = httpx.patch(url) assert response.status_code == 500 response = await client.patch(url) assert response.status_code == 500 response = httpx.delete(url) assert response.status_code == 204 response = await client.delete(url) assert response.status_code == 204 response = httpx.head(url) assert response.status_code == 405 response = await client.head(url) assert response.status_code == 405 response = httpx.options(url) assert response.status_code == 501 response = await client.options(url) assert response.status_code == 501 assert route.called is True assert respx.calls.call_count == 8 * 2
def test_mock_delete_followup_message_sync( followup_object_with_already_set_id: FollowUpMessages, ): respx.delete( f"https://discord.com/api/v8/webhooks/APPID/exampleToken/messages/SampleMessageId" ).mock(return_value=Response(200, json={"id": "exampleIncomingToken"})) assert followup_object_with_already_set_id.delete_follow_up_message( ) == True assert followup_object_with_already_set_id._message_id == None with pytest.raises(TypeError): followup_object_with_already_set_id.delete_follow_up_message()
def test_delete_command_guild_only(dispike_object: Dispike, example_edit_command: DiscordCommand): respx.delete( "https://discord.com/api/v8/applications/APPID/guilds/EXAMPLE_GUILD/commands/1234" ).mock(return_value=Response( 204, json=example_edit_command.dict(), )) _delete_command = dispike_object.delete_command( command_id=1234, guild_only=True, guild_id_passed="EXAMPLE_GUILD", ) assert _delete_command == True
def test_failed_delete_command_guild_only( dispike_object: Dispike, example_edit_command: DiscordCommand): respx.delete( "https://discord.com/api/v8/applications/APPID/guilds/EXAMPLE_GUILD/commands/1234" ).mock(return_value=Response( 500, json=example_edit_command.dict(), )) with pytest.raises(DiscordAPIError): _delete_command = dispike_object.delete_command( command_id=1234, guild_only=True, guild_id_passed="EXAMPLE_GUILD", )
async def test_http_methods(client): async with respx.mock: url = "https://foo.bar/" m = respx.get(url, status_code=404) respx.post(url, status_code=201) respx.put(url, status_code=202) respx.patch(url, status_code=500) respx.delete(url, status_code=204) respx.head(url, status_code=405) respx.options(url, status_code=501) response = httpx.get(url) assert response.status_code == 404 response = await client.get(url) assert response.status_code == 404 response = httpx.post(url) assert response.status_code == 201 response = await client.post(url) assert response.status_code == 201 response = httpx.put(url) assert response.status_code == 202 response = await client.put(url) assert response.status_code == 202 response = httpx.patch(url) assert response.status_code == 500 response = await client.patch(url) assert response.status_code == 500 response = httpx.delete(url) assert response.status_code == 204 response = await client.delete(url) assert response.status_code == 204 response = httpx.head(url) assert response.status_code == 405 response = await client.head(url) assert response.status_code == 405 response = httpx.options(url) assert response.status_code == 501 response = await client.options(url) assert response.status_code == 501 assert m.called is True assert respx.stats.call_count == 7 * 2
async def test_async_delete_failed(async_client): request = respx.delete(f"{API_BASE_URL}/v1/notifications/1/", status_code=404) response = await async_client.notifications.delete(id=1) assert request.called assert response.status_code == 404
async def test_async_delete_204(async_client): request = respx.delete(f"{API_BASE_URL}/v1/groups/persons/1/", status_code=204) response = await async_client.groups.delete(1) assert request.called assert response.status_code == 204
def test_delete_ok(client): request = respx.delete(f"{API_BASE_URL}/v1/notifications/1/", status_code=204) response = client.notifications.delete(id=1) assert request.called assert response.status_code == 204
def test_remove_persons_200(client): request = respx.delete(f"{API_BASE_URL}/v1/groups/persons/pids/", status_code=200) response = client.groups.remove(pids=["pid"], groups_ids=[1, 2]) assert request.called assert response.status_code == 200
async def test_delete(self): """Should delete provisioning profile via API.""" rsps = respx.delete(f'{PROVISIONING_API_URL}/users/current/provisioning-profiles/id') \ .mock(return_value=Response(200)) await provisioning_client.delete_provisioning_profile('id') assert rsps.calls[0].request.url == \ f'{PROVISIONING_API_URL}/users/current/provisioning-profiles/id' assert rsps.calls[0].request.headers[ 'auth-token'] == 'header.payload.sign'
async def test_delete(self): """Should delete MetaTrader account via API.""" rsps = respx.delete(f'{PROVISIONING_API_URL}/users/current/accounts/id') \ .mock(return_value=Response(204)) await account_client.delete_account('id') assert rsps.calls[ 0].request.url == f'{PROVISIONING_API_URL}/users/current/accounts/id' assert rsps.calls[0].request.method == 'DELETE' assert rsps.calls[0].request.headers[ 'auth-token'] == 'header.payload.sign'
async def test_remove_portfolio_strategy(self): """Should remove portfolio strategy via API.""" rsps = respx.delete(f'{copy_factory_api_url}/users/current/configuration/portfolio-strategies/ABCD')\ .mock(return_value=Response(204)) await copy_factory_client.remove_portfolio_strategy('ABCD') assert rsps.calls[0].request.url == f'{copy_factory_api_url}/users/current/configuration/' \ f'portfolio-strategies/ABCD' assert rsps.calls[0].request.method == 'DELETE' assert rsps.calls[0].request.headers[ 'auth-token'] == 'header.payload.sign'
async def test_remove_strategy(self): """Should remove strategy via API.""" payload = {'mode': 'preserve', 'removeAfter': date('2020-08-24T00:00:01.000Z')} rsps = respx.delete(f'{copy_factory_api_url}/users/current/configuration/strategies/ABCD') \ .mock(return_value=Response(204)) await copy_factory_client.remove_strategy('ABCD', payload) assert rsps.calls[0].request.url == f'{copy_factory_api_url}/users/current/configuration/strategies/ABCD' assert rsps.calls[0].request.method == 'DELETE' assert rsps.calls[0].request.headers['auth-token'] == 'header.payload.sign' assert rsps.calls[0].request.content == json.dumps(payload).encode('utf-8')
async def test_delete_request_404(self, gl, is_gl_sync): result = respx.delete( "http://localhost/api/v4/not_there", content="Here is why it failed", status_code=codes.NOT_FOUND, ) with pytest.raises(exc.GitlabHttpError): r = gl.http_delete("/not_there") if not is_gl_sync: await r
async def test_remove_copyfactory_subscription(self): """Should remove CopyFactory subscription via API.""" payload = {'mode': 'preserve', 'removeAfter': date('2020-08-24T00:00:01.000Z')} rsps = respx.delete(f'{copy_factory_api_url}/users/current/configuration/subscribers/' + 'e8867baa-5ec2-45ae-9930-4d5cea18d0d6/subscriptions/ABCD').mock(return_value=Response(204)) await copy_factory_client.remove_subscription('e8867baa-5ec2-45ae-9930-4d5cea18d0d6', 'ABCD', payload) assert rsps.calls[0].request.url == f'{copy_factory_api_url}/users/current/configuration/subscribers/' + \ 'e8867baa-5ec2-45ae-9930-4d5cea18d0d6/subscriptions/ABCD' assert rsps.calls[0].request.method == 'DELETE' assert rsps.calls[0].request.headers['auth-token'] == 'header.payload.sign' assert rsps.calls[0].request.content == json.dumps(payload).encode('utf-8')
async def test_remove_copyfactory_account(self): """Should remove CopyFactory account via API.""" rsps = respx.delete(f'{copy_factory_api_url}/users/current/configuration/accounts/' + '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef')\ .mock(return_value=Response(204)) await copy_factory_client\ .remove_account('0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef') assert rsps.calls[0].request.url == f'{copy_factory_api_url}/users/current/configuration/accounts/' + \ '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef' assert rsps.calls[0].request.method == 'DELETE' assert rsps.calls[0].request.headers[ 'auth-token'] == 'header.payload.sign'
async def test_delete_request(self, gl, gl_get_value): request = respx.delete( "http://localhost/api/v4/projects", headers={"content-type": "application/json"}, content="true", status_code=codes.OK, ) result = gl.http_delete("/projects") result = await gl_get_value(result) assert isinstance(result, httpx.Response) assert result.json() is True
async def test_delete_mixin(self, gl): class M(DeleteMixin, FakeManager): pass request = respx.delete( "http://localhost/api/v4/tests/42", headers={"Content-Type": "application/json"}, content="", status_code=codes.OK, ) mgr = M(gl) await mgr.delete(42)
def test_delete_202(client): request = respx.delete(f"{API_BASE_URL}/v1/sources/1/", status_code=202) response = client.sources.delete(id=1) assert request.called assert response.status_code == 202
async def test_delete_global(client: lightkube.AsyncClient): respx.delete("https://localhost:9443/api/v1/nodes/xx") await client.delete(Node, name="xx") await client.close()
async def test_deletecollection_global(client: lightkube.AsyncClient): respx.delete("https://localhost:9443/api/v1/nodes") await client.deletecollection(Node) await client.close()
async def test_async_delete_ok(async_client): request = respx.delete(f"{IAM_BASE_URL}/v1/spaces/1/", status_code=202) response = await async_client.spaces.delete(id=1) assert request.called assert response.status_code == 202
async def backend_test(backend): url = "https://foo.bar/1/" respx.get(re.compile("https://some.thing")) respx.delete("https://some.thing") foobar1 = respx.get(url, name="get_foobar") % dict(status_code=202, text="get") foobar2 = respx.delete(url, name="del_foobar") % dict(text="del") assert foobar1.called is False assert foobar1.call_count == len(foobar1.calls) assert foobar1.call_count == 0 assert foobar1.calls.last is None assert respx.calls.call_count == len(respx.calls) assert respx.calls.call_count == 0 with pytest.raises(AssertionError, match="Expected 'respx' to have been called"): respx.calls.assert_called_once() with pytest.raises(AssertionError, match="Expected '<Route name='get_foobar'"): foobar1.calls.assert_called_once() async with httpx.AsyncClient() as client: get_response = await client.get(url) del_response = await client.delete(url) assert foobar1.called is True assert foobar2.called is True assert foobar1.call_count == 1 assert foobar2.call_count == 1 assert foobar1.calls.call_count == 1 _request, _response = foobar1.calls[-1] assert isinstance(_request, httpx.Request) assert isinstance(_response, httpx.Response) assert foobar1.calls.last.request is _request assert foobar1.calls.last.response is _response assert _request.method == "GET" assert _request.url == url assert _response.status_code == get_response.status_code == 202 assert _response.content == get_response.content == b"get" assert tuple(_response.headers.raw) == tuple(get_response.headers.raw) assert _response.extensions == get_response.extensions assert id(_response) != id(get_response) _request, _response = foobar2.calls[-1] assert isinstance(_request, httpx.Request) assert isinstance(_response, httpx.Response) assert _request.method == "DELETE" assert _request.url == url assert _response.status_code == del_response.status_code == 200 assert _response.content == del_response.content == b"del" assert tuple(_response.headers.raw) == tuple(del_response.headers.raw) assert _response.extensions == del_response.extensions assert id(_response) != id(del_response) assert respx.calls.call_count == 2 assert respx.calls[0] == foobar1.calls[-1] assert respx.calls[1] == foobar2.calls[-1] assert respx.mock.calls.call_count == 2 assert respx.calls.call_count == 2 route = respx.routes["get_foobar"] assert route == foobar1 assert route.name == foobar1.name route = respx.routes["del_foobar"] assert route == foobar2 assert route.name == foobar2.name
def test_delete_command_globally(dispike_object: Dispike, ): respx.delete("https://discord.com/api/v8/applications/APPID/commands/1234" ).mock(return_value=Response(204, )) _delete_command = dispike_object.delete_command(command_id=1234) assert _delete_command == True
def test_deletecollection_global(client: lightkube.Client): respx.delete("https://localhost:9443/api/v1/nodes") client.deletecollection(Node)
async def test_async_delete(async_client): request = respx.delete(f"{API_BASE_URL}/v1/persons/pid/", status_code=204) response = await async_client.persons.delete("pid") assert request.called assert response.status_code == 204
def test_failed_delete_command_globally(dispike_object: Dispike, ): respx.delete("https://discord.com/api/v8/applications/APPID/commands/1234" ).mock(return_value=Response(500, )) with pytest.raises(DiscordAPIError): _delete_command = dispike_object.delete_command(command_id=1234)
async def test(backend): url = "https://foo.bar/1/" respx.get(re.compile("https://some.thing")) respx.delete("https://some.thing") foobar1 = respx.get(url, status_code=202, name="get_foobar", content="get") foobar2 = respx.delete(url, status_code=200, name="del_foobar", content="del") assert foobar1.called is False assert foobar1.call_count == len(foobar1.calls) assert foobar1.call_count == 0 assert foobar1.calls.last is None assert respx.calls.call_count == len(respx.calls) assert respx.calls.call_count == 0 async with httpx.AsyncClient() as client: get_response = await client.get(url) del_response = await client.delete(url) assert foobar1.called is True assert foobar2.called is True assert foobar1.call_count == 1 assert foobar2.call_count == 1 with warnings.catch_warnings(record=True) as w: assert foobar1.stats.call_count == 1 assert len(w) == 1 _request, _response = foobar1.calls[-1] assert isinstance(_request, httpx.Request) assert isinstance(_response, httpx.Response) assert foobar1.calls.last.request is _request assert foobar1.calls.last.response is _response assert _request.method == "GET" assert _request.url == url assert _response.status_code == get_response.status_code == 202 assert _response.content == get_response.content == b"get" assert id(_response) != id(get_response) # TODO: Fix this? _request, _response = foobar2.calls[-1] assert isinstance(_request, httpx.Request) assert isinstance(_response, httpx.Response) assert _request.method == "DELETE" assert _request.url == url assert _response.status_code == del_response.status_code == 200 assert _response.content == del_response.content == b"del" assert id(_response) != id(del_response) # TODO: Fix this? assert respx.calls.call_count == 2 assert respx.calls[0] == foobar1.calls[-1] assert respx.calls[1] == foobar2.calls[-1] with warnings.catch_warnings(record=True) as w: assert respx.mock.stats.call_count == 2 assert len(w) == 1 assert respx.stats.call_count == 2 assert len(w) == 1 route = respx.aliases["get_foobar"] assert route == foobar1 assert route.name == foobar1.name route = respx.aliases["del_foobar"] assert route == foobar2 assert route.name == foobar2.name