From 8f76578dfa21c1d3f8b25b95c7477ffd95436c6e Mon Sep 17 00:00:00 2001 From: Patrick Kanzler Date: Thu, 5 Oct 2023 14:38:01 +0200 Subject: [PATCH] add unit test for issue pointed out by @scott-r in #570 --- test/test_magicencode.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/test_magicencode.py b/test/test_magicencode.py index e7ad258..da45718 100644 --- a/test/test_magicencode.py +++ b/test/test_magicencode.py @@ -32,6 +32,13 @@ class TestEncoder: assert not Encoder({"CP437": 1}).find_suitable_encoding("€") assert Encoder({"CP858": 1}).find_suitable_encoding("€") == "CP858" + def test_find_suitable_encoding_unnecessary_codepage_swap(self): + enc = Encoder({"CP857": 1, "CP437": 2, "CP1252": 3, "CP852": 4, "CP858": 5}) + # desired behavior would be that the encoder always stays in the lower + # available codepages if possible + for character in ("Á", "É", "Í", "Ó", "Ú"): + assert enc.find_suitable_encoding(character) == "CP857" + def test_get_encoding(self): with pytest.raises(ValueError): Encoder({}).get_encoding_name("latin1")