jenkins-bot has submitted this change and it was merged.
Change subject: Add edit tests for WbMonolingualText
......................................................................
Add edit tests for WbMonolingualText
Also adds the monolingualtext type to page.py which is required in
order to actually add such claims.
Bug: T123856
Change-Id: I88be5687f7df914bceb4497206947324fc593947
---
M pywikibot/page.py
M tests/edit_failure_tests.py
M tests/wikibase_edit_tests.py
M tests/wikibase_tests.py
4 files changed, 57 insertions(+), 2 deletions(-)
Approvals:
John Vandenberg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/page.py b/pywikibot/page.py
index 48e9c36..82a9028 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -4078,6 +4078,7 @@
'url': basestring,
'time': pywikibot.WbTime,
'quantity': pywikibot.WbQuantity,
+ 'monolingualtext': pywikibot.WbMonolingualText,
}
value_types = {'wikibase-item': 'wikibase-entityid',
diff --git a/tests/edit_failure_tests.py b/tests/edit_failure_tests.py
index 17ed20e..395a516 100644
--- a/tests/edit_failure_tests.py
+++ b/tests/edit_failure_tests.py
@@ -129,6 +129,28 @@
item = pywikibot.ItemPage(repo, 'Q6')
self.assertRaises(pywikibot.PageNotSaved, item.save)
+ def _make_WbMonolingualText_claim(self, repo, text, language):
+ """Make a WbMonolingualText and set its value."""
+ claim = pywikibot.page.Claim(repo, 'P271', datatype='monolingualtext')
+ target = pywikibot.WbMonolingualText(text=text, language=language)
+ claim.setTarget(target)
+ return claim
+
+ def test_WbMonolingualText_invalid_language(self):
+ """Attempt adding a monolingual text with an invalid language."""
+ repo = self.get_repo()
+ item = pywikibot.ItemPage(repo, 'Q68')
+ claim = self._make_WbMonolingualText_claim(repo, text='Test this!',
+ language='foo')
+ self.assertAPIError('modification-failed', None, item.addClaim, claim)
+
+ def test_WbMonolingualText_invalid_text(self):
+ """Attempt adding a monolingual text with an invalid non-string
text."""
+ repo = self.get_repo()
+ item = pywikibot.ItemPage(repo, 'Q68')
+ claim = self._make_WbMonolingualText_claim(repo, text=123456,
language='en')
+ self.assertAPIError('invalid-snak', None, item.addClaim, claim)
+
if __name__ == '__main__':
try:
diff --git a/tests/wikibase_edit_tests.py b/tests/wikibase_edit_tests.py
index fe9eccc..a350cf7 100644
--- a/tests/wikibase_edit_tests.py
+++ b/tests/wikibase_edit_tests.py
@@ -1,5 +1,10 @@
# -*- coding: utf-8 -*-
-"""Tests for editing Wikibase items."""
+"""
+Tests for editing Wikibase items.
+
+Tests which should fail should instead be in the TestWikibaseSaveTest
+class in edit_failiure_tests.py
+"""
#
# (C) Pywikibot team, 2014
#
@@ -172,6 +177,33 @@
self.assertEqual(new_item.getRedirectTarget(), target_item)
+class TestWbMonolingualText(WikibaseTestCase):
+
+ """Run wikibase write tests for WbMonolingualText."""
+
+ family = 'wikidata'
+ code = 'test'
+
+ user = True
+ write = True
+
+ def test_WbMonolingualText_edit(self):
+ """Attempt adding a monolingual text with valid input."""
+ # Clean the slate in preparation for test."""
+ testsite = self.get_repo()
+ item = pywikibot.ItemPage(testsite, 'Q68')
+ item.get()
+ if 'P271' in item.claims:
+ item.removeClaims(item.claims['P271'])
+ item.get(force=True)
+
+ # set new claim
+ claim = pywikibot.page.Claim(testsite, 'P271',
datatype='monolingualtext')
+ target = pywikibot.WbMonolingualText(text='Test this!', language='en')
+ claim.setTarget(target)
+ item.addClaim(claim)
+
+
class TestWikibaseRemoveQualifier(WikibaseTestCase):
"""Run wikibase write tests to remove qualifiers."""
diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py
index 53d7cee..3d844b7 100644
--- a/tests/wikibase_tests.py
+++ b/tests/wikibase_tests.py
@@ -244,7 +244,7 @@
q = pywikibot.WbMonolingualText.fromWikibase({'text': 'Test this!',
'language': u'en'})
self.assertEqual(q.toWikibase(),
- {'text': 'Test this!', 'language': 'en', })
+ {'text': 'Test this!', 'language': 'en'})
def test_WbMonolingualText_errors(self):
# test WbMonolingualText error handling
--
To view, visit https://gerrit.wikimedia.org/r/264935
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I88be5687f7df914bceb4497206947324fc593947
Gerrit-PatchSet: 5
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Lokal Profil <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Lokal Profil <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits