jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/377733 )
Change subject: Add test to ensure WbUnknown is used for unknown datatypes
......................................................................
Add test to ensure WbUnknown is used for unknown datatypes
Change-Id: I07ca798a78a91dfefb49a17b6f87c50f02800878
---
A tests/pages/Q60_unknown_datatype.wd
M tests/wikibase_tests.py
2 files changed, 75 insertions(+), 0 deletions(-)
Approvals:
Dalba: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/pages/Q60_unknown_datatype.wd b/tests/pages/Q60_unknown_datatype.wd
new file mode 100644
index 0000000..54e1489
--- /dev/null
+++ b/tests/pages/Q60_unknown_datatype.wd
@@ -0,0 +1,45 @@
+{
+ "id": "Q60",
+ "type": "item",
+ "lastrevid": 122836617,
+ "pageid": 186,
+ "aliases": {
+ "en": [
+ {
+ "language": "en",
+ "value": "foo bar"
+ }
+ ]
+ },
+ "labels": {
+ "en": {
+ "language": "en",
+ "value": "Foobar"
+ }
+ },
+ "descriptions": {
+ "en": {
+ "language": "en",
+ "value": "An item with an unknown foobar datatype"
+ }
+ },
+ "claims": {
+ "P99999": [
+ {
+ "id": "Q60$efebe507-4e9f-4254-dc47-fake",
+ "mainsnak": {
+ "snaktype": "value",
+ "property": "P99999",
+ "datatype": "foo-unknown-bar",
+ "datavalue": {
+ "value": "foobar",
+ "type": "bar-unknown-foo"
+ }
+ },
+ "type": "statement",
+ "rank": "normal"
+ }
+ ]
+ },
+ "sitelinks": {}
+}
diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py
index e5ae318..44bbe68 100644
--- a/tests/wikibase_tests.py
+++ b/tests/wikibase_tests.py
@@ -12,6 +12,11 @@
from decimal import Decimal
+try:
+ from unittest import mock
+except ImportError:
+ import mock
+
import pywikibot
from pywikibot import pagegenerators
@@ -829,6 +834,31 @@
{'text': 'Test this!', 'language':
'en'})
+class TestLoadUnknownType(WikidataTestCase):
+
+ """Test unknown datatypes being loaded as
WbUnknown."""
+
+ dry = True
+
+ def setUp(self):
+ """Setup test."""
+ super(TestLoadUnknownType, self).setUp()
+ wikidata = self.get_repo()
+ self.wdp = ItemPage(wikidata, 'Q60')
+ self.wdp.id = 'Q60'
+ with open(join_pages_path('Q60_unknown_datatype.wd')) as f:
+ self.wdp._content = json.load(f)
+
+ def test_load_unknown(self):
+ """Ensure unknown value is loaded but raises a
warning."""
+ with mock.patch.object(pywikibot, 'warning', autospec=True) as warn:
+ self.wdp.get()
+ unknown_value = self.wdp.claims['P99999'][0].getTarget()
+ self.assertIsInstance(unknown_value, pywikibot.WbUnknown)
+ warn.assert_called_once_with(
+ 'foo-unknown-bar datatype is not supported yet.')
+
+
class TestItemPageExtensibility(TestCase):
"""Test ItemPage extensibility."""
--
To view, visit
https://gerrit.wikimedia.org/r/377733
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I07ca798a78a91dfefb49a17b6f87c50f02800878
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Lokal Profil <lokal.profil(a)gmail.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Lokal Profil <lokal.profil(a)gmail.com>
Gerrit-Reviewer: Magul <tomasz.magulski(a)gmail.com>
Gerrit-Reviewer: Mpaa <mpaa.wiki(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>