Exemplo n.º 1
0
    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
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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",
        )
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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
Exemplo n.º 12
0
 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'
Exemplo n.º 14
0
 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')
Exemplo n.º 16
0
    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')
Exemplo n.º 18
0
 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'
Exemplo n.º 19
0
    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
Exemplo n.º 20
0
    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)
Exemplo n.º 21
0
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
Exemplo n.º 22
0
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()
Exemplo n.º 23
0
async def test_deletecollection_global(client: lightkube.AsyncClient):
    respx.delete("https://localhost:9443/api/v1/nodes")
    await client.deletecollection(Node)
    await client.close()
Exemplo n.º 24
0
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
Exemplo n.º 25
0
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
Exemplo n.º 26
0
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
Exemplo n.º 27
0
def test_deletecollection_global(client: lightkube.Client):
    respx.delete("https://localhost:9443/api/v1/nodes")
    client.deletecollection(Node)
Exemplo n.º 28
0
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
Exemplo n.º 29
0
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)
Exemplo n.º 30
0
    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