https://bugzilla.wikimedia.org/show_bug.cgi?id=71451
Bug ID: 71451 Summary: Site cache does not distinguish between classes Product: Pywikibot Version: core (2.0) Hardware: All OS: All Status: NEW Severity: major Priority: Unprioritized Component: General Assignee: Pywikipedia-bugs@lists.wikimedia.org Reporter: jayvdb@gmail.com Web browser: --- Mobile Platform: ---
pywikibot has a cache of Site objects in the method pywikibot.Site. It uses a key of (family_name, site_code, username). If the site is a data repository, and first access of the site is via APISite.data_repository(), a DataSite object will be cached, and subsequent requests for an APISite will return a DataSite instead of an APISite.
DataSite is an APISite, but it has many methods marked as NotImplemented.
Steps to reproduce: 1. Set the user-config.py default site to ar.wikipedia 2. Instantiate a Wikidata client site object for ar.wikipedia 3. Request the Wikidata repo object 4. Instantiate a Wikidata repo site object for wikidata.wikidata
Expected results: The object returned from step 4 will be an APISite
Actual results: The object returned from step 4 will be a DataSite
$ python pwb.py shell Welcome to the Pywikibot interactive shell!
import pywikibot s = pywikibot.Site('ar', 'wikipedia') ds = s.data_repository() ds
DataSite("wikidata", "wikidata")
s2 = pywikibot.Site('wikidata', 'wikidata') s2
DataSite("wikidata", "wikidata")
https://bugzilla.wikimedia.org/show_bug.cgi?id=71451
John Mark Vandenberg jayvdb@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |71398
--- Comment #1 from John Mark Vandenberg jayvdb@gmail.com --- The cache key has been this way since the beginning of pwb20
http://git.wikimedia.org/blobdiff/pywikibot%2Fcore.git/c636fd0db2b41a618bcbc...
It only became a problem since the DataSite class was added in 2012
http://git.wikimedia.org/commit/pywikibot%2Fcore.git/aa0ebedcd6a9b3e13af7f40...
https://bugzilla.wikimedia.org/show_bug.cgi?id=71451
--- Comment #2 from John Mark Vandenberg jayvdb@gmail.com --- fwiw, this bug was exposed by running more tests on different default site configurations.
https://travis-ci.org/wikimedia/pywikibot-core/jobs/36525125
https://bugzilla.wikimedia.org/show_bug.cgi?id=71451
--- Comment #3 from Gerrit Notification Bot gerritadmin@wikimedia.org --- Change 163784 had a related patch set uploaded by John Vandenberg: Use Site interface in cache key
https://gerrit.wikimedia.org/r/163784
https://bugzilla.wikimedia.org/show_bug.cgi?id=71451
Gerrit Notification Bot gerritadmin@wikimedia.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |PATCH_TO_REVIEW
https://bugzilla.wikimedia.org/show_bug.cgi?id=71451
--- Comment #4 from Gerrit Notification Bot gerritadmin@wikimedia.org --- Change 163784 merged by jenkins-bot: Use Site interface in cache key
https://gerrit.wikimedia.org/r/163784
https://bugzilla.wikimedia.org/show_bug.cgi?id=71451
Mpaa mpaa.wiki@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|PATCH_TO_REVIEW |RESOLVED CC| |mpaa.wiki@gmail.com Resolution|--- |FIXED
pywikipedia-bugs@lists.wikimedia.org