Merlijn van Deen has uploaded a new change for review. https://gerrit.wikimedia.org/r/132807
Change subject: [WIP] Make cached requests depend on logged in user ...................................................................... [WIP] Make cached requests depend on logged in user Need to fix https://travis-ci.org/wikimedia/pywikibot-core/builds/24551222 Probably because the cached request tries to use .user() which causes a request -> recursion. Maybe use cookies instead? Change-Id: I5e480be86a0b7b6a5907cf71690ba9ebed0b04b6 --- M pywikibot/data/api.py M tests/dry_api_tests.py 2 files changed, 30 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core refs/changes/07/132807/1 diff --git a/pywikibot/data/api.py b/pywikibot/data/api.py index a12764a..9293def 100644 --- a/pywikibot/data/api.py +++ b/pywikibot/data/api.py @@ -457,7 +457,7 @@ pass def _uniquedescriptionstr(self): - return (repr(self.site) + repr(sorted(self.iteritems()))) + return (repr(self.site) + repr(self.site.user()) + repr(sorted(self.iteritems()))) def _create_file_name(self): self.http_params() # normalize self.iteritems() diff --git a/tests/dry_api_tests.py b/tests/dry_api_tests.py index 0e16a17..99d7757 100644 --- a/tests/dry_api_tests.py +++ b/tests/dry_api_tests.py @@ -44,6 +44,35 @@ self.assertNotEqual(self.req._cachefile_path(), self.diffreq._cachefile_path()) self.assertNotEqual(self.req._cachefile_path(), self.diffsite._cachefile_path()) + def test_cachefile_path_different_users(self): + # Mock basesite object to test this. + class MockSite(pywikibot.site.BaseSite): + def __init__(self): + self._user = 'user' + + def user(self): + return self._user + + def encoding(self): + return 'utf-8' + + 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') + userpath = req._cachefile_path() + + site._user = 'sysop' + + req = CachedRequest(expiry=1, site=site, action='query', meta='siteinfo') + sysoppath = req._cachefile_path() + + self.assertNotEqual(userpath, sysoppath) + def test_expired(self): self.assertFalse(self.req._expired(datetime.datetime.now())) self.assertTrue(self.req._expired(datetime.datetime.now() - datetime.timedelta(days=2))) -- To view, visit https://gerrit.wikimedia.org/r/132807 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5e480be86a0b7b6a5907cf71690ba9ebed0b04b6 Gerrit-PatchSet: 1 Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-Owner: Merlijn van Deen <valhall...@arctus.nl> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits