本文整理汇总了Python中pywikibot.data.api.CachedRequest类的典型用法代码示例。如果您正苦于以下问题:Python CachedRequest类的具体用法?Python CachedRequest怎么用?Python CachedRequest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CachedRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: refresh
def refresh(site, sysop=False):
"""Fetch the watchlist."""
if not site.logged_in(sysop=sysop):
site.login(sysop=sysop)
params = {
'action': 'query',
'list': 'watchlistraw',
'wrlimit': config.special_page_limit,
}
pywikibot.output(u'Retrieving watchlist for %s via API.' % str(site))
# pywikibot.put_throttle() # It actually is a get, but a heavy one.
watchlist = []
while True:
req = CachedRequest(config.API_config_expiry, site=site, **params)
data = req.submit()
if 'error' in data:
raise RuntimeError('ERROR: %s' % data)
watchlist.extend([w['title'] for w in data['watchlistraw']])
if 'query-continue' in data:
params.update(data['query-continue']['watchlistraw'])
else:
break
return watchlist
示例2: setUp
def setUp(self):
super(DryCachedRequestTests, self).setUp()
self.parms = {"site": self.basesite, "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")
示例3: setUp
def setUp(self):
self.parms = {'site': pywikibot.Site('en'),
'action': 'query',
'meta': 'userinfo'}
self.req = CachedRequest(expiry=1, **self.parms)
self.expreq = CachedRequest(expiry=0, **self.parms)
self.diffreq = CachedRequest(expiry=1, site=pywikibot.Site('en'), action='query', meta='siteinfo')
self.diffsite = CachedRequest(expiry=1, site=pywikibot.Site('de'), action='query', meta='userinfo')
示例4: setUp
def setUp(self):
super(DryCachedRequestTests, self).setUp()
self.parms = {'site': self.basesite,
'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')
示例5: test_unicode
def test_unicode(self):
"""Test caching with Unicode content."""
self.mocksite._userinfo = {'name': u'محمد الفلسطيني'}
self.mocksite._loginstatus = 0
req = CachedRequest(expiry=1, site=self.mocksite,
parameters={'action': 'query', 'meta': 'siteinfo'})
en_user_path = req._cachefile_path()
self.mocksite._namespaces = {2: [u'مستخدم']}
req = CachedRequest(expiry=1, site=self.mocksite,
parameters={'action': 'query', 'meta': 'siteinfo'})
expect = (u'MockSite()User(User:محمد الفلسطيني)' +
"[('action', 'query'), ('meta', 'siteinfo')]")
self.assertEqual(repr(req._uniquedescriptionstr()), repr(expect))
self.assertEqual(req._uniquedescriptionstr().encode('utf-8'),
expect.encode('utf-8'))
ar_user_path = req._cachefile_path()
self.assertEqual(en_user_path, ar_user_path)
示例6: refresh_all
def refresh_all(sysop=False):
"""Reload watchlists for all wikis where a watchlist is already present."""
cache_path = CachedRequest._get_cache_dir()
files = os.listdir(cache_path)
seen = []
for filename in files:
entry = CacheEntry(cache_path, filename)
entry._load_cache()
entry.parse_key()
entry._rebuild()
if entry.site not in seen:
if entry._data.get('watchlistraw'):
refresh(entry.site, sysop)
seen.append(entry.site)
示例7: setUp
def setUp(self):
"""Initialize the fake requests."""
super(DryCachedRequestTests, self).setUp()
self.parms = {"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"})
# When using ** the paramters are still unicode
self.deprecated_explicit = CachedRequest(expiry=1, site=self.basesite, action="query", meta="userinfo")
self.deprecated_asterisks = CachedRequest(expiry=1, site=self.basesite, **self.parms)
示例8: test_cachefile_path_different_users
def test_cachefile_path_different_users(self):
# Mock basesite object to test this.
class MockSite(pywikibot.site.APISite):
_loginstatus = pywikibot.site.LoginStatus.NOT_ATTEMPTED
_namespaces = {2: 'User'}
def __init__(self):
self._user = 'anon'
def user(self):
return self._user
def encoding(self):
return 'utf-8'
def encodings(self):
return []
def _getsiteinfo(self):
self._siteinfo = {'case': 'first-letter'}
return {}
def __repr__(self):
return "MockSite()"
def __getattr__(self, attr):
raise Exception("Attribute %r not defined" % attr)
site = MockSite()
req = CachedRequest(expiry=1, site=site, action='query', meta='siteinfo')
anonpath = req._cachefile_path()
site._userinfo = {'name': u'user'}
site._loginstatus = 0
req = CachedRequest(expiry=1, site=site, action='query', meta='siteinfo')
userpath = req._cachefile_path()
self.assertNotEqual(anonpath, userpath)
site._userinfo = {'name': u'sysop'}
site._loginstatus = 1
req = CachedRequest(expiry=1, site=site, action='query', meta='siteinfo')
sysoppath = req._cachefile_path()
self.assertNotEqual(anonpath, sysoppath)
self.assertNotEqual(userpath, sysoppath)
示例9: test_cachefile_path_different_users
def test_cachefile_path_different_users(self):
req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
anonpath = req._cachefile_path()
self.mocksite._userinfo = {"name": "MyUser"}
self.mocksite._loginstatus = 0
req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
userpath = req._cachefile_path()
self.assertNotEqual(anonpath, userpath)
self.mocksite._userinfo = {"name": "MySysop"}
self.mocksite._loginstatus = 1
req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
sysoppath = req._cachefile_path()
self.assertNotEqual(anonpath, sysoppath)
self.assertNotEqual(userpath, sysoppath)
示例10: setUp
def setUp(self):
"""Initialize the fake requests."""
super(DryCachedRequestTests, self).setUp()
self.parms = {'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'})
# When using ** the paramters are still unicode
self.deprecated_explicit = CachedRequest(
expiry=1, site=self.basesite, action='query', meta='userinfo')
self.deprecated_asterisks = CachedRequest(
expiry=1, site=self.basesite, **self.parms)
示例11: test_unicode
def test_unicode(self):
self.mocksite._userinfo = {"name": "محمد الفلسطيني"}
self.mocksite._loginstatus = 0
req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
en_user_path = req._cachefile_path()
self.mocksite._namespaces = {2: ["مستخدم"]}
req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
expect = "MockSite()User(User:محمد الفلسطيني)" + "[('action', 'query'), ('meta', 'siteinfo')]"
self.assertEqual(repr(req._uniquedescriptionstr()), repr(expect))
self.assertEqual(req._uniquedescriptionstr().encode("utf-8"), expect.encode("utf-8"))
ar_user_path = req._cachefile_path()
self.assertEqual(en_user_path, ar_user_path)
示例12: test_cachefile_path_different_users
def test_cachefile_path_different_users(self):
req = CachedRequest(expiry=1, site=self.mocksite,
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')
userpath = req._cachefile_path()
self.assertNotEqual(anonpath, userpath)
self.mocksite._userinfo = {'name': u'MySysop'}
self.mocksite._loginstatus = 1
req = CachedRequest(expiry=1, site=self.mocksite,
action='query', meta='siteinfo')
sysoppath = req._cachefile_path()
self.assertNotEqual(anonpath, sysoppath)
self.assertNotEqual(userpath, sysoppath)
示例13: test_cachefile_path_different_users
def test_cachefile_path_different_users(self):
"""Test and compare the file paths when different usernames are used."""
req = CachedRequest(expiry=1, site=self.mocksite,
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,
parameters={'action': 'query', 'meta': 'siteinfo'})
userpath = req._cachefile_path()
self.assertNotEqual(anonpath, userpath)
self.mocksite._userinfo = {'name': u'MySysop'}
self.mocksite._loginstatus = 1
req = CachedRequest(expiry=1, site=self.mocksite,
parameters={'action': 'query', 'meta': 'siteinfo'})
sysoppath = req._cachefile_path()
self.assertNotEqual(anonpath, sysoppath)
self.assertNotEqual(userpath, sysoppath)
示例14: test_unicode
def test_unicode(self):
self.mocksite._userinfo = {'name': u'محمد الفلسطيني'}
self.mocksite._loginstatus = 0
req = CachedRequest(expiry=1, site=self.mocksite,
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')
expect = u'MockSite()User(User:محمد الفلسطيني)' + \
"[('action', 'query'), ('meta', 'siteinfo')]"
self.assertEqual(repr(req._uniquedescriptionstr()), repr(expect))
self.assertEqual(req._uniquedescriptionstr().encode('utf-8'),
expect.encode('utf-8'))
ar_user_path = req._cachefile_path()
self.assertEqual(en_user_path, ar_user_path)
示例15: load_tests
test_list.append(module_class_name)
tests = loader.loadTestsFromNames(test_list)
suite = unittest.TestSuite()
suite.addTests(tests)
return suite
def load_tests(loader=unittest.loader.defaultTestLoader,
tests=None, pattern=None):
"""Load the default modules."""
return collector(loader)
CachedRequest._get_cache_dir = staticmethod(
lambda *args: CachedRequest._make_dir(_cache_dir))
# Travis-CI builds are set to retry twice, which aims to reduce the number
# of 'red' builds caused by intermittant server problems, while also avoiding
# the builds taking a long time due to retries.
# The following allows builds to retry twice, but higher default values are
# overridden here to restrict retries to only 1, so developer builds fail more
# frequently in code paths resulting from mishandled server problems.
if config.max_retries > 2:
print('max_retries reduced from %d to 1 for tests' % config.max_retries)
config.max_retries = 1
cache_misses = 0
cache_hits = 0