jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/661901 )
Change subject: [tests] move DataSite tests into its own test file
......................................................................
[tests] move DataSite tests into its own test file
Change-Id: I0ae2eaa838cd813d1e1d3918ce6acbbe9721e665
---
M tests/__init__.py
A tests/datasite_tests.py
M tests/site_tests.py
3 files changed, 108 insertions(+), 92 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/__init__.py b/tests/__init__.py
index 8475379..911f15e 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -69,6 +69,7 @@
'category',
'cosmetic_changes',
'date',
+ 'datasite',
'deprecation',
'diff',
'djvu',
diff --git a/tests/datasite_tests.py b/tests/datasite_tests.py
new file mode 100644
index 0000000..c8ae749
--- /dev/null
+++ b/tests/datasite_tests.py
@@ -0,0 +1,106 @@
+"""Tests for the site module."""
+#
+# (C) Pywikibot team, 2014-2021
+#
+# Distributed under the terms of the MIT license.
+#
+import unittest
+
+from contextlib import suppress
+
+import pywikibot
+
+from tests.aspects import DefaultWikidataClientTestCase, WikidataTestCase
+
+
+class TestDataSitePreloading(WikidataTestCase):
+
+ """Test DataSite.preload_entities for repo pages."""
+
+ def test_item(self):
+ """Test that ItemPage preloading works for Item objects."""
+ datasite = self.get_repo()
+ items = [pywikibot.ItemPage(datasite, 'q' + str(num))
+ for num in range(1, 6)]
+
+ seen = []
+ for item in datasite.preload_entities(items):
+ self.assertIsInstance(item, pywikibot.ItemPage)
+ self.assertTrue(hasattr(item, '_content'))
+ self.assertNotIn(item, seen)
+ seen.append(item)
+ self.assertLength(seen, 5)
+
+ def test_item_as_page(self):
+ """Test that ItemPage preloading works for Page objects."""
+ site = self.get_site()
+ datasite = self.get_repo()
+ pages = [pywikibot.Page(site, 'q' + str(num))
+ for num in range(1, 6)]
+
+ seen = []
+ for item in datasite.preload_entities(pages):
+ self.assertIsInstance(item, pywikibot.ItemPage)
+ self.assertTrue(hasattr(item, '_content'))
+ self.assertNotIn(item, seen)
+ seen.append(item)
+ self.assertLength(seen, 5)
+
+ def test_property(self):
+ """Test that preloading works for properties."""
+ datasite = self.get_repo()
+ page = pywikibot.Page(datasite, 'P6')
+ property_page = next(datasite.preload_entities([page]))
+ self.assertIsInstance(property_page, pywikibot.PropertyPage)
+ self.assertTrue(hasattr(property_page, '_content'))
+
+
+class TestDataSiteClientPreloading(DefaultWikidataClientTestCase):
+
+ """Test DataSite.preload_entities for client pages."""
+
+ def test_non_item(self):
+ """Test that ItemPage preloading works with Page generator."""
+ mainpage = self.get_mainpage()
+ datasite = self.get_repo()
+
+ item = next(datasite.preload_entities([mainpage]))
+ self.assertIsInstance(item, pywikibot.ItemPage)
+ self.assertTrue(hasattr(item, '_content'))
+ self.assertEqual(item.id, 'Q5296')
+
+
+class TestDataSiteSearchEntities(WikidataTestCase):
+
+ """Test DataSite.search_entities."""
+
+ def test_general(self):
+ """Test basic search_entities functionality."""
+ datasite = self.get_repo()
+ pages = list(datasite.search_entities('abc', 'en', total=50))
+ self.assertIsNotEmpty(pages)
+ self.assertLessEqual(len(pages), 50)
+ pages = list(datasite.search_entities('alphabet', 'en',
+ type='property', total=50))
+ self.assertIsNotEmpty(pages)
+ self.assertLessEqual(len(pages), 50)
+
+ def test_continue(self):
+ """Test that continue parameter in search_entities works."""
+ datasite = self.get_repo()
+ kwargs = {'total': 50}
+ pages = datasite.search_entities('Rembrandt', 'en', **kwargs)
+ kwargs['continue'] = 1
+ pages_continue = datasite.search_entities('Rembrandt', 'en', **kwargs)
+ self.assertNotEqual(list(pages), list(pages_continue))
+
+ def test_invalid_language(self):
+ """Test behavior of search_entities with invalid language provided."""
+ datasite = self.get_repo()
+ with self.assertRaises(ValueError):
+ datasite.search_entities('abc', 'invalidlanguage')
+
+
+if __name__ == '__main__': # pragma: no cover
+ with suppress(SystemExit):
+ unittest.main()
diff --git a/tests/site_tests.py b/tests/site_tests.py
index a08cdad..32f8bf4 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -8,6 +8,7 @@
import random
import threading
import time
+import unittest
from collections.abc import Iterable, Mapping
from contextlib import suppress
@@ -25,12 +26,9 @@
AlteredDefaultSiteTestCase,
DefaultDrySiteTestCase,
DefaultSiteTestCase,
- DefaultWikidataClientTestCase,
DeprecationTestCase,
TestCase,
- unittest,
WikimediaDefaultSiteTestCase,
- WikidataTestCase,
)
from tests.basepage import BasePageLoadRevisionsCachingTestBase
@@ -3090,95 +3088,6 @@
break
-class TestDataSitePreloading(WikidataTestCase):
-
- """Test DataSite.preload_entities for repo pages."""
-
- def test_item(self):
- """Test that ItemPage preloading works for Item objects."""
- datasite = self.get_repo()
- items = [pywikibot.ItemPage(datasite, 'q' + str(num))
- for num in range(1, 6)]
-
- seen = []
- for item in datasite.preload_entities(items):
- self.assertIsInstance(item, pywikibot.ItemPage)
- self.assertTrue(hasattr(item, '_content'))
- self.assertNotIn(item, seen)
- seen.append(item)
- self.assertLength(seen, 5)
-
- def test_item_as_page(self):
- """Test that ItemPage preloading works for Page objects."""
- site = self.get_site()
- datasite = self.get_repo()
- pages = [pywikibot.Page(site, 'q' + str(num))
- for num in range(1, 6)]
-
- seen = []
- for item in datasite.preload_entities(pages):
- self.assertIsInstance(item, pywikibot.ItemPage)
- self.assertTrue(hasattr(item, '_content'))
- self.assertNotIn(item, seen)
- seen.append(item)
- self.assertLength(seen, 5)
-
- def test_property(self):
- """Test that preloading works for properties."""
- datasite = self.get_repo()
- page = pywikibot.Page(datasite, 'P6')
- property_page = next(datasite.preload_entities([page]))
- self.assertIsInstance(property_page, pywikibot.PropertyPage)
- self.assertTrue(hasattr(property_page, '_content'))
-
-
-class TestDataSiteClientPreloading(DefaultWikidataClientTestCase):
-
- """Test DataSite.preload_entities for client pages."""
-
- def test_non_item(self):
- """Test that ItemPage preloading works with Page generator."""
- mainpage = self.get_mainpage()
- datasite = self.get_repo()
-
- item = next(datasite.preload_entities([mainpage]))
- self.assertIsInstance(item, pywikibot.ItemPage)
- self.assertTrue(hasattr(item, '_content'))
- self.assertEqual(item.id, 'Q5296')
-
-
-class TestDataSiteSearchEntities(WikidataTestCase):
-
- """Test DataSite.search_entities."""
-
- def test_general(self):
- """Test basic search_entities functionality."""
- datasite = self.get_repo()
- pages = list(datasite.search_entities('abc', 'en', total=50))
- self.assertIsNotEmpty(pages)
- self.assertLessEqual(len(pages), 50)
- pages = list(datasite.search_entities('alphabet', 'en',
- type='property', total=50))
- self.assertIsNotEmpty(pages)
- self.assertLessEqual(len(pages), 50)
-
- def test_continue(self):
- """Test that continue parameter in search_entities works."""
- datasite = self.get_repo()
- kwargs = {'total': 50}
- pages = datasite.search_entities('Rembrandt', 'en', **kwargs)
- kwargs['continue'] = 1
- pages_continue = datasite.search_entities('Rembrandt', 'en', **kwargs)
- self.assertNotEqual(list(pages), list(pages_continue))
-
- def test_invalid_language(self):
- """Test behavior of search_entities with invalid language provided."""
- datasite = self.get_repo()
- with self.assertRaises(ValueError):
- datasite.search_entities('abc',
- 'invalidlanguage')
-
-
class TestSametitleSite(TestCase):
"""Test APISite.sametitle on sites with known behaviour."""
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/661901
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I0ae2eaa838cd813d1e1d3918ce6acbbe9721e665
Gerrit-Change-Number: 661901
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits