diff --git a/wallabag_api/test_wallabag.py b/wallabag_api/test_wallabag.py index fac346f..97d8533 100644 --- a/wallabag_api/test_wallabag.py +++ b/wallabag_api/test_wallabag.py @@ -174,6 +174,142 @@ class TestWallabag: assert tag_id not in resp_tags_id await self._delete_entry(wallabag, entry_id) + @pytest.mark.asyncio + async def test_put_annotations(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + annotation = await wallabag.post_annotations( + entry_id, + ranges=[ + {"start": "/p[1]", "startOffset": 0, "end": "/p[1]", "endOffset": 10} + ], + quote="test quote", + text="test annotation", + ) + annotation_id = annotation["id"] + data = await wallabag.put_annotations(annotation_id) + assert data is not None + + @pytest.mark.asyncio + async def test_reload_entry(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + assert isinstance(entry_id, int) + try: + data = await wallabag.patch_entry_reload(entry_id) + assert data + except Exception as e: + if "304" in str(e): + pass + else: + raise + + @pytest.mark.asyncio + async def test_entries_exists(self, setup_class): + wallabag, entry = setup_class + entry_url = entry["url"] + data = await wallabag.entries_exists(url=entry_url) + if isinstance(data, dict) and "exists" in data: + assert data["exists"] is True + data = await wallabag.entries_exists(url="https://nonexistent.example.com") + if isinstance(data, dict) and "exists" in data: + assert data["exists"] is False + + @pytest.mark.asyncio + async def test_delete_tag(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + tags = ["tag_for_deletion"] + await wallabag.post_entry_tags(entry_id, tags) + all_tags = await wallabag.get_tags() + tag_to_delete = next( + (t for t in all_tags if t["label"] == "tag_for_deletion"), None + ) + if tag_to_delete: + data = await wallabag.delete_tag(tag_to_delete["id"]) + assert data + + @pytest.mark.asyncio + async def test_delete_tag_label(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + tags = ["label_for_deletion"] + await wallabag.post_entry_tags(entry_id, tags) + data = await wallabag.delete_tag_label("label_for_deletion") + assert data + + @pytest.mark.asyncio + async def test_delete_tags_label(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + tags = ["multi_delete_1", "multi_delete_2"] + await wallabag.post_entry_tags(entry_id, tags) + data = await wallabag.delete_tags_label(tags) + assert data is not None + + @pytest.mark.asyncio + async def test_get_annotations(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + data = await wallabag.get_annotations(entry_id) + assert isinstance(data, (dict, list)) + if isinstance(data, dict): + assert "rows" in data or "total" in data + + @pytest.mark.asyncio + async def test_post_annotations(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + data = await wallabag.post_annotations( + entry_id, + ranges=[ + {"start": "/p[1]", "startOffset": 0, "end": "/p[1]", "endOffset": 10} + ], + quote="test quote", + text="test annotation", + ) + assert data + assert "id" in data + return data["id"] + + @pytest.mark.asyncio + async def test_put_annotations(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + annotation = await wallabag.post_annotations( + entry_id, + ranges=[ + {"start": "/p[1]", "startOffset": 0, "end": "/p[1]", "endOffset": 10} + ], + quote="test quote", + text="test annotation", + ) + annotation_id = annotation["id"] + data = await wallabag.put_annotations(annotation_id) + assert data is not None + + @pytest.mark.asyncio + async def test_delete_annotations(self, setup_class): + wallabag, entry = setup_class + entry_id = entry["id"] + annotation = await wallabag.post_annotations( + entry_id, + ranges=[ + {"start": "/p[1]", "startOffset": 0, "end": "/p[1]", "endOffset": 10} + ], + quote="test quote", + text="test annotation", + ) + annotation_id = annotation["id"] + data = await wallabag.delete_annotations(annotation_id) + assert data + + @pytest.mark.asyncio + async def test_version(self, setup_class): + wallabag, _ = setup_class + data = await wallabag.version + assert data + async def _create_entry(self, wallabag): data = self.entry_data.copy() data["title"] = "Some title 2" diff --git a/wallabag_api/wallabag.py b/wallabag_api/wallabag.py index f847624..11bf649 100644 --- a/wallabag_api/wallabag.py +++ b/wallabag_api/wallabag.py @@ -219,20 +219,6 @@ class Wallabag(object): ext=self.format) return await self.query(url, "get", **params) - async def reaload_entry(self, entry): - """ - PATCH /api/entries/{entry}/reload.{_format} - - Reload a single entry - - :param entry: \w+ an integer The Entry ID - :return data related to the ext - """ - params = {'access_token': self.token} - url = '/api/entries/{entry}/reload.{ext}'.format(entry=entry, - ext=self.format) - return await self.query(url, "patch", **params) - async def patch_entries(self, entry, **kwargs): """ PATCH /api/entries/{entry}.{_format}