jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1343225?usp=email )

Change subject: tests: verify pwb site-package console entry point
......................................................................

tests: verify pwb site-package console entry point

Add coverage for the ``pwb`` console_scripts entry point mapping to
wrapper.run and for run() enabling site_package mode. Removes the
pragma: no cover on run() now that it is tested.

Bug: T420109
Change-Id: I98ee610010659585c458122510ed7c826070a060
---
M pywikibot/scripts/wrapper.py
M tests/pwb_tests.py
2 files changed, 42 insertions(+), 1 deletion(-)

Approvals:
  Xqt: Looks good to me, approved
  jenkins-bot: Verified




diff --git a/pywikibot/scripts/wrapper.py b/pywikibot/scripts/wrapper.py
index 4ea366d..8e52249 100755
--- a/pywikibot/scripts/wrapper.py
+++ b/pywikibot/scripts/wrapper.py
@@ -553,7 +553,7 @@
         print(__doc__)


-def run() -> None:  # pragma: no cover
+def run() -> None:
     """Site package entry point. Print doc if necessary.

     .. version-added:: 7.0
diff --git a/tests/pwb_tests.py b/tests/pwb_tests.py
index b094eef..4da8a10 100755
--- a/tests/pwb_tests.py
+++ b/tests/pwb_tests.py
@@ -152,6 +152,47 @@
         remaining = stderr.readlines()
         self.assertLength(remaining, 3)  # always 3 lines remaining after list

+    def test_console_scripts_entry_point(self) -> None:
+        """Test that the pwb console_scripts entry point is registered.
+
+        Verifies the site-package ``pwb`` entry point maps to
+        :func:`pywikibot.scripts.wrapper.run` (T420109).
+        """
+        from importlib.metadata import entry_points
+
+        eps = entry_points()
+        try:
+            console = eps.select(group='console_scripts')
+        except AttributeError:  # Python < 3.10 compatibility path
+            console = eps.get('console_scripts', [])
+
+        pwb_eps = [ep for ep in console if ep.name == 'pwb']
+        self.assertTrue(pwb_eps, 'console_scripts entry point "pwb" not found')
+        self.assertEqual(pwb_eps[0].value, 'pywikibot.scripts.wrapper:run')
+        self.assertIs(pwb_eps[0].load(), wrapper.run)
+
+    def test_site_package_run_entry_point(self) -> None:
+        """Test wrapper.run() site-package entry point behavior (T420109)."""
+        with (
+            patch.object(wrapper, 'site_package', False),
+            patch.object(wrapper, 'execute', return_value=False) as execute,
+            patch('builtins.print') as mock_print,
+        ):
+            wrapper.run()
+            self.assertTrue(wrapper.site_package)
+            execute.assert_called_once_with()
+            mock_print.assert_called_once_with(wrapper.__doc__)
+
+        with (
+            patch.object(wrapper, 'site_package', False),
+            patch.object(wrapper, 'execute', return_value=True) as execute,
+            patch('builtins.print') as mock_print,
+        ):
+            wrapper.run()
+            self.assertTrue(wrapper.site_package)
+            execute.assert_called_once_with()
+            mock_print.assert_not_called()
+

 if __name__ == '__main__':
     unittest.main(verbosity=10)

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1343225?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: I98ee610010659585c458122510ed7c826070a060
Gerrit-Change-Number: 1343225
Gerrit-PatchSet: 4
Gerrit-Owner: Sanskardubey <[email protected]>
Gerrit-Reviewer: Mahveotm <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-CC: Chuiimuii_ofc <[email protected]>
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to