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.
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## 1.5.1
3
+ ## 1.5.2
4
4
 
5
5
  ### Ajouts
6
6
  - Sous-commandes `opsiom doctor` (diagnostic), `opsiom paths` (emplacements des fichiers) et `opsiom configure`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: opsiom-cli
3
- Version: 1.5.1
3
+ Version: 1.5.2
4
4
  Summary: Interface en ligne de commande pour discuter avec Opsiom, l'assistant IA francophone.
5
5
  Keywords: chatbot,cli,francophone,ia,opsiom
6
6
  Classifier: Environment :: Console
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "opsiom-cli"
7
- version = "1.5.1"
7
+ version = "1.5.2"
8
8
  description = "Interface en ligne de commande pour discuter avec Opsiom, l'assistant IA francophone."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -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