add more tests

This commit is contained in:
2026-03-02 18:19:00 +01:00
parent 49ab62bb2c
commit 4338070e2d
2 changed files with 136 additions and 14 deletions

View File

@@ -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"

View File

@@ -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}