Kein Rueckschritt mehr als Update, Version-Kachel schlanker
aktualisierung.py pruefte mit `remote_version != eigene_version` - reine Ungleichheit ohne Richtung. Lief die Instanz einer Veroeffentlichung voraus, bot die Integration an, sich auf die aeltere Fassung zu aktualisieren. Vom Eigentuemer gemeldet. ist_neuer() ist jetzt das Gegenstueck zu versionOrdnung() in appVersion.ts, wo derselbe Fehler am 04.09. behoben wurde: fehlende Stellen zaehlen als 0, kein int() mit Vorabschnitt, und was sich nicht in eine Reihenfolge bringen laesst, gilt als verfuegbar statt verschwiegen. Sechs neue Testfaelle, 79 Python-Tests gruen. Dazu auf Vorgabe des Eigentuemers: die Zeile benennt jetzt selbst, was sie zeigt - "Home-Assistant-Integration | 2026.9.5.19" statt "Installiert" mit dem Gegenstand klein darunter. Damit entfallen die Abschnitts-Ueberschriften aus dem vorigen Commit, sie sagten dasselbe doppelt. Live in beiden Oberflaechen gegengeprueft: Gitea auf .18, Instanz auf .19 - gemeldet wird gruenes "aktuell" (--ok) mit Pruefzeitpunkt statt eines Rueckschritts. 0 Tracebacks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -188,5 +188,41 @@ class AbgelehnteFaelle(unittest.TestCase):
|
||||
self._unangetastet()
|
||||
|
||||
|
||||
class VersionsOrdnung(unittest.TestCase):
|
||||
"""Nur eine NACHWEISLICH neuere Fassung ist ein Update.
|
||||
|
||||
Bis zum 05.09.2026 stand in version_pruefen() `remote_version !=
|
||||
eigene_version` - reine Ungleichheit ohne Richtung. Lief die Instanz einer
|
||||
Veroeffentlichung voraus, bot die Integration an, sich auf die AELTERE
|
||||
Fassung zu aktualisieren (vom Eigentuemer gemeldet: .16 wurde angeboten,
|
||||
waehrend .18 lief)."""
|
||||
|
||||
def test_neuere_fassung_ist_ein_update(self):
|
||||
self.assertIs(a.ist_neuer("2026.9.5.18", "2026.9.5.16"), True)
|
||||
self.assertIs(a.ist_neuer("2026.10.1.1", "2026.9.5.99"), True)
|
||||
self.assertIs(a.ist_neuer("2027.1.1.1", "2026.12.31.9"), True)
|
||||
|
||||
def test_aeltere_fassung_ist_keins(self):
|
||||
self.assertIs(a.ist_neuer("2026.9.5.16", "2026.9.5.18"), False)
|
||||
self.assertIs(a.ist_neuer("2026.9.4.26", "2026.9.5.1"), False)
|
||||
|
||||
def test_gleichstand_ist_keins(self):
|
||||
self.assertIs(a.ist_neuer("2026.9.5.18", "2026.9.5.18"), False)
|
||||
|
||||
def test_fehlende_stellen_zaehlen_als_null(self):
|
||||
self.assertIs(a.ist_neuer("2026.9.4", "2026.9.4.0"), False)
|
||||
self.assertIs(a.ist_neuer("2026.9.4.1", "2026.9.4"), True)
|
||||
|
||||
def test_nicht_sortierbar_bleibt_offen(self):
|
||||
# Formatwechsel: lieber "nicht entscheidbar" als eine erfundene
|
||||
# Reihenfolge. "4b" darf nicht klaglos als 4 gelesen werden.
|
||||
self.assertIsNone(a.ist_neuer("2026.9.4b", "2026.9.4.1"))
|
||||
self.assertIsNone(a.ist_neuer("v2", "2026.9.5.1"))
|
||||
self.assertIsNone(a.ist_neuer("", "2026.9.5.1"))
|
||||
|
||||
def test_zeichengleich_ist_gleich_auch_bei_fremdem_format(self):
|
||||
self.assertIs(a.ist_neuer("beliebig", "beliebig"), False)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user