Kopru: secili model hata verirse siradaki katman yapar

Hata kodu, baglanamama ve yarida kopma da siradaki katmana gider.
Siradakine gecilen adimda onceki cevap verilmez; son katman da
acilamazsa onun kendi hatasi gider.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
yilsemandClaude Opus 5.5 committed 2026-10-11 10:40:13 +03:00
1 parent 7547de1852
commit 06039b904d
2 files changed
+61 -15

No files matched your search

@@ -241,6 +241,31 @@ class Akis(unittest.TestCase):
self.assertEqual(self.opened, ["Katman-2", "Katman-3"])
self.assertEqual(self.sent(), self.cevap["Katman-3"])
def test_an_error_of_the_selected_model_goes_to_the_next_layer(self):
self.h._denetimli_akis(None, "[1]", None, None, "yap", ["Katman-1", "Katman-2", "Katman-3", "Katman-4"], self.ac)
self.assertEqual(self.opened, ["Katman-1"])
self.assertEqual(self.sent(), self.cevap["Katman-1"])
def test_an_answer_cut_midway_goes_to_the_next_layer(self):
class Kopan(Yanit):
def read1(self, n):
if not self.parts:
raise OSError("koptu")
return self.parts.pop(0)
self.h._denetimli_akis(Kopan(sse("yarim")), "[1]", None, None, "yap", ["Katman-2", "Katman-3", "Katman-4"], self.ac)
self.assertEqual(self.opened, ["Katman-2"])
self.assertEqual(self.sent(), self.cevap["Katman-2"])
self.assertNotIn(b"yarim", self.h.wfile.getvalue())
def test_when_no_layer_opens_the_blocked_answer_is_not_delivered(self):
self.puanlar = [{"ret": 0.9, "sart": 0.0}]
self.cevap.update({"Katman-2": None, "Katman-3": None, "Katman-4": None})
self.calistir(sse("Bunu yapamam."))
self.assertEqual(self.opened, ["Katman-2", "Katman-3", "Katman-4"])
self.assertNotIn(b"yapamam", self.h.wfile.getvalue())
self.assertIn(b"response.failed", self.sent())
self.assertIn(b"Katman-4: acilamadi", self.sent()) # the last layer's own error reaches the user
def test_unreachable_jev_keeps_the_answer(self):
self.puanlar = [None]
body = sse("Bunu yapamam.")