opsiom-cli 1.5.1__tar.gz → 1.5.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/CHANGELOG.md +1 -1
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/PKG-INFO +1 -1
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/pyproject.toml +1 -1
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/clients.py +7 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/tests/test_http.py +7 -0
- opsiom_cli-1.5.1/.env +0 -1
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/README.md +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/__init__.py +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/__main__.py +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/chat.py +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/cli.py +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/storage.py +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/test.txt +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/test_quoted.txt +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/src/opsiom_cli/ui.py +0 -0
- {opsiom_cli-1.5.1 → opsiom_cli-1.5.2}/tests/test_core.py +0 -0
|
@@ -167,6 +167,13 @@ class HFSpaceClient:
|
|
|
167
167
|
|
|
168
168
|
def login(self, username, password):
|
|
169
169
|
"""Ouvre la session du Space. Renvoie (True, None) ou (False, message)."""
|
|
170
|
+
# Les caractères de contrôle ne peuvent pas faire partie d'un mot de passe saisi
|
|
171
|
+
# au clavier ; sous Windows, un Ctrl+V dans getpass les insère pourtant tels quels.
|
|
172
|
+
removed = len(re.findall(r"[\x00-\x1f\x7f]", password))
|
|
173
|
+
password = re.sub(r"[\x00-\x1f\x7f]", "", password)
|
|
174
|
+
_debug(f"pseudo envoyé : {username!r} ; mot de passe : {len(password)} caractère(s)"
|
|
175
|
+
+ (f", {removed} caractère(s) de contrôle supprimé(s)" if removed else ""))
|
|
176
|
+
|
|
170
177
|
# 1. Charger la page de connexion : cookie de session + champs du formulaire.
|
|
171
178
|
try:
|
|
172
179
|
page = self.session.get(f"{self.base_url}/login", timeout=90)
|
|
@@ -167,3 +167,10 @@ def test_octix_wrong_password_shows_site_message(space_server):
|
|
|
167
167
|
ok, message = client.login("alice", "mauvais")
|
|
168
168
|
assert ok is False
|
|
169
169
|
assert "incorrect" in message
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def test_control_characters_are_removed_from_password(space_server):
|
|
173
|
+
"""Un Ctrl+V sous Windows peut insérer \x16 dans le mot de passe."""
|
|
174
|
+
client = HFSpaceClient(space_server)
|
|
175
|
+
ok, _ = client.login("alice", "bon\x16")
|
|
176
|
+
assert ok is True
|
opsiom_cli-1.5.1/.env
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
TOKEN_PYPI=pypi-AgEIcHlwaS5vcmcCJDI3YTY0YTk5LTExZDktNDFlOS04ZGE4LTU1MWFmNDcwZTg1MAACKlszLCJjYzExY2QyYy00ODg4LTRlOTItOTNmYy00NTdhMDhlMWQ5NjQiXQAABiDBNDAJrhWz9Rt11yQPXO1klHHZCcHTEsImiD4G6FOTWA
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|