NET blip flashes, clears itself after 5 minutes, hold NET clears it; Restart page is now page 20
- The remembered network blip is a flashing amber warning (new "notice" level, not counted as DOWN): press NET to stop the flashing, hold NET 2 s to clear it, otherwise it goes by itself after 5 minutes (was 3, solid). - The user moved the Restart page to page 20: config, the RESTART PAGE key on page 19 and both pages re-pushed. A scan of all pages finds no other button pointing at the old page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -85,8 +85,8 @@ def run_steps(engine, snap, start, seconds, step=1.0):
|
||||
|
||||
|
||||
def level(tile):
|
||||
for name, ((b, f), _) in sp.COLORS.items():
|
||||
if (tile["b"], tile["f"]) == (b, f):
|
||||
for name, ((b, f), (b2, f2)) in sp.COLORS.items():
|
||||
if (tile["b"], tile["f"], tile["b2"], tile["f2"]) == (b, f, b2, f2):
|
||||
return name
|
||||
return "?"
|
||||
|
||||
@@ -513,9 +513,32 @@ class TestBehaviour(unittest.TestCase):
|
||||
self.snap.conns[label]["category"] = "good"
|
||||
tiles, t = run_steps(engine, self.snap, t, 1)
|
||||
self.assertTrue(tiles["net"]["x"].startswith("NET\nBLIP "))
|
||||
self.assertEqual(level(tiles["net"]), "warn")
|
||||
self.assertEqual(level(tiles["net"]), "notice") # flashes amber
|
||||
self.assertTrue(tiles["all"]["x"].startswith("1 WARN\nNET BLIP ")) # a warning, not a DOWN
|
||||
tiles, _ = run_steps(engine, self.snap, t + 200, 1)
|
||||
self.assertEqual(tiles["net"]["x"], "NET\nOK")
|
||||
self.assertTrue(tiles["net"]["x"].startswith("NET\nBLIP ")) # still up after 3+ minutes
|
||||
tiles, _ = run_steps(engine, self.snap, t + 320, 1)
|
||||
self.assertEqual(tiles["net"]["x"], "NET\nOK") # gone by itself after 5
|
||||
|
||||
def test_network_blip_press_and_hold(self):
|
||||
engine = sp.Engine(CONFIG)
|
||||
t = SUNDAY
|
||||
run_steps(engine, self.snap, t, 2)
|
||||
drop = ("x32", "VX1000", "UHDJr", "RESI_Decoder", "tascam")
|
||||
for label in drop:
|
||||
self.snap.conns[label]["category"] = "error"
|
||||
_, t = run_steps(engine, self.snap, t + 3, 4)
|
||||
for label in drop:
|
||||
self.snap.conns[label]["category"] = "good"
|
||||
tiles, t = run_steps(engine, self.snap, t, 1)
|
||||
engine.ack("net") # press: stop the flashing
|
||||
tiles, t = run_steps(engine, self.snap, t, 1)
|
||||
self.assertEqual((tiles["net"]["x"].split("\n")[1][:5], level(tiles["net"])), ("BLIP ", "warn"))
|
||||
engine.run_fixes("net", self.snap, None, t) # hold: gone now
|
||||
tiles, t = run_steps(engine, self.snap, t + 4, 1)
|
||||
self.assertEqual((tiles["net"]["x"], tiles["all"]["x"]), ("NET\nOK", "ALL OK"))
|
||||
engine.run_fixes("net", self.snap, None, t)
|
||||
self.assertEqual(engine.notes["net"]["text"], "NOTHING\nTO CLEAR")
|
||||
|
||||
def test_racks_powering_off_is_not_a_network_event(self):
|
||||
engine = sp.Engine(CONFIG)
|
||||
@@ -1253,13 +1276,13 @@ class TestPage(unittest.TestCase):
|
||||
n = sum(1 for r in self.controls.values() for c in r.values() if c["type"] == "button-layered")
|
||||
self.assertEqual(n, len(positioned) + 2) # + the page number and RESTART keys
|
||||
jump = self.controls["2"]["6"]["steps"]["0"]["action_sets"]["up"][0]
|
||||
self.assertEqual((jump["definitionId"], jump["options"]["page"]["value"]), ("set_page", 23))
|
||||
self.assertEqual((jump["definitionId"], jump["options"]["page"]["value"]), ("set_page", 20))
|
||||
# The master is where the smallest Stream Deck can see it.
|
||||
self.assertEqual(CONFIG["tiles"][0]["pos"], [0, 1])
|
||||
|
||||
def test_restart_page(self):
|
||||
export = make_page.build_restart(CONFIG)
|
||||
self.assertEqual((export["oldPageNumber"], export["page"]["name"]), (23, "23\\nRestart"))
|
||||
self.assertEqual((export["oldPageNumber"], export["page"]["name"]), (20, "20\\nRestart"))
|
||||
c = export["page"]["controls"]
|
||||
holds = {}
|
||||
for r in c.values():
|
||||
@@ -1310,7 +1333,8 @@ class TestPage(unittest.TestCase):
|
||||
self.assertIn("2000", ingest["action_sets"]) # restarts its services
|
||||
self.assertIn("2000", self.controls["0"]["2"]["steps"]["0"]["action_sets"]) # REC group
|
||||
net = self.controls["3"]["4"]["steps"]["0"]
|
||||
self.assertNotIn("2000", net["action_sets"]) # nothing to fix there
|
||||
self.assertEqual(net["action_sets"]["2000"][0]["options"]["value"]["value"], # hold: clear a blip
|
||||
"$(custom:sp_cmd);restart net $(internal:time_unix)")
|
||||
ids = [a["id"] for r in self.controls.values() for c in r.values()
|
||||
for s in c.get("steps", {}).values() for al in s["action_sets"].values() for a in al]
|
||||
self.assertEqual(len(ids), len(set(ids)))
|
||||
|
||||
Reference in New Issue
Block a user