diff --git a/tests/test_events/test_bi_events.py b/tests/test_events/test_bi_events.py index 09f7c5a..1552f8c 100644 --- a/tests/test_events/test_bi_events.py +++ b/tests/test_events/test_bi_events.py @@ -4,7 +4,7 @@ OneRequiredOneDefaultParameterObserver, TwoParametersObserver, TwoDefaultParametersObserver -def test_bi_event_observe_and_call_no_parameters_mock_observer(): +def test_bi_event_observe_no_parameters_mock_observer(): event = BiEvent[str, int]() observer = NoParametersObserver() @@ -14,7 +14,7 @@ def test_bi_event_observe_and_call_no_parameters_mock_observer(): observer.assert_called_once_with() -def test_bi_event_observe_and_call_one_parameter_mock_observer(): +def test_bi_event_observe_one_parameter_mock_observer(): event = BiEvent[str, int]() observer = OneParameterObserver() @@ -24,7 +24,7 @@ def test_bi_event_observe_and_call_one_parameter_mock_observer(): observer.assert_called_once_with("test_value") -def test_bi_event_observe_and_call_one_default_parameter_mock_observer(): +def test_bi_event_observe_one_default_parameter_mock_observer(): event = BiEvent[str, int]() observer = OneDefaultParameterObserver() @@ -34,7 +34,7 @@ def test_bi_event_observe_and_call_one_default_parameter_mock_observer(): observer.assert_called_once_with("test_value") -def test_bi_event_observe_and_call_one_required_one_default_parameter_mock_observer(): +def test_bi_event_observe_one_required_one_default_parameter_mock_observer(): event = BiEvent[str, int]() observer = OneRequiredOneDefaultParameterObserver() @@ -44,7 +44,7 @@ def test_bi_event_observe_and_call_one_required_one_default_parameter_mock_obser observer.assert_called_once_with("test_value", 42) -def test_bi_event_observe_and_call_two_parameters_mock_observer(): +def test_bi_event_observe_two_parameters_mock_observer(): event = BiEvent[str, int]() observer = TwoParametersObserver() @@ -54,7 +54,7 @@ def test_bi_event_observe_and_call_two_parameters_mock_observer(): observer.assert_called_once_with("test_value", 42) -def test_bi_event_observe_and_call_two_default_parameters_mock_observer(): +def test_bi_event_observe_two_default_parameters_mock_observer(): event = BiEvent[str, int]() observer = TwoDefaultParametersObserver() @@ -75,7 +75,7 @@ def test_bi_event_unobserve_mock_observer(): observer.assert_not_called() -def test_bi_event_multiple_mock_observers(): +def test_bi_event_call_multiple_mock_observers(): event = BiEvent[str, int]() observer0 = NoParametersObserver() observer1 = OneParameterObserver() @@ -91,7 +91,7 @@ def test_bi_event_multiple_mock_observers(): observer2.assert_called_once_with("hello", 123) -def test_bi_event_function_observer_with_too_many_parameters(): +def test_bi_event_observe_function_observer_too_many_parameters_fails(): event = BiEvent[str, int]() def bad_observer(param0, param1, param2): @@ -101,7 +101,7 @@ def bad_observer(param0, param1, param2): event.observe(bad_observer) -def test_bi_event_observe_and_call_lambda_no_parameters(): +def test_bi_event_observe_lambda_no_parameters(): event = BiEvent[str, int]() called = [] @@ -111,7 +111,7 @@ def test_bi_event_observe_and_call_lambda_no_parameters(): assert called == [True] -def test_bi_event_observe_and_call_lambda_one_parameter(): +def test_bi_event_observe_lambda_one_parameter(): event = BiEvent[str, int]() calls = [] @@ -121,7 +121,7 @@ def test_bi_event_observe_and_call_lambda_one_parameter(): assert calls == ["test_value"] -def test_bi_event_observe_and_call_lambda_two_parameters(): +def test_bi_event_observe_lambda_two_parameters(): event = BiEvent[str, int]() calls = [] @@ -131,7 +131,7 @@ def test_bi_event_observe_and_call_lambda_two_parameters(): assert calls == [("test_value", 42)] -def test_bi_event_unobserve_lambda(): +def test_bi_event_unobserve_lambda_observer(): event = BiEvent[str, int]() calls = [] observer = lambda value0, value1: calls.append((value0, value1)) @@ -144,28 +144,28 @@ def test_bi_event_unobserve_lambda(): assert calls == [("test0", 0)] -def test_bi_event_lambda_with_too_many_parameters(): +def test_bi_event_observe_lambda_observer_too_many_parameters_fails(): event = BiEvent[str, int]() with pytest.raises(ValueError): event.observe(lambda param0, param1, param2: None) -def test_bi_event_call_with_one_parameter(): +def test_bi_event_call_with_one_parameter_fails(): event = BiEvent[str, int]() with pytest.raises(TypeError): event("param0") -def test_bi_event_call_with_three_parameters(): +def test_bi_event_call_with_three_parameters_fails(): event = BiEvent[str, int]() with pytest.raises(TypeError): event("param0", 42, "param2") -def test_bi_event_unobserve_non_existent_observer(): +def test_bi_event_unobserve_nonexistent_mock_observer_fails(): event = BiEvent[str, int]() observer = TwoParametersObserver() @@ -173,7 +173,7 @@ def test_bi_event_unobserve_non_existent_observer(): event.unobserve(observer) -def test_bi_event_observe_same_observer_multiple_times(): +def test_bi_event_observe_same_mock_observer_multiple_times(): event = BiEvent[str, int]() observer = TwoParametersObserver() @@ -190,7 +190,7 @@ def test_bi_event_call_with_no_observers(): event("test_value", 42) # Should not raise -def test_bi_event_observers_called_in_order(): +def test_bi_event_call_lambda_observers_in_order(): event = BiEvent[str, int]() call_order = [] @@ -203,7 +203,7 @@ def test_bi_event_observers_called_in_order(): assert call_order == ["first", "second", "third"] -def test_bi_event_call_with_none_values(): +def test_bi_event_call_mock_observer_with_none_values(): event = BiEvent[str | None, int | None]() observer = TwoParametersObserver() diff --git a/tests/test_events/test_events.py b/tests/test_events/test_events.py index 98a83e1..55218cf 100644 --- a/tests/test_events/test_events.py +++ b/tests/test_events/test_events.py @@ -4,12 +4,12 @@ from pybind.event import Event -def test_event_initialization(): +def test_event_initialization_empty_subscriptions(): event = Event() assert event._subscriptions == [] -def test_mock_observe_adds_observer(): +def test_event_observe_mock_observer_adds_subscription(): event = Event() observer = NoParametersObserver() @@ -18,14 +18,14 @@ def test_mock_observe_adds_observer(): assert event.is_observed(observer) -def test_mock_observe_validates_parameter_count(): +def test_event_observe_mock_observer_too_many_parameters_fails(): event = Event() with pytest.raises(ValueError): event.observe(OneParameterObserver()) -def test_mock_unobserve_removes_observer(): +def test_event_unobserve_mock_observer_removes_subscription(): event = Event() observer = NoParametersObserver() event.observe(observer) @@ -35,14 +35,14 @@ def test_mock_unobserve_removes_observer(): assert not event.is_observed(observer) -def test_mock_unobserve_nonexistent_observer_raises(): +def test_event_unobserve_nonexistent_mock_observer_fails(): event = Event() with pytest.raises(ValueError): event.unobserve(NoParametersObserver()) -def test_mock_unobserved_observer_not_called(): +def test_event_call_unobserved_mock_observer_not_invoked(): event = Event() observer = NoParametersObserver() event.observe(observer) @@ -53,7 +53,7 @@ def test_mock_unobserved_observer_not_called(): observer.assert_not_called() -def test_mock_call_invokes_all_observers(): +def test_event_call_invokes_all_mock_observers(): event = Event() observer0 = NoParametersObserver() observer1 = NoParametersObserver() @@ -66,7 +66,7 @@ def test_mock_call_invokes_all_observers(): observer1.assert_called_once_with() -def test_mock_observer_with_default_parameter(): +def test_event_observe_mock_observer_with_default_parameter(): event = Event() observer = OneDefaultParameterObserver() @@ -76,12 +76,12 @@ def test_mock_observer_with_default_parameter(): observer.assert_called_once_with("default") -def test_call_with_no_observers(): +def test_event_call_with_no_observers(): event = Event() event() -def test_function_observer_with_default_parameter(): +def test_event_observe_function_observer_with_default_parameter(): event = Event() calls = [] @@ -94,7 +94,7 @@ def observer_with_default(param="default"): assert calls == ["default"] -def test_lambda_observer(): +def test_event_observe_lambda_observer(): event = Event() calls = [] diff --git a/tests/test_events/test_events_weak_observe.py b/tests/test_events/test_events_weak_observe.py index a19bd54..2f333bc 100644 --- a/tests/test_events/test_events_weak_observe.py +++ b/tests/test_events/test_events_weak_observe.py @@ -6,7 +6,7 @@ from pybind.event import Event -def test_weak_observe_adds_observer(): +def test_event_weak_observe_mock_observer_adds_subscription(): event = Event() observer = NoParametersObserver() @@ -15,14 +15,14 @@ def test_weak_observe_adds_observer(): assert event.is_observed(observer) -def test_weak_observe_validates_parameter_count(): +def test_event_weak_observe_mock_observer_too_many_parameters_fails(): event = Event() with pytest.raises(ValueError): event.weak_observe(OneParameterObserver()) -def test_weak_observe_calls_observer(): +def test_event_weak_observe_mock_observer_called(): event = Event() observer = NoParametersObserver() event.weak_observe(observer) @@ -32,7 +32,7 @@ def test_weak_observe_calls_observer(): observer.assert_called_once_with() -def test_weak_observe_unobserve_removes_observer(): +def test_event_weak_observe_unobserve_mock_observer_removes_subscription(): event = Event() observer = NoParametersObserver() event.weak_observe(observer) @@ -42,7 +42,7 @@ def test_weak_observe_unobserve_removes_observer(): assert not event.is_observed(observer) -def test_weak_observe_unobserve_twice_removes_observer(): +def test_event_weak_observe_unobserve_twice_mock_observer_removes_subscription(): event = Event() observer = NoParametersObserver() event.weak_observe(observer) @@ -54,7 +54,7 @@ def test_weak_observe_unobserve_twice_removes_observer(): assert not event.is_observed(observer) -def test_weak_observe_twice_unobserve_once_still_observer(): +def test_event_weak_observe_twice_unobserve_once_mock_observer_still_subscribed(): event = Event() observer = NoParametersObserver() event.weak_observe(observer) @@ -65,7 +65,7 @@ def test_weak_observe_twice_unobserve_once_still_observer(): assert event.is_observed(observer) -def test_weak_observe_auto_cleanup(): +def test_event_weak_observe_mock_observer_auto_cleanup(): event = Event() observer = NoParametersObserver() event.weak_observe(observer) @@ -78,7 +78,7 @@ def test_weak_observe_auto_cleanup(): assert len(event._subscriptions) == 0 -def test_weak_observe_with_function(): +def test_event_weak_observe_function_observer(): event = Event() calls = [] @@ -91,7 +91,7 @@ def observer(): assert calls == [True] -def test_mixed_weak_and_strong_observers(): +def test_event_mixed_weak_strong_mock_observers(): event = Event() strong_observer = NoParametersObserver() weak_observer = NoParametersObserver() @@ -105,7 +105,7 @@ def test_mixed_weak_and_strong_observers(): weak_observer.assert_called_once_with() -def test_weak_observe_method_auto_cleanup(): +def test_event_weak_observe_mock_observer_method_auto_cleanup(): event = Event() observer = NoParametersObserver() @@ -119,7 +119,7 @@ def test_weak_observe_method_auto_cleanup(): assert len(event._subscriptions) == 0 -def test_weak_observe_method_before_cleanup(): +def test_event_weak_observe_mock_observer_method_before_cleanup(): event = Event() observer = NoParametersObserver() @@ -131,7 +131,7 @@ def test_weak_observe_method_before_cleanup(): assert len(event._subscriptions) == 1 -def test_weak_lambda_cleaned_immediately_observer(): +def test_event_weak_observe_lambda_observer_cleaned_immediately(): event = Event() calls = [] @@ -141,7 +141,7 @@ def test_weak_lambda_cleaned_immediately_observer(): assert calls == [] -def test_weak_lambda_cleanup(): +def test_event_weak_observe_lambda_observer_cleanup(): event = Event() calls = [] @@ -157,7 +157,7 @@ def test_weak_lambda_cleanup(): assert calls == [] -def test_weak_lambda_unobserve(): +def test_event_weak_observe_unobserve_lambda_observer(): event = Event() calls = [] @@ -171,7 +171,7 @@ def test_weak_lambda_unobserve(): assert not event.is_observed(observer) -def test_call_order_mixed_weak_strong(): +def test_event_call_mixed_weak_strong_lambda_observers_in_order(): event = Event() calls = [] diff --git a/tests/test_events/test_tri_events.py b/tests/test_events/test_tri_events.py index 77551eb..1f3d991 100644 --- a/tests/test_events/test_tri_events.py +++ b/tests/test_events/test_tri_events.py @@ -5,7 +5,7 @@ ThreeParametersObserver, ThreeDefaultParametersObserver, TwoRequiredOneDefaultParameterObserver -def test_tri_event_observe_and_call_no_parameters_mock_observer(): +def test_tri_event_observe_no_parameters_mock_observer(): event = TriEvent[str, int, bool]() observer = NoParametersObserver() @@ -15,7 +15,7 @@ def test_tri_event_observe_and_call_no_parameters_mock_observer(): observer.assert_called_once_with() -def test_tri_event_observe_and_call_one_parameter_mock_observer(): +def test_tri_event_observe_one_parameter_mock_observer(): event = TriEvent[str, int, bool]() observer = OneParameterObserver() @@ -25,7 +25,7 @@ def test_tri_event_observe_and_call_one_parameter_mock_observer(): observer.assert_called_once_with("test_value") -def test_tri_event_observe_and_call_one_default_parameter_mock_observer(): +def test_tri_event_observe_one_default_parameter_mock_observer(): event = TriEvent[str, int, bool]() observer = OneDefaultParameterObserver() @@ -35,7 +35,7 @@ def test_tri_event_observe_and_call_one_default_parameter_mock_observer(): observer.assert_called_once_with("test_value") -def test_tri_event_observe_and_call_one_required_one_default_parameter_mock_observer(): +def test_tri_event_observe_one_required_one_default_parameter_mock_observer(): event = TriEvent[str, int, bool]() observer = OneRequiredOneDefaultParameterObserver() @@ -45,7 +45,7 @@ def test_tri_event_observe_and_call_one_required_one_default_parameter_mock_obse observer.assert_called_once_with("test_value", 42) -def test_tri_event_observe_and_call_two_parameters_mock_observer(): +def test_tri_event_observe_two_parameters_mock_observer(): event = TriEvent[str, int, bool]() observer = TwoParametersObserver() @@ -55,7 +55,7 @@ def test_tri_event_observe_and_call_two_parameters_mock_observer(): observer.assert_called_once_with("test_value", 42) -def test_tri_event_observe_and_call_two_required_one_default_parameter_mock_observer(): +def test_tri_event_observe_two_required_one_default_parameter_mock_observer(): event = TriEvent[str, int, bool]() observer = TwoRequiredOneDefaultParameterObserver() @@ -65,7 +65,7 @@ def test_tri_event_observe_and_call_two_required_one_default_parameter_mock_obse observer.assert_called_once_with("test_value", 42, True) -def test_tri_event_observe_and_call_three_parameters_mock_observer(): +def test_tri_event_observe_three_parameters_mock_observer(): event = TriEvent[str, int, bool]() observer = ThreeParametersObserver() @@ -87,7 +87,7 @@ def test_tri_event_unobserve_mock_observer(): observer.assert_called_once_with("test0", 0, False) -def test_tri_event_multiple_mock_observers(): +def test_tri_event_call_multiple_mock_observers(): event = TriEvent[str, int, bool]() observer0 = NoParametersObserver() observer1 = OneParameterObserver() @@ -106,7 +106,7 @@ def test_tri_event_multiple_mock_observers(): observer3.assert_called_once_with("hello", 123, False) -def test_tri_event_function_observer_with_too_many_parameters(): +def test_tri_event_observe_function_observer_too_many_parameters_fails(): event = TriEvent[str, int, bool]() def bad_observer(param0, param1, param2, param3): @@ -116,7 +116,7 @@ def bad_observer(param0, param1, param2, param3): event.observe(bad_observer) -def test_tri_event_observe_and_call_lambda_no_parameters(): +def test_tri_event_observe_lambda_no_parameters(): event = TriEvent[str, int, bool]() calls = [] @@ -126,7 +126,7 @@ def test_tri_event_observe_and_call_lambda_no_parameters(): assert calls == [True] -def test_tri_event_observe_and_call_lambda_one_parameter(): +def test_tri_event_observe_lambda_one_parameter(): event = TriEvent[str, int, bool]() calls = [] @@ -136,7 +136,7 @@ def test_tri_event_observe_and_call_lambda_one_parameter(): assert calls == ["test_value"] -def test_tri_event_observe_and_call_lambda_two_parameters(): +def test_tri_event_observe_lambda_two_parameters(): event = TriEvent[str, int, bool]() calls = [] @@ -146,7 +146,7 @@ def test_tri_event_observe_and_call_lambda_two_parameters(): assert calls == [("test_value", 42)] -def test_tri_event_observe_and_call_lambda_three_parameters(): +def test_tri_event_observe_lambda_three_parameters(): event = TriEvent[str, int, bool]() calls = [] @@ -156,7 +156,7 @@ def test_tri_event_observe_and_call_lambda_three_parameters(): assert calls == [("test_value", 42, False)] -def test_tri_event_unobserve_lambda(): +def test_tri_event_unobserve_lambda_observer(): event = TriEvent[str, int, bool]() calls = [] observer = lambda value0, value1, value2: calls.append((value0, value1, value2)) @@ -169,35 +169,35 @@ def test_tri_event_unobserve_lambda(): assert calls == [("test0", 0, False)] -def test_tri_event_lambda_with_too_many_parameters(): +def test_tri_event_observe_lambda_observer_too_many_parameters_fails(): event = TriEvent[str, int, bool]() with pytest.raises(ValueError): event.observe(lambda param0, param1, param2, param3: None) -def test_tri_event_call_with_one_parameter(): +def test_tri_event_call_with_one_parameter_fails(): event = TriEvent[str, int, bool]() with pytest.raises(TypeError): event("param0") -def test_tri_event_call_with_two_parameters(): +def test_tri_event_call_with_two_parameters_fails(): event = TriEvent[str, int, bool]() with pytest.raises(TypeError): event("param0", 42) -def test_tri_event_call_with_four_parameters(): +def test_tri_event_call_with_four_parameters_fails(): event = TriEvent[str, int, bool]() with pytest.raises(TypeError): event("param0", 42, True, "param3") -def test_tri_event_unobserve_non_existent_observer(): +def test_tri_event_unobserve_nonexistent_mock_observer_fails(): event = TriEvent[str, int, bool]() observer = ThreeParametersObserver() @@ -205,7 +205,7 @@ def test_tri_event_unobserve_non_existent_observer(): event.unobserve(observer) -def test_tri_event_observe_same_observer_multiple_times(): +def test_tri_event_observe_same_mock_observer_multiple_times(): event = TriEvent[str, int, bool]() observer = ThreeParametersObserver() @@ -222,7 +222,7 @@ def test_tri_event_call_with_no_observers(): event("test_value", 42, False) # Should not raise -def test_tri_event_observers_called_in_order(): +def test_tri_event_call_lambda_observers_in_order(): event = TriEvent[str, int, bool]() call_order = [] @@ -235,7 +235,7 @@ def test_tri_event_observers_called_in_order(): assert call_order == ["first", "second", "third"] -def test_tri_event_call_with_none_values(): +def test_tri_event_call_mock_observer_with_none_values(): event = TriEvent[str | None, int | None, bool | None]() observer = ThreeParametersObserver() diff --git a/tests/test_events/test_value_events.py b/tests/test_events/test_value_events.py index 7e6c33a..883e6bc 100644 --- a/tests/test_events/test_value_events.py +++ b/tests/test_events/test_value_events.py @@ -4,7 +4,7 @@ OneRequiredOneDefaultParameterObserver -def test_value_event_unobserve_non_existent_observer(): +def test_value_event_unobserve_nonexistent_mock_observer_fails(): event = ValueEvent[str]() observer = OneParameterObserver() @@ -12,7 +12,7 @@ def test_value_event_unobserve_non_existent_observer(): event.unobserve(observer) -def test_value_event_observe_same_observer_multiple_times(): +def test_value_event_observe_same_mock_observer_multiple_times(): event = ValueEvent[str]() observer = OneParameterObserver() @@ -28,7 +28,7 @@ def test_value_event_call_with_no_observers(): event("test_value") # Should not raise -def test_value_event_observers_called_in_order(): +def test_value_event_call_lambda_observers_in_order(): event = ValueEvent[str]() call_order = [] @@ -41,7 +41,7 @@ def test_value_event_observers_called_in_order(): assert call_order == ["first", "second", "third"] -def test_value_event_call_with_none_value(): +def test_value_event_call_mock_observer_with_none_value(): event = ValueEvent[str | None]() observer = OneParameterObserver() @@ -51,7 +51,7 @@ def test_value_event_call_with_none_value(): observer.assert_called_once_with(None) -def test_value_event_observe_and_call_no_parameters_mock_observer(): +def test_value_event_observe_no_parameters_mock_observer(): event = ValueEvent[str]() observer = NoParametersObserver() @@ -61,7 +61,7 @@ def test_value_event_observe_and_call_no_parameters_mock_observer(): observer.assert_called_once_with() -def test_value_event_observe_and_call_one_parameter_mock_observer(): +def test_value_event_observe_one_parameter_mock_observer(): event = ValueEvent[str]() observer = OneParameterObserver() @@ -71,7 +71,7 @@ def test_value_event_observe_and_call_one_parameter_mock_observer(): observer.assert_called_once_with("test_value") -def test_value_event_observe_and_call_one_default_parameter_mock_observer(): +def test_value_event_observe_one_default_parameter_mock_observer(): event = ValueEvent[str]() observer = OneDefaultParameterObserver() @@ -81,7 +81,7 @@ def test_value_event_observe_and_call_one_default_parameter_mock_observer(): observer.assert_called_once_with("test_value") -def test_value_event_observe_and_call_one_required_one_default_parameter_mock_observer(): +def test_value_event_observe_one_required_one_default_parameter_mock_observer(): event = ValueEvent[str]() observer = OneRequiredOneDefaultParameterObserver() @@ -102,7 +102,7 @@ def test_value_event_unobserve_mock_observer(): observer.assert_not_called() -def test_value_event_multiple_mock_observers(): +def test_value_event_call_multiple_mock_observers(): event = ValueEvent[str]() observer0 = NoParametersObserver() observer1 = OneParameterObserver() @@ -115,7 +115,7 @@ def test_value_event_multiple_mock_observers(): observer1.assert_called_once_with("hello") -def test_value_event_observer_with_too_many_parameters(): +def test_value_event_observe_function_observer_too_many_parameters_fails(): event = ValueEvent[str]() def bad_observer(param0, param1): @@ -125,7 +125,7 @@ def bad_observer(param0, param1): event.observe(bad_observer) -def test_value_event_observe_and_call_lambda_no_parameters(): +def test_value_event_observe_lambda_no_parameters(): event = ValueEvent[str]() called = [] @@ -135,7 +135,7 @@ def test_value_event_observe_and_call_lambda_no_parameters(): assert called == [True] -def test_value_event_observe_and_call_lambda_one_parameter(): +def test_value_event_observe_lambda_one_parameter(): event = ValueEvent[str]() received_values = [] @@ -145,7 +145,7 @@ def test_value_event_observe_and_call_lambda_one_parameter(): assert received_values == ["test_value"] -def test_value_event_observe_and_call_lambda_one_default_parameter(): +def test_value_event_observe_lambda_one_default_parameter(): event = ValueEvent[str]() received_values = [] @@ -155,7 +155,7 @@ def test_value_event_observe_and_call_lambda_one_default_parameter(): assert received_values == ["test_value"] -def test_value_event_unobserve_lambda(): +def test_value_event_unobserve_lambda_observer(): event = ValueEvent[int]() called = [] observer = lambda value0: called.append(value0) @@ -167,14 +167,14 @@ def test_value_event_unobserve_lambda(): assert called == [] -def test_value_event_lambda_with_too_many_parameters(): +def test_value_event_observe_lambda_observer_too_many_parameters_fails(): event = ValueEvent[str]() with pytest.raises(ValueError, match="has too many non-default parameters: 2 > 1"): event.observe(lambda param0, param1: None) -def test_value_event_call_with_two_parameters(): +def test_value_event_call_with_two_parameters_fails(): event = ValueEvent[str]() with pytest.raises(TypeError):