fix: include latest shelf tag in live inspection

This commit is contained in:
kiyo9w 2026-09-28 13:11:06 +09:00
parent 2894979a35
commit 06f9fb4819
2 changed files with 65 additions and 1 deletions

View file

@ -384,6 +384,44 @@ class ClassificationBudgetTests(unittest.TestCase):
process(session, 1)
with self.assertRaises(KeyError):
session.inspect(999)
def test_inspect_includes_settled_tag_from_the_latest_frame(self):
session, engine, _, _ = make_session()
tag = {"state": "readable", "price": 150, "box": [100, 270, 200, 320]}
class Tagged:
def plan(self, boxes, image_shape, shelf_offset=None):
return []
def attach(self, tracks):
by_track = {int(track["track_id"]): dict(tag) for track in tracks}
return by_track, list(by_track.values()), {"readable": len(by_track)}
def stats(self):
return {}
session._tags = Tagged()
result = process(session, 1)
track = result["tracks"][0]
track_id = track["track_id"]
self.assertEqual(track["price_tag"]["price"], 150)
self.assertIn("reconciliation", track)
inspected = session.inspect(track_id)
self.assertEqual(inspected["price_tag"], track["price_tag"])
self.assertEqual(inspected["reconciliation"], track["reconciliation"])
self.assertIn("identity", inspected)
session._tags = None
bare = process(session, 2)
self.assertNotIn("price_tag", bare["tracks"][0])
inspected_bare = session.inspect(track_id)
self.assertNotIn("price_tag", inspected_bare)
self.assertNotIn("reconciliation", inspected_bare)
session.reset()
with self.assertRaises(KeyError):
session.inspect(track_id)
engine.shutdown()
def test_close_stops_the_loop(self):