def test__logs_resolution_failures(self): # Some ISPs configure their DNS to resolve to an ads page when a domain # doesn't exist. This ensures resolving fails so the test passes. exception = socket.gaierror() exception.errno = random.choice( list(config._gen_addresses_where_possible_suppress)) exception.strerror = '[Errno ...] ...' self.patch(config, '_gen_addresses').side_effect = exception with FakeLogger(config.__name__) as logger: config._get_addresses("no-way-this-exists.maas.io") self.assertThat(logger.output.strip(), DocTestMatches( "Could not resolve no-way-this-exists.maas.io: [Errno ...] ..."))
def test__ignores_resolution_failures(self): # Some ISPs configure their DNS to resolve to an ads page when a domain # doesn't exist. This ensures resolving fails so the test passes. self.patch(config, '_gen_addresses_where_possible').return_value = [] self.assertThat( config._get_addresses("no-way-this-exists.maas.io"), Equals(([], [])))
def test_ip_addresses_are_passed_through(self): address4 = factory.make_ipv4_address() address6 = factory.make_ipv6_address() self.assertThat( config._get_addresses(address4, address6), Equals(([address4], [address6])), )
def test__renders_ntp_servers_as_comma_separated_list(self): params = make_sample_params(self, ipv6=self.ipv6) rendered = config.get_config(self.template, **params) validate_dhcpd_configuration(self, rendered, self.ipv6) ntp_servers_expected = flatten([ server if is_ip_address(server) else _get_addresses(server) for network in params['shared_networks'] for subnet in network['subnets'] for server in subnet["ntp_servers"] ]) ntp_servers_observed = [ server for server_line in re.findall( r"\b(?:ntp-servers|dhcp6[.]sntp-servers)\s+(.+);", rendered) for server in server_line.split(", ") ] self.assertItemsEqual(ntp_servers_expected, ntp_servers_observed)