From 43bf55e5543e9909c5551fc0a3b469ebaaffdaf9 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Thu, 5 Jan 2023 03:02:42 +0100 Subject: [PATCH] feat: add tasks set name (#64) --- src/aiortm/model/tasks.py | 14 +++++++ tests/fixtures/tasks/set_name.json | 36 ++++++++++++++++ tests/model/test_tasks.py | 67 +++++++++++++++++++++++++++++- 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/tasks/set_name.json diff --git a/src/aiortm/model/tasks.py b/src/aiortm/model/tasks.py index 1e3cb5a..5d938a8 100644 --- a/src/aiortm/model/tasks.py +++ b/src/aiortm/model/tasks.py @@ -151,3 +151,17 @@ async def get_list( "rtm.tasks.getList", list_id=list_id, last_sync=last_sync_string ) return TasksResponse(**result) + + async def set_name( + self, timeline: int, list_id: int, taskseries_id: int, task_id: int, name: str + ) -> TaskModifiedResponse: + """Rename a task.""" + result = await self.api.call_api_auth( + "rtm.tasks.setName", + timeline=timeline, + list_id=list_id, + taskseries_id=taskseries_id, + task_id=task_id, + name=name, + ) + return TaskModifiedResponse(**result) diff --git a/tests/fixtures/tasks/set_name.json b/tests/fixtures/tasks/set_name.json new file mode 100644 index 0000000..528ff7f --- /dev/null +++ b/tests/fixtures/tasks/set_name.json @@ -0,0 +1,36 @@ +{ + "rsp": { + "stat": "ok", + "transaction": { "id": "12476388930", "undoable": "1" }, + "list": { + "id": "48730705", + "taskseries": [ + { + "id": "493427774", + "created": "2023-01-05T01:39:14Z", + "modified": "2023-01-05T01:42:01Z", + "name": "Renamed task", + "source": "api:test-api-key", + "url": "", + "location_id": "", + "tags": [], + "participants": [], + "notes": [], + "task": [ + { + "id": "925539907", + "due": "", + "has_due_time": "0", + "added": "2023-01-05T01:39:14Z", + "completed": "", + "deleted": "", + "priority": "N", + "postponed": "0", + "estimate": "" + } + ] + } + ] + } + } +} diff --git a/tests/model/test_tasks.py b/tests/model/test_tasks.py index 89766a2..ff6706e 100644 --- a/tests/model/test_tasks.py +++ b/tests/model/test_tasks.py @@ -15,10 +15,16 @@ @pytest.fixture(name="tasks_add", scope="session") def tasks_add_fixture() -> str: - """Return a response for rtm.tasks.getList.""" + """Return a response for rtm.tasks.add.""" return load_fixture("tasks/add.json") +@pytest.fixture(name="tasks_set_name", scope="session") +def tasks_set_name_fixture() -> str: + """Return a response for rtm.tasks.setName.""" + return load_fixture("tasks/set_name.json") + + @pytest.fixture(name="response") def response_fixture(request: pytest.FixtureRequest) -> str: """Return a response for the rtm api.""" @@ -211,3 +217,62 @@ async def test_tasks_get_list( assert result.tasks.task_list[0].taskseries[0].task[ 0 ].added == datetime.fromisoformat("2023-01-02T01:55:25+00:00") + + +async def test_tasks_set_name( + client: AioRTMClient, + mock_response: aioresponses, + timelines_create: str, + generate_url: Callable[..., str], + tasks_set_name: str, +) -> None: + """Test tasks set name.""" + mock_response.get( + generate_url( + api_key="test-api-key", + auth_token="test-token", + method="rtm.timelines.create", + ), + body=timelines_create, + ) + mock_response.get( + generate_url( + api_key="test-api-key", + auth_token="test-token", + method="rtm.tasks.setName", + timeline=1234567890, + list_id=48730705, + taskseries_id=493427774, + task_id=925539907, + name="Renamed task", + ), + body=tasks_set_name, + ) + + timeline_response = await client.rtm.timelines.create() + timeline = timeline_response.timeline + result = await client.rtm.tasks.set_name( + timeline=timeline, + list_id=48730705, + taskseries_id=493427774, + task_id=925539907, + name="Renamed task", + ) + + assert result.stat == "ok" + assert result.transaction.id == 12476388930 + assert result.transaction.undoable == 1 + assert result.task_list.id == 48730705 + assert result.task_list.taskseries[0].id == 493427774 + assert result.task_list.taskseries[0].created == datetime.fromisoformat( + "2023-01-05T01:39:14+00:00" + ) + assert result.task_list.taskseries[0].modified == datetime.fromisoformat( + "2023-01-05T01:42:01+00:00" + ) + assert result.task_list.taskseries[0].name == "Renamed task" + assert result.task_list.taskseries[0].source == "api:test-api-key" + assert result.task_list.taskseries[0].task[0].id == 925539907 + assert result.task_list.taskseries[0].task[0].added == datetime.fromisoformat( + "2023-01-05T01:39:14+00:00" + )