From dafcf31dc4a2d2c3d44f83a3be3e380f601b4572 Mon Sep 17 00:00:00 2001 From: Etienne Trimaille Date: Wed, 3 Apr 2024 15:14:14 +0200 Subject: [PATCH] Switch from "X" to "*" for passwords --- CHANGELOG.md | 4 ++++ qgis_plugin_manager/remote.py | 2 +- test/test_remote.py | 5 ++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a459741..f1ab7f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Changed + +* Change from `X` to `*` for password when showing them + ## 1.6.1 - 2023-07-06 ### Fixed diff --git a/qgis_plugin_manager/remote.py b/qgis_plugin_manager/remote.py index 342353b..8844135 100644 --- a/qgis_plugin_manager/remote.py +++ b/qgis_plugin_manager/remote.py @@ -525,6 +525,6 @@ def public_remote_name(cls, server: str) -> str: u = urlparse(server) query = parse_qs(u.query, keep_blank_values=True) if 'password' in query.keys(): - query['password'] = 'XXXXX' + query['password'] = '******' u = u._replace(query=urlencode(query, True)) return urlunparse(u) diff --git a/test/test_remote.py b/test/test_remote.py index 71a5c09..191a16e 100644 --- a/test/test_remote.py +++ b/test/test_remote.py @@ -86,14 +86,17 @@ def test_parse_url(self): def test_clean_remote(self): """ Test to clean a URL from login&password. """ + # "password", the keyword to look for self.assertEqual( - "https://foo.bar/plugins.xml?qgis=3.10&username=login&password=XXXXX", + "https://foo.bar/plugins.xml?qgis=3.10&username=login&password=%2A%2A%2A%2A%2A%2A", Remote.public_remote_name("https://foo.bar/plugins.xml?qgis=3.10&username=login&password=pass") ) + # "pass", not the keyword to look for self.assertEqual( "https://foo.bar/plugins.xml?qgis=3.10&username=login&pass=pass", Remote.public_remote_name("https://foo.bar/plugins.xml?qgis=3.10&username=login&pass=pass") ) + # Nothing self.assertEqual( "https://foo.bar/plugins.xml?qgis=3.10", Remote.public_remote_name("https://foo.bar/plugins.xml?qgis=3.10")