Page MenuHomePhabricator

saving a page with empty text should be allowed with force flag
Closed, ResolvedPublic

Description

Author: ian

Description:
http://lists.wikimedia.org/pipermail/pywikipedia-l/2014-May/008740.html

There is a force flag, in the code, but it is not used to allow saving empty pages. It should be. Probably an easy fix along with this is that the correct exception is caught in Page._save and not re-raised - instead, a different
Exception is raised, which makes it harder to debug the code.

Here is an example script, and the error when running it

import pywikibot
site = pywikibot.Site()
page = pywikibot.Page(site, "MediaWiki:Lastmodifiedat")
page.text = ""
page.save()

Logging in to ianwiki:en as Ian Kelling
Traceback (most recent call last):

File "pwb.py", line 143, in <module>
  run_python_file(fn, argv, argvu)
File "pwb.py", line 67, in run_python_file
  exec(compile(source, filename, "exec"), main_mod.__dict__)
File "scripts/iansetup.py", line 5, in <module>
  page.save()
File "/a/opt/pywikibot/pywikibot/page.py", line 858, in save
  **kwargs)
File "/a/opt/pywikibot/pywikibot/page.py", line 884, in _save
  raise pywikibot.PageNotSaved("%s: %s" % (link, err))

pywikibot.exceptions.PageNotSaved
CRITICAL: Waiting for 1 network thread(s) to finish. Press ctrl-c to abort
<class 'pywikibot.exceptions.PageNotSaved'>

The cause is in site.py, in def editpage, line 2699:

if not text:
    raise Error("editpage: no text to be saved")

Version: core-(2.0)
Severity: normal

Details

Reference
bz65971

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 3:20 AM
bzimport set Reference to bz65971.
bzimport added a subscriber: Unknown Object (????).

ian wrote:

(In reply to xqt from comment #1)

Isn't this bug already solved with https://gerrit.wikimedia.org/r/#/c/135747/

Yes, except for the error not propogating right, which can go into a different bug. I wasn't aware of that patch.