[GEMINI] Add unit tests for concrete BaseDecoder subclasses and DecodingRegistry
This commit is contained in:
@@ -133,5 +133,31 @@ def test_try_decode_metadata_rot13_unique_only():
|
||||
assert "rot13" not in res_duplicate
|
||||
# }}}
|
||||
|
||||
# {{{ test_decoder_subclasses_and_registry
|
||||
def test_decoder_subclasses_and_registry():
|
||||
"""
|
||||
Verifies that DecodingRegistry successfully registers concrete decoders and
|
||||
that individual BaseDecoder subclasses correctly decode matching strings.
|
||||
"""
|
||||
from ctf.decoding import DecodingRegistry, Base64Decoder, HexDecoder, Rot13Decoder
|
||||
|
||||
registry = DecodingRegistry.get_default_registry()
|
||||
assert len(registry.decoders) >= 7
|
||||
|
||||
# Assert Base64Decoder behaves correctly
|
||||
b64_dec = Base64Decoder()
|
||||
assert b64_dec.name == "base64"
|
||||
assert b64_dec.is_applicable("ZmxhZ3tiNjRfbWV0YWRhdGF9")
|
||||
assert not b64_dec.is_applicable("A")
|
||||
assert b64_dec.attempt_single("ZmxhZ3tiNjRfbWV0YWRhdGF9") == "flag{b64_metadata}"
|
||||
|
||||
# Assert Rot13Decoder validates correctly
|
||||
rot_dec = Rot13Decoder()
|
||||
assert rot_dec.name == "rot13"
|
||||
assert rot_dec.attempt_single("synt{ebg13}") == "flag{rot13}"
|
||||
assert rot_dec.attempt_single("abezny grkg") is None # Fails validate check
|
||||
# }}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user