jenkins-bot submitted this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[cleanup] use site._update_page with loadimageinfo method

- additional parameter verify_imageinfo in site._update_page will
check 'imageinfo' content in every pageitem and probably raise
an exception
- call site._update_page with verify_imageinfo=True inside
loadimageinfo and remove all other stuff for backward compatibility.
loadimageinfo does not return a generator anymore.

Change-Id: I9093ece5c55cd6217b40a71a68ebb5ba53a77806
---
M pywikibot/site/__init__.py
1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/pywikibot/site/__init__.py b/pywikibot/site/__init__.py
index 893218b..8d9a282 100644
--- a/pywikibot/site/__init__.py
+++ b/pywikibot/site/__init__.py
@@ -1177,13 +1177,30 @@
return self.namespaces[num]
return self.namespaces[num][0]

- def _update_page(self, page, query):
+ def _update_page(self, page, query, verify_imageinfo: bool = False):
+ """Update page attributes.
+
+ @param page: page object to be updated
+ @param query: a api.QueryGenerator
+ @param verify_imageinfo: if given, every pageitem is checked
+ whether 'imageinfo' is missing. In that case an exception
+ is raised.
+
+ @raises NoPage: 'missing' key is found in pageitem
+ @raises PageRelatedError: 'imageinfo' is missing in pageitem
+ """
for pageitem in query:
if not self.sametitle(pageitem['title'],
page.title(with_section=False)):
raise InconsistentTitleReceived(page, pageitem['title'])
api.update_page(page, pageitem, query.props)

+ if verify_imageinfo and 'imageinfo' not in pageitem:
+ if 'missing' in pageitem:
+ raise NoPage(page)
+ raise PageRelatedError(
+ page, 'loadimageinfo: Query on %s returned no imageinfo')
+
def loadpageinfo(self, page, preload=False):
"""Load page info from api and store in page attributes.

@@ -1312,23 +1329,7 @@
'url', 'size', 'sha1', 'mime',
'metadata', 'archivename'],
**args)
- # kept for backward compatibility
- # TODO: when backward compatibility can be broken, adopt
- # self._update_page() pattern and remove return
- for pageitem in query:
- if not self.sametitle(pageitem['title'], title):
- raise InconsistentTitleReceived(page, pageitem['title'])
- api.update_page(page, pageitem, query.props)
-
- if 'imageinfo' not in pageitem:
- if 'missing' in pageitem:
- raise NoPage(page)
- raise PageRelatedError(
- page,
- 'loadimageinfo: Query on %s returned no imageinfo')
-
- return (pageitem['imageinfo']
- if history else pageitem['imageinfo'][0])
+ self._update_page(page, query, verify_imageinfo=True)

@deprecated('Check the content model instead', since='20150128',
future_warning=True)

To view, visit change 658043. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I9093ece5c55cd6217b40a71a68ebb5ba53a77806
Gerrit-Change-Number: 658043
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Mpaa <mpaa.wiki@gmail.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged