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]