Skip to content

Commit 577168e

Browse files
authored
Merge pull request #24 from roskakori/23-clean-up-tests-for-pytest
#23 Clean up tests for pytest
2 parents 61b6f71 + 71f44c6 commit 577168e

File tree

3 files changed

+42
-46
lines changed

3 files changed

+42
-46
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ $ ant test
4343
```
4444

4545
For more information, browse the "ebcdic" folder of this distribution and
46-
take a look at the README.rst.
46+
take a look at the [README](ebcdic/README.md).
4747

4848
## Source code
4949

5050
See https://github.com/roskakori/CodecMapper.
5151

5252
## License
5353

54-
Copyright (c) 2013 - 2019, Thomas Aglassinger
54+
Copyright (c) 2013 - 2026, Thomas Aglassinger
5555
All rights reserved.
5656

5757
Distributed under the BSD license, see [LICENSE.txt](LICENSE.txt) for more

ebcdic/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ to build and test the distribution.
107107

108108
## Changes
109109

110-
Version 2.0.0, 2026-02-20
110+
Version 2.0.0, 2026-02-23
111111

112112
This is a pure technical release that does not change the functionality of the package.
113113

ebcdic/ebcdic/test/test_ebcdic.py

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -3,61 +3,57 @@
33
"""
44

55
import codecs
6-
import unittest
6+
7+
import pytest
78

89
import ebcdic
910

1011

11-
class EbcdicTest(unittest.TestCase):
12-
"""
13-
Test case of `ebcdic` package.
14-
"""
12+
def test_has_codecs():
13+
assert len(ebcdic.codec_names) > 0
14+
assert "cp1141" in ebcdic.codec_names
15+
16+
17+
def test_can_recode_hello_world():
18+
_test_can_recode("hello world", ebcdic.codec_names)
19+
20+
21+
def _test_can_recode(text, codec_names):
22+
for codec_name in codec_names:
23+
encoded_text = text.encode(codec_name)
24+
recoded_text = encoded_text.decode(codec_name)
25+
assert text == recoded_text, f"{codec_name}: {text!r} != {recoded_text!r}"
1526

16-
def test_has_codecs(self):
17-
self.assertTrue(len(ebcdic.codec_names) > 0)
18-
self.assertTrue("cp1141" in ebcdic.codec_names)
1927

20-
def test_can_recode_hello_world(self):
21-
self._test_can_recode("hello world", ebcdic.codec_names)
28+
def test_can_recode_euro_sign():
29+
_test_can_recode("\N{EURO SIGN}", ["cp1141", "cp1148", "cp1148ms"])
2230

23-
def _test_can_recode(self, text, codec_names):
24-
for codec_name in codec_names:
25-
encoded_text = text.encode(codec_name)
26-
recoded_text = encoded_text.decode(codec_name)
27-
self.assertEqual(text, recoded_text, f"{codec_name}: {text!r} != {recoded_text!r}")
2831

29-
def test_can_recode_euro_sign(self):
30-
self._test_can_recode("\N{EURO SIGN}", ["cp1141", "cp1148", "cp1148ms"])
32+
def test_has_ignored_codec_names():
33+
assert "cp500" in ebcdic.ignored_codec_names()
3134

32-
def test_has_ignored_codec_names(self):
33-
self.assertTrue("cp500" in ebcdic.ignored_codec_names())
3435

35-
def test_can_lookup_ebcdic_codec(self):
36-
ebcdic_cp500 = ebcdic.lookup("cp500")
37-
standard_cp500 = codecs.lookup("cp500")
38-
self.assertNotEqual(ebcdic_cp500, standard_cp500)
36+
def test_can_lookup_ebcdic_codec():
37+
ebcdic_cp500 = ebcdic.lookup("cp500")
38+
standard_cp500 = codecs.lookup("cp500")
39+
assert ebcdic_cp500 != standard_cp500
3940

40-
def test_fails_on_lookup_of_unknown_ebcdic_codec(self):
41-
self.assertRaises(LookupError, ebcdic.lookup, "cpNone")
4241

43-
def test_ignored_codecs_are_identical_to_standard_library(self):
44-
def encoded(code, codec):
45-
return chr(code).encode(codec.name, errors="replace")
42+
def test_fails_on_lookup_of_unknown_ebcdic_codec():
43+
with pytest.raises(LookupError):
44+
ebcdic.lookup("cpNone")
4645

47-
for codec_name in ebcdic.ignored_codec_names():
48-
ebcdic_codec = ebcdic.lookup(codec_name)
49-
self.assertNotEqual(ebcdic_codec, None, codec_name)
50-
standard_codec = codecs.lookup(codec_name)
51-
self.assertNotEqual(standard_codec, None, codec_name)
52-
for code in range(256):
53-
ebcdic_char = encoded(code, ebcdic_codec)
54-
standard_char = encoded(code, standard_codec)
55-
self.assertEqual(
56-
ebcdic_char,
57-
standard_char,
58-
f"{codec_name} at {code}: {ebcdic_char!r} != {standard_char!r}",
59-
)
6046

47+
def test_ignored_codecs_are_identical_to_standard_library():
48+
def encoded(code, codec):
49+
return chr(code).encode(codec.name, errors="replace")
6150

62-
if __name__ == "__main__":
63-
unittest.main()
51+
for codec_name in ebcdic.ignored_codec_names():
52+
ebcdic_codec = ebcdic.lookup(codec_name)
53+
assert ebcdic_codec is not None, codec_name
54+
standard_codec = codecs.lookup(codec_name)
55+
assert standard_codec is not None, codec_name
56+
for code in range(256):
57+
ebcdic_char = encoded(code, ebcdic_codec)
58+
standard_char = encoded(code, standard_codec)
59+
assert ebcdic_char == standard_char, f"{codec_name} at {code}: {ebcdic_char!r} != {standard_char!r}"

0 commit comments

Comments
 (0)