3つのチェックを実行する必要がある関数を作成しました。テストのいずれかが失敗すると、LookupErrorタイプの例外が返されるはずですが、機能しません。(* verify_checksumは別の関数です)
def check_datagram(datagram, src_comp, dst_app):
try:
src_comp==datagram[0:16]
except LookupError:
return "Mismatch in src_comp"
try:
dst_app==datagram[40:48]
except LookupError:
return "Mismatch in dst_app"
try:
verify_checksum(datagram)
except False:
return "Wrong checksum"
return True
例えば:
入力:
check_datagram("1111000000001111000011111111000001010101101010101111111111111111000000001111111100000000","0000111100001111", "11110000")
期待される出力:
"Mismatch in dst_app"