3.1.1: la versión que enseña Windows no depende de los accesos directos

Al actualizar a la 3.1.0 la instalación de Munka por su propio botón,
Configuración › Aplicaciones siguió diciendo 3.0.0. Tras actualizarse se
reescribían los dos accesos directos (uno vive en el Escritorio de OneDrive)
antes de apuntar la versión, y si uno no se dejaba reescribir, la versión no
se apuntaba. instalar.al_dia ya no toca un acceso que abre lo que debe, uno
que no se deja no impide lo demás, y la versión se apunta siempre. Con prueba.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Este commit está contenido en:
Labstream
2026-10-04 12:37:25 -05:00
padre 50562aeaab
commit acb945c2ef
Se han modificado 5 ficheros con 64 adiciones y 29 borrados

Ver fichero

@@ -150,6 +150,22 @@ class Windows(unittest.TestCase):
self.assertTrue(instalar.al_dia(base, "3.0.1"))
self.assertEqual(instalar.instalado()["version"], "3.0.1")
self.assertFalse(os.path.exists(escritorio))
# un acceso directo que no se deja reescribir (pasó con el del Escritorio en OneDrive) no impide
# apuntar la versión nueva; y uno que ya abre lo que debe ni se toca
open(os.path.join(base, "OrganizadorLabstream.exe"), "wb").close() # ahora el programa se abre con otra cosa
de_verdad, intentos = instalar.acceso_directo, []
instalar.acceso_directo = lambda *a, **k: (intentos.append(a[0]), (_ for _ in ()).throw(OSError("ocupado")))[1]
try:
self.assertTrue(instalar.al_dia(base, "3.0.2"))
finally:
instalar.acceso_directo = de_verdad
self.assertEqual(intentos, [inicio])
self.assertEqual(instalar.instalado()["version"], "3.0.2")
self.assertTrue(instalar.al_dia(base, "3.0.2")) # ahora sí se deja: lo pone al día
self.assertTrue(instalar._misma(instalar.leer_acceso(inicio)["exe"], os.path.join(base, "OrganizadorLabstream.exe")))
self.assertFalse(instalar.al_dia(base, "3.0.2")) # y ya no queda nada que cambiar
os.remove(os.path.join(base, "OrganizadorLabstream.exe"))
instalar.al_dia(base, "3.0.2")
# quitarlo desde otra copia del programa no toca lo de esta; desde esta, sí
self.assertEqual(instalar.desinstalar(tmp)["accesos"], [])
self.assertTrue(instalar.instalado_aqui(base))