def test_make_parsed_url_pics_random_port(self): url = factory.make_parsed_url() self.assertThat( url.netloc, Contains(":"), "Generated url: %s does not contain " "a port number in netloc segment" % url.geturl(), ) self.assertTrue( url.netloc.split(":")[1].isdigit(), "Generated url: %s does not contain a valid " "port number in netloc segment" % url.geturl(), ) url = factory.make_parsed_url(port=True) self.assertThat( url.netloc, Contains(":"), ("Generated url: %s does not contain " "a port number in netloc segment") % url.geturl(), ) self.assertTrue( url.netloc.split(":")[1].isdigit(), "Generated url: %s does not contain a valid " "port number in netloc segment" % url.geturl(), )
def test_make_parsed_url_asserts_with_conflicting_port_numbers(self): with ExpectedException(AssertionError): netloc = "%s:%d" % (factory.make_hostname(), factory.pick_port()) factory.make_parsed_url(netloc=netloc, port=factory.pick_port()) with ExpectedException(AssertionError): netloc = "%s:%d" % (factory.make_hostname(), factory.pick_port()) factory.make_parsed_url(netloc=netloc, port=True)
def test_round_trip(self): argument = arguments.ParsedURL() example = factory.make_parsed_url() encoded = argument.toString(example) self.assertThat(encoded, IsInstance(bytes)) decoded = argument.fromString(encoded) self.assertThat(decoded.geturl(), Equals(example.geturl()))
def test_get_preseed_data_calls_compose_preseed(self): # get_preseed_data() calls compose_preseed() on the # OperatingSystem instances. os_specific_compose_preseed = self.patch(self.osystem, "compose_preseed") metadata_url = factory.make_parsed_url() osystems.get_preseed_data( self.osystem.name, sentinel.preseed_type, sentinel.node_system_id, sentinel.node_hostname, sentinel.consumer_key, sentinel.token_key, sentinel.token_secret, metadata_url, ) self.assertThat( os_specific_compose_preseed, MockCalledOnceWith( sentinel.preseed_type, (sentinel.node_system_id, sentinel.node_hostname), ( sentinel.consumer_key, sentinel.token_key, sentinel.token_secret, ), metadata_url.geturl(), ), )
def test_returns_populated_dict_when_http_proxy_is_set(self): Config.objects.set_config("enable_http_proxy", True) url = factory.make_parsed_url().geturl() Config.objects.set_config("http_proxy", url) self.assertEqual( {"http": urlparse(url), "https": urlparse(url)}, get_proxies() )
def test_make_parsed_url_accepts_explicit_port(self): port = factory.pick_port() url = factory.make_parsed_url(port=port) self.assertThat( url.netloc, EndsWith(':%d' % port), 'The generated URL does not contain' 'a port specification for port %d' % port)
def test_make_parsed_url_can_omit_port(self): url = factory.make_parsed_url(port=False) self.assertThat( url.netloc, Not(Contains(":")), "Generated url: %s contains a port number" "in netloc segment" % url.geturl(), )
def test_netloc_containing_non_ascii_characters_is_encoded_to_idna(self): argument = arguments.ParsedURL() example = factory.make_parsed_url()._replace( netloc="\u24b8\u211d\U0001d538\u24b5\U0001d502") encoded = argument.toString(example) self.assertThat(encoded, IsInstance(bytes)) decoded = argument.fromString(encoded) # The non-ASCII netloc was encoded using IDNA. expected = example._replace(netloc="cra(z)y") self.assertThat(decoded.geturl(), Equals(expected.geturl()))
def test_make_parsed_url_pics_random_port(self): url = factory.make_parsed_url() self.assertThat( url.netloc, Contains(':'), 'Generated url: %s does not contain ' 'a port number in netloc segment' % url.geturl()) self.assertTrue( url.netloc.split(':')[1].isdigit(), 'Generated url: %s does not contain a valid ' 'port number in netloc segment' % url.geturl()) url = factory.make_parsed_url(port=True) self.assertThat(url.netloc, Contains(':'), ('Generated url: %s does not contain ' 'a port number in netloc segment') % url.geturl()) self.assertTrue( url.netloc.split(':')[1].isdigit(), 'Generated url: %s does not contain a valid ' 'port number in netloc segment' % url.geturl())
def test_returns_populated_dict_when_http_proxy_is_disabled(self): Config.objects.set_config("enable_http_proxy", False) url = factory.make_parsed_url().geturl() Config.objects.set_config("http_proxy", url) self.assertEqual({"http": None, "https": None}, get_proxies())