Skip to content

Commit 0d79d42

Browse files
Expand type-utils edge-case boundary coverage
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent c6f8c9f commit 0d79d42

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

‎tests/test_type_utils.py‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,15 @@ class _StringSubclass(str):
3434
assert is_string_subclass_instance(_StringSubclass("value")) is True
3535

3636

37+
def test_string_helpers_reject_non_string_inputs():
38+
assert is_plain_string(None) is False
39+
assert is_plain_string(123) is False
40+
assert is_plain_string(b"value") is False
41+
assert is_string_subclass_instance(None) is False
42+
assert is_string_subclass_instance(123) is False
43+
assert is_string_subclass_instance(b"value") is False
44+
45+
3746
def test_int_helpers_enforce_plain_integer_boundaries():
3847
class _IntSubclass(int):
3948
pass
@@ -43,3 +52,18 @@ class _IntSubclass(int):
4352
assert is_int_subclass_instance(10) is False
4453
assert is_int_subclass_instance(_IntSubclass(10)) is True
4554
assert is_int_subclass_instance(True) is True
55+
56+
57+
def test_int_helpers_reject_non_integer_and_handle_indirect_subclasses():
58+
class _IntSubclass(int):
59+
pass
60+
61+
class _NestedIntSubclass(_IntSubclass):
62+
pass
63+
64+
assert is_plain_int(3.14) is False
65+
assert is_plain_int(False) is False
66+
assert is_plain_int(None) is False
67+
assert is_int_subclass_instance(3.14) is False
68+
assert is_int_subclass_instance(None) is False
69+
assert is_int_subclass_instance(_NestedIntSubclass(7)) is True

0 commit comments

Comments
 (0)