From: Sergey Matveev Date: Sat, 30 Nov 2024 16:37:13 +0000 (+0300) Subject: Split TestErrors X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1618e7dfcd466bb7b811bc6373b8048deb2723a0455f74b68b6de21e8b0f1e34;p=keks.git Split TestErrors TestErrors mainly tests the NotEnoughData exception. Move it to its separate class. Some generic errors tests are moved to separate file. --- diff --git a/pyac/tests/test_errors.py b/pyac/tests/test_errors.py deleted file mode 100644 index 63b6eee..0000000 --- a/pyac/tests/test_errors.py +++ /dev/null @@ -1,49 +0,0 @@ -from typing import Any -from unittest import TestCase - -from hypothesis import given -from hypothesis.strategies import integers - -from pyac import DecodeError -from pyac import dumps -from pyac import loads -from pyac import NotEnoughData - - -class TestError(TestCase): - @given(integers(min_value=1, max_value=100)) - def test_not_enough_data_str(self, integer: int) -> None: - self.assertEqual( - str(NotEnoughData(integer)), - "{} bytes expected".format(integer), - ) - - @given(integers(min_value=1, max_value=100)) - def test_not_enough_data_repr(self, integer: int) -> None: - self.assertEqual( - NotEnoughData(integer).__repr__(), - "NotEnoughData({} bytes expected)".format(integer), - ) - - @given(integers(min_value=1, max_value=100)) - def test_not_enough_data_init(self, integer: int) -> None: - self.assertEqual(NotEnoughData(integer).n, integer) - - def test_throws_when_unknown_class(self) -> None: - with self.assertRaises(NotImplementedError) as cm: - class a: - pass - a_instance: Any = a() - dumps(a_instance) - self.assertEqual(str(cm.exception), "unsupported type") - - def test_throws_when_unknown_tag(self) -> None: - with self.assertRaises(DecodeError) as cm: - tag: bytes = b"\x05" - loads(tag) - self.assertEqual(str(cm.exception), "unknown tag") - - def test_throws_when_empty(self) -> None: - with self.assertRaises(NotEnoughData): - encoded: bytes = b"" - loads(encoded) diff --git a/pyac/tests/test_generic.py b/pyac/tests/test_generic.py new file mode 100644 index 0000000..1c5a792 --- /dev/null +++ b/pyac/tests/test_generic.py @@ -0,0 +1,29 @@ +from unittest import TestCase + +from pyac import DecodeError +from pyac import dumps +from pyac import loads +from pyac import NotEnoughData + + +class TestUnknownType(TestCase): + def runTest(self) -> None: + with self.assertRaises(NotImplementedError) as cm: + class A: + pass + dumps(A()) + self.assertEqual(str(cm.exception), "unsupported type") + + +class TestUnknownTag(TestCase): + def runTest(self) -> None: + with self.assertRaises(DecodeError) as cm: + loads(b"\x05") + self.assertEqual(str(cm.exception), "unknown tag") + + +class TestEmptyData(TestCase): + def runTest(self) -> None: + with self.assertRaises(NotEnoughData) as err: + loads(b"") + self.assertEqual(err.exception.n, 1) diff --git a/pyac/tests/test_not_enough_data.py b/pyac/tests/test_not_enough_data.py new file mode 100644 index 0000000..5d1f89c --- /dev/null +++ b/pyac/tests/test_not_enough_data.py @@ -0,0 +1,26 @@ +from unittest import TestCase + +from hypothesis import given +from hypothesis.strategies import integers + +from pyac import NotEnoughData + + +class TestNotEnoughData(TestCase): + @given(integers(min_value=1, max_value=100)) + def test_str(self, integer: int) -> None: + self.assertEqual( + str(NotEnoughData(integer)), + "{} bytes expected".format(integer), + ) + + @given(integers(min_value=1, max_value=100)) + def test_repr(self, integer: int) -> None: + self.assertEqual( + NotEnoughData(integer).__repr__(), + "NotEnoughData({} bytes expected)".format(integer), + ) + + @given(integers(min_value=1, max_value=100)) + def test_init(self, integer: int) -> None: + self.assertEqual(NotEnoughData(integer).n, integer)