jenkins-bot has submitted this change and it was merged.
Change subject: Add fallback for v1.14 siteinfo 'fileextensions'
......................................................................
Add fallback for v1.14 siteinfo 'fileextensions'
Change-Id: I97892edc04f9548aba15b69206a7b8ecaa98a901
---
M pywikibot/site.py
M tests/site_tests.py
M tests/utils.py
3 files changed, 33 insertions(+), 12 deletions(-)
Approvals:
XZise: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 695359c..be830ba 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -1270,6 +1270,9 @@
'levels': ['', 'autoconfirmed', 'sysop'],
'types': ['create', 'edit', 'move', 'upload']
}
+ elif key == 'fileextensions':
+ # the default file extensions in MediaWiki
+ return [{'ext': ext} for ext in ['png', 'gif', 'jpg', 'jpeg']]
else:
return pywikibot.tools.EMPTY_DEFAULT
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 0b9c726..84fdf31 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -33,7 +33,7 @@
DefaultWikidataClientTestCase,
AlteredDefaultSiteTestCase,
)
-from tests.utils import allowed_failure, allowed_failure_if
+from tests.utils import allowed_failure, allowed_failure_if, entered_loop
from tests.basepage_tests import BasePageLoadRevisionsCachingTestBase
if sys.version_info[0] > 2:
@@ -1765,7 +1765,7 @@
self.assertEqual(len(mypage._revisions), 12)
-class TestSiteInfo(WikimediaDefaultSiteTestCase):
+class TestSiteInfo(DefaultSiteTestCase):
"""Test cases for Site metadata and capabilities."""
@@ -1788,20 +1788,31 @@
self.assertEqual(mysite.case(), mysite.siteinfo['case'])
self.assertEqual(re.findall("\$1", mysite.siteinfo['articlepath']),
["$1"])
- def entered_loop(iterable):
- for iterable_item in iterable:
- return True
- return False
-
+ def test_properties_with_defaults(self):
+ """Test the siteinfo properties with defaults."""
+ # This does not test that the defaults work correct,
+ # unless the default site is a version needing these defaults
+ # 'fileextensions' introduced in v1.14:
+ self.assertIsInstance(self.site.siteinfo.get('fileextensions'), list)
+ self.assertIn('fileextensions', self.site.siteinfo)
+ self.assertIn({'ext': 'png'}, self.site.siteinfo['fileextensions'])
+ # 'restrictions' introduced in v1.23:
+ mysite = self.site
self.assertIsInstance(mysite.siteinfo.get('restrictions'), dict)
self.assertIn('restrictions', mysite.siteinfo)
- # the following line only works in 1.23+
- self.assertTrue(mysite.siteinfo.is_recognised('restrictions'))
- del mysite.siteinfo._cache['restrictions']
- self.assertIsInstance(mysite.siteinfo.get('restrictions',
cache=False), dict)
- self.assertNotIn('restrictions', mysite.siteinfo)
+ self.assertIn('cascadinglevels', self.site.siteinfo['restrictions'])
+ def test_no_cache(self):
+ """Test siteinfo caching can be disabled."""
+ if 'fileextensions' in self.site.siteinfo._cache:
+ del self.site.siteinfo._cache['fileextensions']
+ self.site.siteinfo.get('fileextensions', cache=False)
+ self.assertNotIn('fileextensions', self.site.siteinfo)
+
+ def test_not_exists(self):
+ """Test accessing a property not in siteinfo."""
not_exists = 'this-property-does-not-exist'
+ mysite = self.site
self.assertRaises(KeyError, mysite.siteinfo.__getitem__, not_exists)
self.assertNotIn(not_exists, mysite.siteinfo)
self.assertEqual(len(mysite.siteinfo.get(not_exists)), 0)
diff --git a/tests/utils.py b/tests/utils.py
index ae5face..c882d61 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -119,6 +119,13 @@
return gen
+def entered_loop(iterable):
+ """Return True if iterable contains items."""
+ for iterable_item in iterable:
+ return True
+ return False
+
+
class WarningSourceSkipContextManager(warnings.catch_warnings):
"""
--
To view, visit https://gerrit.wikimedia.org/r/230486
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I97892edc04f9548aba15b69206a7b8ecaa98a901
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: John Vandenberg <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: XZise <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits