|
1 | 1 | """Tests for the NextDNS integration.""" |
2 | 2 |
|
3 | | -from contextlib import contextmanager |
4 | | -from unittest.mock import patch |
5 | | - |
6 | | -from nextdns import ( |
7 | | - AnalyticsDnssec, |
8 | | - AnalyticsEncryption, |
9 | | - AnalyticsIpVersions, |
10 | | - AnalyticsProtocols, |
11 | | - AnalyticsStatus, |
12 | | - ConnectionStatus, |
13 | | - Settings, |
14 | | -) |
15 | | - |
16 | 3 | from homeassistant.core import HomeAssistant |
17 | 4 |
|
18 | 5 | from tests.common import MockConfigEntry |
19 | 6 |
|
20 | | -CONNECTION_STATUS = ConnectionStatus(connected=True, profile_id="abcdef") |
21 | | -PROFILES = [{"id": "xyz12", "fingerprint": "aabbccdd123", "name": "Fake Profile"}] |
22 | | -STATUS = AnalyticsStatus( |
23 | | - default_queries=40, allowed_queries=30, blocked_queries=20, relayed_queries=10 |
24 | | -) |
25 | | -DNSSEC = AnalyticsDnssec(not_validated_queries=25, validated_queries=75) |
26 | | -ENCRYPTION = AnalyticsEncryption(encrypted_queries=60, unencrypted_queries=40) |
27 | | -IP_VERSIONS = AnalyticsIpVersions(ipv4_queries=90, ipv6_queries=10) |
28 | | -PROTOCOLS = AnalyticsProtocols( |
29 | | - doh_queries=20, |
30 | | - doh3_queries=15, |
31 | | - doq_queries=10, |
32 | | - dot_queries=30, |
33 | | - tcp_queries=0, |
34 | | - udp_queries=40, |
35 | | -) |
36 | | -SETTINGS = Settings( |
37 | | - ai_threat_detection=True, |
38 | | - allow_affiliate=True, |
39 | | - anonymized_ecs=True, |
40 | | - bav=True, |
41 | | - block_bypass_methods=True, |
42 | | - block_csam=True, |
43 | | - block_ddns=True, |
44 | | - block_disguised_trackers=True, |
45 | | - block_nrd=True, |
46 | | - block_page=False, |
47 | | - block_parked_domains=True, |
48 | | - cache_boost=True, |
49 | | - cname_flattening=True, |
50 | | - cryptojacking_protection=True, |
51 | | - dga_protection=True, |
52 | | - dns_rebinding_protection=True, |
53 | | - google_safe_browsing=False, |
54 | | - idn_homograph_attacks_protection=True, |
55 | | - logs=True, |
56 | | - logs_location="ch", |
57 | | - logs_retention=720, |
58 | | - safesearch=False, |
59 | | - threat_intelligence_feeds=True, |
60 | | - typosquatting_protection=True, |
61 | | - web3=True, |
62 | | - youtube_restricted_mode=False, |
63 | | - block_9gag=True, |
64 | | - block_amazon=True, |
65 | | - block_bereal=True, |
66 | | - block_blizzard=True, |
67 | | - block_chatgpt=True, |
68 | | - block_dailymotion=True, |
69 | | - block_discord=True, |
70 | | - block_disneyplus=True, |
71 | | - block_ebay=True, |
72 | | - block_facebook=True, |
73 | | - block_fortnite=True, |
74 | | - block_google_chat=True, |
75 | | - block_hbomax=True, |
76 | | - block_hulu=True, |
77 | | - block_imgur=True, |
78 | | - block_instagram=True, |
79 | | - block_leagueoflegends=True, |
80 | | - block_mastodon=True, |
81 | | - block_messenger=True, |
82 | | - block_minecraft=True, |
83 | | - block_netflix=True, |
84 | | - block_pinterest=True, |
85 | | - block_playstation_network=True, |
86 | | - block_primevideo=True, |
87 | | - block_reddit=True, |
88 | | - block_roblox=True, |
89 | | - block_signal=True, |
90 | | - block_skype=True, |
91 | | - block_snapchat=True, |
92 | | - block_spotify=True, |
93 | | - block_steam=True, |
94 | | - block_telegram=True, |
95 | | - block_tiktok=True, |
96 | | - block_tinder=True, |
97 | | - block_tumblr=True, |
98 | | - block_twitch=True, |
99 | | - block_twitter=True, |
100 | | - block_vimeo=True, |
101 | | - block_vk=True, |
102 | | - block_whatsapp=True, |
103 | | - block_xboxlive=True, |
104 | | - block_youtube=True, |
105 | | - block_zoom=True, |
106 | | - block_dating=True, |
107 | | - block_gambling=True, |
108 | | - block_online_gaming=True, |
109 | | - block_piracy=True, |
110 | | - block_porn=True, |
111 | | - block_social_networks=True, |
112 | | - block_video_streaming=True, |
113 | | -) |
114 | | - |
115 | | - |
116 | | -@contextmanager |
117 | | -def mock_nextdns(): |
118 | | - """Mock the NextDNS class.""" |
119 | | - with ( |
120 | | - patch( |
121 | | - "homeassistant.components.nextdns.NextDns.get_profiles", |
122 | | - return_value=PROFILES, |
123 | | - ), |
124 | | - patch( |
125 | | - "homeassistant.components.nextdns.NextDns.get_analytics_status", |
126 | | - return_value=STATUS, |
127 | | - ), |
128 | | - patch( |
129 | | - "homeassistant.components.nextdns.NextDns.get_analytics_encryption", |
130 | | - return_value=ENCRYPTION, |
131 | | - ), |
132 | | - patch( |
133 | | - "homeassistant.components.nextdns.NextDns.get_analytics_dnssec", |
134 | | - return_value=DNSSEC, |
135 | | - ), |
136 | | - patch( |
137 | | - "homeassistant.components.nextdns.NextDns.get_analytics_ip_versions", |
138 | | - return_value=IP_VERSIONS, |
139 | | - ), |
140 | | - patch( |
141 | | - "homeassistant.components.nextdns.NextDns.get_analytics_protocols", |
142 | | - return_value=PROTOCOLS, |
143 | | - ), |
144 | | - patch( |
145 | | - "homeassistant.components.nextdns.NextDns.get_settings", |
146 | | - return_value=SETTINGS, |
147 | | - ), |
148 | | - patch( |
149 | | - "homeassistant.components.nextdns.NextDns.connection_status", |
150 | | - return_value=CONNECTION_STATUS, |
151 | | - ), |
152 | | - ): |
153 | | - yield |
154 | | - |
155 | 7 |
|
156 | 8 | async def init_integration( |
157 | 9 | hass: HomeAssistant, mock_config_entry: MockConfigEntry |
158 | 10 | ) -> None: |
159 | 11 | """Set up the NextDNS integration in Home Assistant.""" |
160 | 12 | mock_config_entry.add_to_hass(hass) |
161 | 13 |
|
162 | | - with mock_nextdns(): |
163 | | - await hass.config_entries.async_setup(mock_config_entry.entry_id) |
164 | | - await hass.async_block_till_done() |
| 14 | + await hass.config_entries.async_setup(mock_config_entry.entry_id) |
| 15 | + await hass.async_block_till_done() |
0 commit comments