XZise has uploaded a new change for review.
https://gerrit.wikimedia.org/r/231971
Change subject: [IMPROV] tests: Use Request's parameters parameter
......................................................................
[IMPROV] tests: Use Request's parameters parameter
With b44e59ae the constructor of `Request` should expect the MW API parameter
only via `parameters`. This is implementing it for a few tests.
Change-Id: Ib9e55bdef4aca301ea44d132334bcd2a24047fd3
---
M tests/api_tests.py
M tests/dry_api_tests.py
2 files changed, 41 insertions(+), 29 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core
refs/changes/71/231971/1
diff --git a/tests/api_tests.py b/tests/api_tests.py
index 822f70a..3945884 100644
--- a/tests/api_tests.py
+++ b/tests/api_tests.py
@@ -110,7 +110,8 @@
def testObjectCreation(self):
"""Test api.Request() constructor with implicit site creation."""
- req = api.Request(action="test", foo="", bar="test")
+ req = api.Request(parameters={'action': 'test', 'foo': '',
+ 'bar': 'test'})
self.assertTrue(req)
self.assertEqual(req.site, self.get_site())
@@ -122,7 +123,8 @@
def testObjectCreation(self):
"""Test api.Request() constructor."""
mysite = self.get_site()
- req = api.Request(site=mysite, action="test", foo="", bar="test")
+ req = api.Request(site=mysite, parameters={'action': 'test', 'foo': '',
+ 'bar': 'test'})
self.assertTrue(req)
self.assertEqual(req.site, mysite)
self.assertIn("foo", req._params)
@@ -802,13 +804,13 @@
'titles': mainpage.title(),
}
req1 = api.CachedRequest(datetime.timedelta(minutes=10),
- site=mysite, **params)
+ site=mysite, parameters=params)
data1 = req1.submit()
req2 = api.CachedRequest(datetime.timedelta(minutes=10),
- site=mysite, **params)
+ site=mysite, parameters=params)
data2 = req2.submit()
req3 = api.CachedRequest(datetime.timedelta(minutes=10),
- site=mysite, **params)
+ site=mysite, parameters=params)
data3 = req3.submit()
self.assertEqual(data1, data2)
self.assertEqual(data2, data3)
@@ -826,7 +828,7 @@
'titles': 'TestCachedRequest_test_internals ' + str(now),
}
req = api.CachedRequest(datetime.timedelta(minutes=10),
- site=mysite, **params)
+ site=mysite, parameters=params)
rv = req._load_cache()
self.assertFalse(rv)
self.assertIsNone(req._data)
@@ -888,7 +890,7 @@
def test_access_denied_notexist_username(self):
"""Test the query with a username which does not exist."""
self.site._username = ['Not registered username', None]
- req = api.Request(site=self.site, action='query')
+ req = api.Request(site=self.site, parameters={'action': 'query'})
self.assertRaises(pywikibot.NoUsername, req.submit)
# FIXME: T100965
self.assertRaises(api.APIError, req.submit)
@@ -909,7 +911,7 @@
if 'steward' in pywikibot.config.usernames:
del pywikibot.config.usernames['steward']
- req = api.Request(site=self.site, action='query')
+ req = api.Request(site=self.site, parameters={'action': 'query'})
self.assertRaises(pywikibot.NoUsername, req.submit)
# FIXME: T100965
self.assertRaises(api.APIError, req.submit)
diff --git a/tests/dry_api_tests.py b/tests/dry_api_tests.py
index 5266256..53b3cef 100644
--- a/tests/dry_api_tests.py
+++ b/tests/dry_api_tests.py
@@ -48,17 +48,23 @@
def setUp(self):
super(DryCachedRequestTests, self).setUp()
- self.parms = {'site': self.basesite,
- 'action': 'query',
+ self.parms = {'action': 'query',
'meta': 'userinfo'}
- self.req = CachedRequest(expiry=1, **self.parms)
- self.expreq = CachedRequest(expiry=0, **self.parms)
- self.diffreq = CachedRequest(expiry=1, site=self.basesite,
action='query', meta='siteinfo')
- self.diffsite = CachedRequest(expiry=1, site=self.altsite,
action='query', meta='userinfo')
+ self.req = CachedRequest(expiry=1, site=self.basesite,
+ parameters=self.parms)
+ self.expreq = CachedRequest(expiry=0, site=self.basesite,
+ parameters=self.parms)
+ self.diffreq = CachedRequest(
+ expiry=1, site=self.basesite,
+ parameters={'action': 'query', 'meta': 'siteinfo'})
+ self.diffsite = CachedRequest(
+ expiry=1, site=self.altsite,
+ parameters={'action': 'query', 'meta': 'userinfo'})
def test_expiry_formats(self):
self.assertEqual(self.req.expiry,
- CachedRequest(datetime.timedelta(days=1),
**self.parms).expiry)
+ CachedRequest(datetime.timedelta(days=1),
site=self.basesite,
+ parameters=self.parms).expiry)
def test_expired(self):
self.assertFalse(self.req._expired(datetime.datetime.now()))
@@ -137,13 +143,13 @@
def test_cachefile_path_different_users(self):
req = CachedRequest(expiry=1, site=self.mocksite,
- action='query', meta='siteinfo')
+ parameters={'action': 'query', 'meta': 'siteinfo'})
anonpath = req._cachefile_path()
self.mocksite._userinfo = {'name': u'MyUser'}
self.mocksite._loginstatus = 0
req = CachedRequest(expiry=1, site=self.mocksite,
- action='query', meta='siteinfo')
+ parameters={'action': 'query', 'meta': 'siteinfo'})
userpath = req._cachefile_path()
self.assertNotEqual(anonpath, userpath)
@@ -151,7 +157,7 @@
self.mocksite._userinfo = {'name': u'MySysop'}
self.mocksite._loginstatus = 1
req = CachedRequest(expiry=1, site=self.mocksite,
- action='query', meta='siteinfo')
+ parameters={'action': 'query', 'meta': 'siteinfo'})
sysoppath = req._cachefile_path()
self.assertNotEqual(anonpath, sysoppath)
@@ -162,13 +168,13 @@
self.mocksite._loginstatus = 0
req = CachedRequest(expiry=1, site=self.mocksite,
- action='query', meta='siteinfo')
+ parameters={'action': 'query', 'meta': 'siteinfo'})
en_user_path = req._cachefile_path()
self.mocksite._namespaces = {2: [u'مستخدم']}
req = CachedRequest(expiry=1, site=self.mocksite,
- action='query', meta='siteinfo')
+ parameters={'action': 'query', 'meta': 'siteinfo'})
expect = (u'MockSite()User(User:محمد الفلسطيني)' +
"[('action', 'query'), ('meta', 'siteinfo')]")
@@ -193,14 +199,16 @@
del site._userinfo
self.assertRaisesRegex(pywikibot.Error, ' without userinfo',
- Request, site=site, action='edit')
+ Request, site=site,
+ parameters={'action': 'edit'})
# Explicitly using str as the test expects it to be str (without the
# u-prefix) in Python 2 and this module is using unicode_literals
site._userinfo = {'name': str('1.2.3.4'), 'groups': []}
self.assertRaisesRegex(pywikibot.Error, " as IP '1.2.3.4'",
- Request, site=site, action='edit')
+ Request, site=site,
+ parameters={'action': 'edit'})
def test_unexpected_user(self):
"""Test Request object when username is not correct."""
@@ -208,7 +216,7 @@
site._userinfo = {'name': 'other_username', 'groups': []}
site._username[0] = 'myusername'
- Request(site=site, action='edit')
+ Request(site=site, parameters={'action': 'edit'})
def test_normal(self):
"""Test Request object when username is correct."""
@@ -216,7 +224,7 @@
site._userinfo = {'name': 'myusername', 'groups': []}
site._username[0] = 'myusername'
- Request(site=site, action='edit')
+ Request(site=site, parameters={'action': 'edit'})
class DryMimeTests(TestCase):
@@ -257,9 +265,9 @@
site = self.get_site()
site._username[0] = 'myusername'
site._userinfo = {'name': 'myusername', 'groups': []}
- req = Request(site=site, action="upload",
- file='MP_sounds.png', mime=True,
- filename=os.path.join(_images_dir, 'MP_sounds.png'))
+ parameters = {'action': 'upload', 'file': 'MP_sounds.png',
+ 'filename': os.path.join(_images_dir, 'MP_sounds.png')}
+ req = Request(site=site, mime=True, parameters=parameters)
self.assertEqual(req.mime, True)
@@ -419,8 +427,10 @@
def test_query_constructor(self):
"""Test QueryGenerator constructor."""
- qGen1 = QueryGenerator(site=self.get_site(), action="query",
meta="siteinfo")
- qGen2 = QueryGenerator(site=self.get_site(), meta="siteinfo")
+ qGen1 = QueryGenerator(site=self.site,
+ parameters={'action': 'query', 'meta':
'siteinfo'})
+ qGen2 = QueryGenerator(site=self.site,
+ parameters={'meta': 'siteinfo'})
self.assertCountEqual(qGen1.request._params.items(),
qGen2.request._params.items())
--
To view, visit https://gerrit.wikimedia.org/r/231971
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib9e55bdef4aca301ea44d132334bcd2a24047fd3
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: XZise <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits