jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1323859?usp=email )
Change subject: weblinkchecker: Initialize XML start value
......................................................................
weblinkchecker: Initialize XML start value
Initialize xml_start with the other generator state instead of detecting a
missing local through NameError. Add offline coverage for XML generator
construction with and without an explicit start page.
Change-Id: I08656ae78b5063fa3e3a5601f041ba059f01e4de
---
M scripts/weblinkchecker.py
M tests/weblinkchecker_tests.py
2 files changed, 35 insertions(+), 4 deletions(-)
Approvals:
jenkins-bot: Verified
Xqt: Looks good to me, approved
diff --git a/scripts/weblinkchecker.py b/scripts/weblinkchecker.py
index 165f322..c29f7fd 100755
--- a/scripts/weblinkchecker.py
+++ b/scripts/weblinkchecker.py
@@ -653,6 +653,7 @@
"""
gen = None
xml_filename = None
+ xml_start = None
http_ignores = []
# Process global args and prepare generator args parser
@@ -685,10 +686,6 @@
gen_factory.handle_arg(arg)
if xml_filename:
- try:
- xml_start
- except NameError:
- xml_start = None
gen = XmlDumpPageGenerator(xml_filename, xml_start,
gen_factory.namespaces)
diff --git a/tests/weblinkchecker_tests.py b/tests/weblinkchecker_tests.py
index fa4548a..3555bef 100755
--- a/tests/weblinkchecker_tests.py
+++ b/tests/weblinkchecker_tests.py
@@ -9,8 +9,10 @@
import unittest
from contextlib import suppress
+from unittest.mock import MagicMock, patch
import pywikibot
+from scripts import weblinkchecker
from scripts.weblinkchecker import WeblinkCheckerRobot
from tests.aspects import TestCase
@@ -32,6 +34,38 @@
self.assertEqual(1, bot.counter['read'])
+class TestWeblinkcheckerMain(TestCase):
+
+ """Test :func:`weblinkchecker.main`."""
+
+ net = False
+
+ def test_xml_start(self) -> None:
+ """Test XML generator creation with optional start values."""
+ generator_factory = MagicMock()
+ generator_factory.namespaces = [0]
+ generator = object()
+
+ with (
+ patch.object(weblinkchecker.pywikibot, 'handle_args',
+ side_effect=lambda args: args),
+ patch.object(weblinkchecker.pagegenerators, 'GeneratorFactory',
+ return_value=generator_factory),
+ patch.object(weblinkchecker, 'XmlDumpPageGenerator',
+ return_value=generator) as xml_generator,
+ patch.object(weblinkchecker, 'suggest_help', return_value=True),
+ ):
+ for args, start in (
+ (('-xml:dump.xml',), None),
+ (('-xml:dump.xml', '-xmlstart:Start'), 'Start'),
+ ):
+ with self.subTest(start=start):
+ xml_generator.reset_mock()
+ weblinkchecker.main(*args)
+ xml_generator.assert_called_once_with(
+ 'dump.xml', start, generator_factory.namespaces)
+
+
if __name__ == '__main__':
with suppress(SystemExit):
unittest.main()
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1323859?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I08656ae78b5063fa3e3a5601f041ba059f01e4de
Gerrit-Change-Number: 1323859
Gerrit-PatchSet: 2
Gerrit-Owner: Mahveotm <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]