Copier-coller dans le terminal, et suite de tests versionnee

Le terminal n'avait aucun copier-coller : impossible de selectionner du texte
a la souris ni de coller une commande. C'est la fonction la plus basique d'un
terminal et de loin le manque le plus penible a l'usage.

- selection a la souris avec surlignage, suivant le theme actif
- double-clic : selectionne le mot sous le curseur
- Ctrl+Shift+C / Ctrl+Shift+V, Maj+Inser, clic molette, menu au clic droit
- Ctrl+C reste l'interruption : les raccourcis du presse-papiers sont traites
  avant la conversion Ctrl+lettre, sinon Ctrl+Shift+C serait parti comme un
  Ctrl+C vers le shell
- au collage, les fins de ligne sont normalisees en retour chariot ; un \r\n
  enverrait une ligne vide supplementaire au shell

La suite de tests vivait dans un dossier temporaire et aurait ete perdue : elle
rejoint le depot dans tests/ avec un lanceur. Elle couvre le presse-papiers, la
detection d'hote, la logique SFTP sur serveur simule et la construction de
l'application.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
snoopy
2026-09-04 11:24:55 +02:00
parent 81d5d8c75b
commit f82288b2e4
8 changed files with 519 additions and 3 deletions

19
tests/test_full.py Normal file
View File

@@ -0,0 +1,19 @@
import sys, pathlib
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parent.parent))
from PySide6.QtWidgets import QApplication
from app.main_window import MainWindow
from app.theme import apply_theme, build_app_icon
app = QApplication([])
apply_theme(app)
w = MainWindow()
w.setWindowIcon(build_app_icon())
w.show()
print("OK: application complete construite sans erreur")
# nettoyage explicite : le terminal local auto-ouvert au demarrage laisse un
# vrai sous-processus + threads vivants, qu'il faut fermer avant de quitter
for i in range(w.tabs.count()):
tab = w.tabs.widget(i)
tab.close_connection()
print("OK: connexions fermees proprement")