Skip to content

Commit 780d0f3

Browse files
committed
add unit tests for deleted revs & undelete
1 parent d50ba45 commit 780d0f3

File tree

5 files changed

+64
-2
lines changed

5 files changed

+64
-2
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
requests==2.27.1
1+
requests==2.28.0

tests/res/deleted-revisions.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"batchcomplete": true,
3+
"query": {
4+
"pages": [
5+
{
6+
"ns": 2,
7+
"title": "User:Fastily/SomePageThatWasDeleted",
8+
"missing": true,
9+
"deletedrevisions": [
10+
{
11+
"revid": 1094208014,
12+
"parentid": 1094207980,
13+
"minor": false,
14+
"user": "Fastily",
15+
"timestamp": "2022-06-21T09:47:20Z",
16+
"comment": "test again"
17+
},
18+
{
19+
"revid": 1094207980,
20+
"parentid": 1094207022,
21+
"minor": false,
22+
"user": "Fastily",
23+
"timestamp": "2022-06-21T09:47:07Z",
24+
"comment": "test 1"
25+
},
26+
{
27+
"revid": 1094207022,
28+
"parentid": 0,
29+
"minor": false,
30+
"user": "Fastily",
31+
"timestamp": "2022-06-21T09:38:57Z",
32+
"comment": "test"
33+
}
34+
]
35+
}
36+
]
37+
}
38+
}

tests/res/undelete.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"undelete": {
3+
"title": "User:Fastily",
4+
"revisions": 1,
5+
"fileversions": 0,
6+
"reason": "testing undeletion"
7+
}
8+
}

tests/test_gquery.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from datetime import datetime, timezone
2+
from unittest.mock import Mock, patch
23

34
from pwiki.gquery import GQuery
45
from pwiki.ns import NS
56
from pwiki.query_constants import MAX
67
from pwiki.query_utils import flatten_generator
78

8-
from .base import WikiTestCase
9+
from .base import file_to_json, WikiTestCase
910

1011

1112
class TestListCont(WikiTestCase):
@@ -116,6 +117,16 @@ class TestPropCont(WikiTestCase):
116117
def test_categories_on_page(self):
117118
self.assertCountEqual(["Category:Fastily Test", "Category:Fastily Test2"], next(GQuery.categories_on_page(self.wiki, "User:Fastily/Sandbox/Page/2", MAX)))
118119

120+
@patch("pwiki.query_utils.basic_query", return_value=file_to_json("deleted-revisions"))
121+
def test_deleted_revisions(self, mock: Mock):
122+
result = next(GQuery.deleted_revisions(self.wiki, "User:Fastily/SomePageThatWasDeleted"))
123+
124+
mock.assert_called_once()
125+
self.assertEqual(3, len(result))
126+
self.assertEqual("Fastily", result[0].user)
127+
self.assertEqual("test 1", result[1].summary)
128+
self.assertEqual(datetime(2022, 6, 21, 9, 38, 57, tzinfo=timezone.utc), result[2].timestamp)
129+
119130
def test_revisions(self):
120131
# test 1 - base
121132
result = next(g := GQuery.revisions(self.wiki, "User:Fastily/Sandbox/RevisionTest", 2))

tests/test_wiki.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ def test_edit(self, mock: mock.Mock):
2727
with self.assertRaises(ValueError):
2828
self.wiki.edit("Foo")
2929

30+
def test_undelete(self, mock: mock.Mock):
31+
mock.return_value = file_to_json("undelete")
32+
self.assertTrue(self.wiki.undelete("User:Fastily", "testing undeletion"))
33+
mock.assert_called_once()
34+
3035

3136
class TestReadOnlyWikiAction(WikiTestCase):
3237
"""Tests Wiki actions which perform invisible/read-only updates the target wiki."""

0 commit comments

Comments
 (0)