@@ -497,6 +497,24 @@ def test_foreign_key_fallback_without_ref_values(self) -> None:
497497 assert second_call .kwargs == {"min_value" : 1 , "max_value" : 50 }
498498
499499
500+ def _make_provider_with_missing_native_attr (
501+ provider_name : str ,
502+ native_attr : str ,
503+ del_attr : str ,
504+ ) -> MagicMock :
505+ """Build a mock provider whose native object has an attribute deleted.
506+
507+ Used to verify ``_try_native_method`` returns ``_NATIVE_MISS`` when the
508+ native target (faker method or mimesis path component) is missing.
509+ """
510+ native_obj = MagicMock ()
511+ delattr (native_obj , del_attr )
512+ provider = MagicMock ()
513+ provider .name = provider_name
514+ setattr (provider , native_attr , native_obj )
515+ return provider
516+
517+
500518class TestTryNativeMethod :
501519 """Tests for _try_native_method, _try_faker_native, _try_mimesis_native."""
502520
@@ -533,12 +551,7 @@ def test_try_faker_native_calls_method_when_available(self) -> None:
533551 fake_faker .email .assert_called_once_with (domain = "example.com" )
534552
535553 def test_try_faker_native_returns_miss_when_method_not_found (self ) -> None :
536- fake_faker = MagicMock ()
537- # Configure so getattr returns None for the missing method
538- del fake_faker .nonexistent_method
539- provider = MagicMock ()
540- provider .name = "faker"
541- provider ._faker = fake_faker
554+ provider = _make_provider_with_missing_native_attr ("faker" , "_faker" , "nonexistent_method" )
542555
543556 spec = GeneratorSpec (generator_name = "string" , native_faker_method = "nonexistent_method" )
544557 stream = make_stream ([], provider )
@@ -598,12 +611,7 @@ def test_try_mimesis_native_walks_dotted_path(self) -> None:
598611 generic .person .full_name .assert_called_once_with ()
599612
600613 def test_try_mimesis_native_returns_miss_on_invalid_path (self ) -> None :
601- # Path component doesn't exist → returns _NATIVE_MISS
602- generic = MagicMock ()
603- del generic .nonexistent
604- provider = MagicMock ()
605- provider .name = "mimesis"
606- provider ._generic = generic
614+ provider = _make_provider_with_missing_native_attr ("mimesis" , "_generic" , "nonexistent" )
607615
608616 spec = GeneratorSpec (
609617 generator_name = "string" ,
0 commit comments