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

Reply via email to