示例#1
0
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
示例#2
0
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
示例#3
0
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))
示例#4
0
    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',
        )
示例#5
0
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
示例#6
0
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
示例#7
0
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"
示例#8
0
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()
示例#9
0
    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}}'))
示例#10
0
文件: component.py 项目: frlan/batou
    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}}'))
示例#11
0
    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}}"),
        )
示例#12
0
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
示例#13
0
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)
示例#14
0
def test_address_without_implicit_or_explicit_port_fails():
    with pytest.raises(ValueError):
        Address("localhost")
    Address("localhost:8080")
    Address("localhost", 8080)
示例#15
0
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)
示例#16
0
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"
示例#17
0
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)
示例#18
0
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))
示例#19
0
def test_address_format_with_port():
    assert str(Address("127.0.0.1:8080").listen) == "127.0.0.1:8080"
示例#20
0
 def configure(self):
     self.address = Address(self.host.aliases.my, port=443)
     self += File('Hello',
                  content=('Hello World! {{host.aliases.my}} '
                           '= {{component.address.listen}} '))
示例#21
0
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
示例#22
0
def test_address_should_not_contain_v6_address_if_not_resolvable(gai):
    assert Address("localhost", 22).listen_v6 is None
示例#23
0
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
    )
示例#24
0
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'