jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/656601 )
Change subject: [tests] fix site.alldeletedrevisions tests
......................................................................
[tests] fix site.alldeletedrevisions tests
Bug: T272234
Change-Id: I8ff98b140f0d38c563d9776c6e7d35f75dd18c4f
---
M tests/site_tests.py
1 file changed, 61 insertions(+), 24 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/site_tests.py b/tests/site_tests.py
index c1489f3..dcb058f 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -1673,17 +1673,18 @@
self.assertIn('title', data)
self.assertIn(data['ns'], (10, 11))
- @unittest.expectedFailure
def test_excludeuser(self):
"""Test the site.alldeletedrevisions() method using
excludeuser."""
mysite = self.get_site()
for data in mysite.alldeletedrevisions(excludeuser=mysite.user(),
total=5):
self.assertIsInstance(data, dict)
- for drev in data:
+ self.assertIn('revisions', data)
+ self.assertIsInstance(data['revisions'], list)
+ for drev in data['revisions']:
self.assertIsInstance(drev, dict)
- self.assertIn('user', data)
- self.assertNotEqual('user', mysite.user())
+ self.assertIn('user', drev)
+ self.assertNotEqual(drev['user'], mysite.user())
def test_user_range(self):
"""Test the site.alldeletedrevisions() method with
range."""
@@ -1693,7 +1694,12 @@
user=mysite.user(),
start=pywikibot.Timestamp.fromISOformat(start),
total=5):
- for drev in data:
+ self.assertIsInstance(data, dict)
+ self.assertIn('revisions', data)
+ self.assertIsInstance(data['revisions'], list)
+ for drev in data['revisions']:
+ self.assertIsInstance(drev, dict)
+ self.assertIn('timestamp', drev)
self.assertLessEqual(drev['timestamp'], start)
end = '2008-10-07T02:03:04Z'
@@ -1701,7 +1707,12 @@
user=mysite.user(),
end=pywikibot.Timestamp.fromISOformat(end),
total=5):
- for drev in data:
+ self.assertIsInstance(data, dict)
+ self.assertIn('revisions', data)
+ self.assertIsInstance(data['revisions'], list)
+ for drev in data['revisions']:
+ self.assertIsInstance(drev, dict)
+ self.assertIn('timestamp', drev)
self.assertGreaterEqual(drev['timestamp'], end)
start = '2008-10-10T11:59:59Z'
@@ -1711,7 +1722,12 @@
start=pywikibot.Timestamp.fromISOformat(start),
end=pywikibot.Timestamp.fromISOformat(end),
total=5):
- for drev in data:
+ self.assertIsInstance(data, dict)
+ self.assertIn('revisions', data)
+ self.assertIsInstance(data['revisions'], list)
+ for drev in data['revisions']:
+ self.assertIsInstance(drev, dict)
+ self.assertIn('timestamp', drev)
self.assertTrue(end <= drev['timestamp'] <= start)
def test_user_range_reverse(self):
@@ -1722,15 +1738,26 @@
user=mysite.user(),
start=pywikibot.Timestamp.fromISOformat(start),
total=5, reverse=True):
- for drev in data:
+ self.assertIsInstance(data, dict)
+ self.assertIn('revisions', data)
+ self.assertIsInstance(data['revisions'], list)
+ for drev in data['revisions']:
+ self.assertIsInstance(drev, dict)
+ self.assertIn('timestamp', drev)
self.assertGreaterEqual(drev['timestamp'], start)
for data in mysite.alldeletedrevisions(
user=mysite.user(),
end=pywikibot.Timestamp.fromISOformat('2008-10-09T04:06:08Z'),
total=5, reverse=True):
- for drev in data:
- self.assertLessEqual(drev['timestamp'],
'2008-10-09T04:06:08Z')
+ self.assertIsInstance(data, dict)
+ self.assertIn('revisions', data)
+ self.assertIsInstance(data['revisions'], list)
+ for drev in data['revisions']:
+ self.assertIsInstance(drev, dict)
+ self.assertIn('timestamp', drev)
+ self.assertLessEqual(drev['timestamp'],
+ '2008-10-09T04:06:08Z')
start = '2008-10-11T06:00:01Z'
end = '2008-10-11T23:59:59Z'
@@ -1739,23 +1766,31 @@
start=pywikibot.Timestamp.fromISOformat(start),
end=pywikibot.Timestamp.fromISOformat(end),
reverse=True, total=5):
- for drev in data:
+ self.assertIsInstance(data, dict)
+ self.assertIn('revisions', data)
+ self.assertIsInstance(data['revisions'], list)
+ for drev in data['revisions']:
+ self.assertIsInstance(drev, dict)
+ self.assertIn('timestamp', drev)
self.assertTrue(start <= drev['timestamp'] <= end)
- @unittest.expectedFailure
def test_invalid_range(self):
"""Test site.alldeletedrevisions() method with invalid
range."""
mysite = self.get_site()
# start earlier than end
- self.assertRaises(AssertionError, mysite.alldeletedrevisions,
- user=mysite.user(),
- start='2008-10-03T00:00:01Z',
- end='2008-10-03T23:59:59Z', total=5)
+ with self.assertRaises(AssertionError):
+ adrgen = mysite.alldeletedrevisions(user=mysite.user(),
+ start='2008-10-03T00:00:01Z',
+ end='2008-10-03T23:59:59Z',
+ total=5)
+ next(adrgen)
# reverse: end earlier than start
- self.assertRaises(AssertionError, mysite.alldeletedrevisions,
- user=mysite.user(),
- start='2008-10-03T23:59:59Z',
- end='2008-10-03T00:00:01Z', reverse=True, total=5)
+ with self.assertRaises(AssertionError):
+ adrgen = mysite.alldeletedrevisions(user=mysite.user(),
+ start='2008-10-03T23:59:59Z',
+ end='2008-10-03T00:00:01Z',
+ reverse=True, total=5)
+ next(adrgen)
class TestAlldeletedrevisionsWithoutUser(DefaultSiteTestCase):
@@ -1767,13 +1802,15 @@
mysite = self.get_site()
for data in mysite.alldeletedrevisions(prefix='John', total=5):
self.assertIsInstance(data, dict)
- for key in ('title', 'ns'):
+ for key in ('title', 'ns', 'revisions'):
self.assertIn(key, data)
title = data['title']
if data['ns'] > 0:
*_, title = title.partition(':')
self.assertTrue(title.startswith('John'))
+ self.assertIsInstance(data['revisions'], list)
for drev in data['revisions']:
+ self.assertIsInstance(drev, dict)
for key in ('parentid', 'revid', 'timestamp',
'user'):
self.assertIn(key, drev)
@@ -1982,12 +2019,12 @@
prop = ['ids', 'timestamp', 'flags', 'user',
'comment']
gen = mysite.alldeletedrevisions(total=10, prop=prop)
- for item in gen:
+ for data in gen:
break
else:
self.skipTest('{0} does not have deleted edits.'.format(myuser))
- self.assertIn('revisions', item)
- for drev in item['revisions']:
+ self.assertIn('revisions', data)
+ for drev in data['revisions']:
for key in ('parentid', 'revid', 'timestamp',
'user', 'comment'):
self.assertIn(key, drev)
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/656601
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I8ff98b140f0d38c563d9776c6e7d35f75dd18c4f
Gerrit-Change-Number: 656601
Gerrit-PatchSet: 3
Gerrit-Owner: JJMC89 <JJMC89.Wikimedia(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged