diff --git a/src/agent.py b/src/agent.py index a021a0c..00aef51 100644 --- a/src/agent.py +++ b/src/agent.py @@ -1014,7 +1014,7 @@ class Updater: return False version, sha = release.get("version"), release.get("sha256") if type(version) is not int or not isinstance(sha, str) or not self.SHA_RE.fullmatch(sha): - self._hint("format", "хаб прислал неполную публикацию: version=%r, sha256=%r" % (version, sha)) # design 10 + self._hint("format", "хаб прислал неполную публикацию: version=%.80r, sha256=%.80r" % (version, sha)) # design 10 return False if version <= AGENT_VERSION: return False diff --git a/tests/test_update.py b/tests/test_update.py index 86ceca4..0c07813 100644 --- a/tests/test_update.py +++ b/tests/test_update.py @@ -97,6 +97,14 @@ class UpdaterCheckTest(unittest.TestCase): self.assertEqual(self.hub.release_requests, 0) self.assertIsNone(self.u.state()) + def test_incomplete_release_hint_is_bounded(self): + """M-4: подсказка не печатает произвольно длинный мусор от хаба целиком.""" + logs = self.capture_logs() + self.assertFalse(self.u.check({"version": NEXT, "sha256": "x" * 10000})) + hints = [l for l in logs if l.startswith("хаб прислал неполную публикацию")] + self.assertEqual(len(hints), 1) + self.assertLess(len(hints[0]), 300) + def test_hints_have_separate_timers(self): logs = self.capture_logs() self.u.launcher_version = None