binbot created this task.
binbot added a project: Pywikibot.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.

TASK DESCRIPTION
  I file here two bugs because they are closely connected. The whole process of 
handling the data should be revised. Involved methods are at lest (others may 
be):
  
    get()
    save()
    exists()
    has_content()
  
  `delete()` seems to work well.
  **Steps to replicate the issue**:
  
    >>> page = pywikibot.Page(site, 'Teszt')  # It does not exist at his point
    >>> # Now I create [[Teszt]]
    ...
    >>> page.get()
    'Teszt'
    >>> page.text
    'Teszt'
    >>> # Now I delete [[Teszt]]
    ...
    >>> page.get()
    'Teszt'
    >>> page.text
    'Teszt'
    >>> page.exists()
    True
    >>> page.get(force=True)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "c:\Pywikibot\pywikibot\page\_page.py", line 397, in get
        self._getInternals()
      File "c:\Pywikibot\pywikibot\page\_page.py", line 436, in _getInternals
        self.site.loadrevisions(self, content=True)
      File "c:\Pywikibot\pywikibot\site\_generators.py", line 772, in 
loadrevisions
        raise NoPageError(page)
    pywikibot.exceptions.NoPageError: Page [[hu:Teszt]] doesn't exist.
    >>> page.exists()
    True
    >>>
  
  **What happens?**:
  After `page.get(force=True)`  the page data were not refreshed suffuciently. 
`page.exists()` believes the page is still existing.
  
  **What should have happened instead?**:
  `page.get(force=True)` should refresh `self.pageid` so that `page.exists()`  
will not be mislead. 
  I don't know hat further measures are neccessary for other methods.
  
  Dosumentation of  `page.exists()` should clearly descibe what happens and how 
to force rechecking.
  
  **Steps to replicate the issue**:
  
    page = pywikibot.Page(site, 'Teszt')
    print('Exists:', page.exists())
    print('Id:', page.pageid)
    page.text = 'Teszt'
    page.save('Botteszt')
    print('Exists:', page.exists())
    print('Id:', page.pageid)
  
  **What happens?**:
  
    Exists: False
    Id: 0
    Page [[Teszt]] saved
    Exists: False
    Id: 0
  
  **What should have happened instead?**:
  Page.revid should have updated upon save()
  
  **Software version** (skip for WMF-hosted wikis like Wikipedia): 8.0.0

TASK DETAIL
  https://phabricator.wikimedia.org/T330980

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: binbot
Cc: Aklapper, pywikibot-bugs-list, binbot, PotsdamLamb, Jyoo1011, JohnsonLee01, 
SHEKH, Dijkstra, Khutuck, Zkhalido, Viztor, Wenyi, Tbscho, MayS, Framawiki, 
Mdupont, JJMC89, Dvorapa, Altostratus, Avicennasis, mys_721tx, Xqt, jayvdb, 
Masti, Alchimista
_______________________________________________
pywikibot-bugs mailing list -- pywikibot-bugs@lists.wikimedia.org
To unsubscribe send an email to pywikibot-bugs-le...@lists.wikimedia.org

Reply via email to