diff --git a/funkwhale_cli/cli.py b/funkwhale_cli/cli.py index 75d6b14ee36a3cc7997df70b5360e7dd29cbe5ce..a3f547b5ff7ffaf95ecd0aca0ac9819eb99b8f6e 100644 --- a/funkwhale_cli/cli.py +++ b/funkwhale_cli/cli.py @@ -519,7 +519,7 @@ libraries_ls = get_ls_command( "type": "LIBRARY", }, ) -libraries_delete = get_delete_command(libraries, "api/v1/libraries/{}/") +libraries_rm = get_delete_command(libraries, "api/v1/libraries/{}/") @libraries.command("create") diff --git a/tests/conftest.py b/tests/conftest.py index 9ad7181f1cc065225399fd725f05f087d11bfcd2..3d5e4adb9c7b78c6a6b31a488bc001fdfe587831 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,6 @@ import pytest import aiohttp -from aioresponses import aioresponses +from aioresponses import aioresponses, compat as aioresponses_compat import asynctest @@ -13,6 +13,15 @@ def responses(): yield m +@pytest.fixture +def get_requests(responses): + def get_calls(method, url): + url = aioresponses_compat.normalize_url(url) + return responses.requests[(method.upper(), url)] + + return get_calls + + @pytest.fixture async def session(loop): async with aiohttp.ClientSession() as session: diff --git a/tests/test_cli.py b/tests/test_cli.py index 5ba5983e60299ae160843daab6884208a5fb1c69..0ac13857a119c4337aceba920b6d1c0e607637d9 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -79,3 +79,52 @@ def test_lazy_credential(mocker): # result is cached str(credential) assert get_password.call_count == 1 + + +def test_libraries_create(cli_ctx, session, responses, get_requests): + command = cli.libraries_create + url = "https://test.funkwhale/api/v1/libraries/" + responses.post(url) + + command.callback(name="test", visibility="public", raw=False, _async_reraise=True) + + requests = get_requests("post", url) + assert len(requests) == 1 + assert requests[0].kwargs["data"] == {"name": "test", "visibility": "public"} + + +def test_libraries_ls(cli_ctx, session, responses, get_requests): + command = cli.libraries_ls + url = "https://test.funkwhale/api/v1/libraries/?ordering=-creation_date&page=1&page_size=5&q=hello" + responses.get( + url, payload={"results": [], "next": None, "previous": None, "count": 0} + ) + + command.callback( + raw=False, + page=1, + page_size=5, + ordering="-creation_date", + filter="favorites=true", + query=["hello"], + column=None, + format=None, + no_headers=False, + ids=False, + limit=1, + ) + + requests = get_requests("get", url) + assert len(requests) == 1 + + +def test_libraries_rm(cli_ctx, session, responses, get_requests): + command = cli.libraries_rm + url = "https://test.funkwhale/api/v1/libraries/" + responses.delete(url + "1/") + responses.delete(url + "42/") + + command.callback(id=[1, 42], raw=False, no_input=True, _async_reraise=True) + + assert len(get_requests("delete", url + "1/")) == 1 + assert len(get_requests("delete", url + "42/")) == 1