2020from timecapsulesmb .checks .bonjour import (
2121 build_bonjour_expected_identity ,
2222 check_bonjour_host_ip ,
23- check_bonjour_host_link_local_ips ,
2423 check_smb_instance ,
2524 check_smb_service_target ,
2625 discover_smb_services_detailed ,
@@ -707,7 +706,7 @@ def test_run_doctor_checks_uses_ip_only_bonjour_fallback_when_runtime_name_probe
707706 self .assertTrue (any (result .status == "WARN" and "runtime naming identity probe skipped: probe failed" in result .message for result in run .results ))
708707 self .assertTrue (any (result .status == "PASS" and "discovered _smb._tcp service matching target IP 10.0.0.2" in result .message for result in run .results ))
709708
710- def test_run_doctor_checks_warns_when_bonjour_record_includes_link_local_ip (self ) -> None :
709+ def test_run_doctor_checks_accepts_bonjour_record_with_link_local_ip (self ) -> None :
711710 instance = BonjourServiceInstance (
712711 service_type = "_smb._tcp.local." ,
713712 name = "Time Capsule Samba 4" ,
@@ -734,8 +733,14 @@ def test_run_doctor_checks_warns_when_bonjour_record_includes_link_local_ip(self
734733 self .assertFalse (run .fatal )
735734 self .assertTrue (
736735 any (
737- result .status == "WARN"
738- and "Bonjour host timecapsulesamba4.local also advertised link-local IPv4 169.254.44.9" in result .message
736+ result .status == "PASS"
737+ and "resolved Bonjour host timecapsulesamba4.local to 10.0.0.2" in result .message
738+ for result in run .results
739+ )
740+ )
741+ self .assertFalse (
742+ any (
743+ "also advertised link-local IPv4" in result .message or "stale mDNS cache" in result .message
739744 for result in run .results
740745 )
741746 )
@@ -1032,34 +1037,6 @@ def test_check_bonjour_host_ip_fails_when_dns_resolves_wrong_ip(self) -> None:
10321037 self .assertEqual (result .status , "FAIL" )
10331038 self .assertIn ("expected 10.0.1.1" , result .message )
10341039
1035- def test_check_bonjour_host_link_local_ips_returns_none_for_lan_only (self ) -> None :
1036- result = check_bonjour_host_link_local_ips (
1037- "home.local" ,
1038- expected_ip = "10.0.1.1" ,
1039- record_ips = ["10.0.1.1" ],
1040- )
1041- self .assertIsNone (result )
1042-
1043- def test_check_bonjour_host_link_local_ips_warns_for_link_local_extra_ip (self ) -> None :
1044- result = check_bonjour_host_link_local_ips (
1045- "home.local" ,
1046- expected_ip = "10.0.1.1" ,
1047- record_ips = ["10.0.1.1" , "169.254.44.9" ],
1048- )
1049- self .assertIsNotNone (result )
1050- assert result is not None
1051- self .assertEqual (result .status , "WARN" )
1052- self .assertIn ("169.254.44.9" , result .message )
1053- self .assertIn ("stale mDNS cache" , result .message )
1054-
1055- def test_check_bonjour_host_link_local_ips_ignores_non_link_local_extra_ip (self ) -> None :
1056- result = check_bonjour_host_link_local_ips (
1057- "home.local" ,
1058- expected_ip = "10.0.1.1" ,
1059- record_ips = ["10.0.1.1" , "10.0.1.2" ],
1060- )
1061- self .assertIsNone (result )
1062-
10631040 def test_try_authenticated_smb_listing_handles_timeout (self ) -> None :
10641041 with mock .patch ("timecapsulesmb.checks.smb.command_exists" , return_value = True ):
10651042 with mock .patch (
0 commit comments