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]

Reply via email to