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: [email protected]
          Reporter: [email protected]
       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")

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to