def test_address_ordering(): address1 = Address("127.0.0.5:8080") address2 = Address("localhost:8080") address3 = Address("127.10.1.5:8080") address4 = Address("127.122.122.133:8080") sorted_list = sorted([address1, address2, address3, address4]) assert [address1, address3, address4, address2] == sorted_list
def test_address_sort(): address1 = Address("127.0.0.5:8080") address2 = Address("localhost:8080") address3 = Address("127.10.1.5:8080") address4 = Address("127.122.122.133:8080") list1 = sorted([address1, address2, address3, address4]) print(list1) assert [address1, address3, address4, address2] == list1
def test_address_prevents_access_to_unconfigured_IPv6_netloc(): """It raises an exception if IPv6 is not configured but accessed.""" address = Address("localhost", 22, require_v4=True, require_v6=False) with pytest.raises(batou.IPAddressConfigurationError) as err: address.listen_v6 assert ('Trying to access address family IPv6 which is not configured for' ' localhost:22.' == str(err.value))
def configure(self): if self.reload_templates is None: self.reload_templates = self.debug self.address = Address(self.listen_host, self.listen_port) self += File('appserver.ini') self += Buildout(additional_config=[ Directory('profiles', source='profiles'), ]) env = [ # (name, value) ] self += Program( 'appserver', priority=20, options=dict( startsecs=20, environment=','.join('{}={}'.format(name, value) for name, value in env), ), command=self.map('bin/pserve'), args='appserver.ini', )
def test_address_fails_when_name_cannot_be_looked_up_at_all(): with pytest.raises(socket.gaierror) as f: Address("does-not-exist.example.com:1234") assert str(f.value) in RESOLVER_ERRORS with pytest.raises(socket.gaierror) as f: Address("does-not-exist.example.com:1234", require_v4=False, require_v6=True) assert str(f.value) in RESOLVER_ERRORS with pytest.raises(socket.gaierror) as f: Address("does-not-exist.example.com:1234", require_v4=True, require_v6=True) assert str(f.value) in RESOLVER_ERRORS
class DNSProblem2(Component): attribute_without_v6 = Address("localhost:22", require_v6=False) def configure(self): # Accessing `listen_v6` causes an error: self.attribute_without_v6.listen_v6
def test_address_v6_only(monkeypatch): hostname = 'v6only.example.com' from batou.utils import resolve_v6_override monkeypatch.setitem(resolve_v6_override, hostname, '::346') with pytest.raises(socket.gaierror) as f: Address(hostname, 1234) assert str(f.value) in RESOLVER_ERRORS with pytest.raises(socket.gaierror) as f: Address(hostname, 1234, require_v6=True) assert str(f.value) in RESOLVER_ERRORS address = Address(hostname, 1234, require_v4=False, require_v6=True) assert address.listen_v6.host == "::346"
def test_address_v6_only(): from batou.utils import resolve_v6_override resolve_v6_override['v6only.example.com'] = '::346' try: address = Address("v6only.example.com:42") assert address.listen is None assert address.listen_v6.host == '::346' finally: resolve_v6_override.clear()
def configure(self): self.address = Address(self.host.fqdn, '8081') self += AppEnv('3.7') self += SyncDirectory('mysite', source='mysite') self += File('foo', content='asdf\nbsdf\ncsdf') self += Program( 'django', command='bin/python', deployment='cold', options={'stopasgroup': 'true'}, args=self.expand('mysite/manage.py runserver ' ' {{component.address.listen}}'))
def configure(self): self.address = Address(self.host.fqdn, '8081') venv = VirtualEnv('2.7') self += venv venv += Package('django', version='1.5.4') self += SyncDirectory('mysite', source='mysite') self += Program('django', command='bin/python', deployment='cold', options={'stopasgroup': 'true'}, args=self.expand('mysite/manage.py runserver ' ' {{component.address.listen}}'))
def configure(self): self.address = Address(self.host.fqdn, "8081") self += AppEnv("3.8") self += SyncDirectory("mysite", source="mysite") self += File("foo", content="asdf\nbsdf\ncsdf") self += Program( "django", command="bin/python", deployment="cold", options={"stopasgroup": "true"}, args=self.expand("mysite/manage.py runserver " " {{component.address.listen}}"), )
def test_address_netloc_attributes(): address = Address("localhost:8080") assert "127.0.0.1" == address.listen.host assert "8080" == address.listen.port assert "localhost" == address.connect.host assert "8080" == address.connect.port
def test_address_resolves_listen_address(): address = Address('localhost:8080') assert '127.0.0.1:8080' == str(address.listen) assert 'localhost:8080' == str(address.connect)
def test_address_without_implicit_or_explicit_port_fails(): with pytest.raises(ValueError): Address("localhost") Address("localhost:8080") Address("localhost", 8080)
def test_address_resolves_listen_address(): address = Address("localhost:8080") assert "127.0.0.1:8080" == str(address.listen) assert "localhost:8080" == str(address.connect)
def test_address_should_contain_v6_address_if_available(gai): gai.return_value = [(None, None, None, None, ("::1", None, None, None))] address = Address("localhost:8080", require_v6=True) assert address.listen_v6.host == "::1"
def test_address_does_not_fail_if_missing_v6_when_no_v6_requested(gai): assert Address("localhost", 22, require_v6=False).listen_v6 is None assert Address("localhost", 22).listen_v6 is None with pytest.raises(socket.gaierror): assert Address("localhost", 22, require_v6=True)
def test_address_neither_v4_v6_invalid(): with pytest.raises(ValueError) as f: Address("asdf", require_v4=False, require_v6=False) assert ("One of `require_v4` or `require_v6` must be selected. " "None were selected." == str(f.value))
def test_address_format_with_port(): assert str(Address("127.0.0.1:8080").listen) == "127.0.0.1:8080"
def configure(self): self.address = Address(self.host.aliases.my, port=443) self += File('Hello', content=('Hello World! {{host.aliases.my}} ' '= {{component.address.listen}} '))
def test_address_netloc_attributes(): address = Address('localhost:8080') assert '127.0.0.1' == address.listen.host assert '8080' == address.listen.port assert 'localhost' == address.connect.host assert '8080' == address.connect.port
def test_address_should_not_contain_v6_address_if_not_resolvable(gai): assert Address("localhost", 22).listen_v6 is None
def test_address_fails_when_name_cannot_be_looked_up_at_all(): with pytest.raises(socket.gaierror) as f: Address("does-not-exist.example.com:1234") assert "No IPv4 or IPv6 address for 'does-not-exist.example.com'" == str( f.value )
def test_address_should_contain_v6_address_if_available(gai): gai.return_value = [(None, None, None, None, ('::1', ))] address = Address('localhost:8080') assert address.listen_v6.host == '::1'