def test_hostname_must_be_an_ip(self): self.fake_sock.getaddrinfo = Mock() hostname = arg_validators.Hostname(self.fake_sock) with raises(ArgumentError) as error: hostname('0') message = error.value.message assert '0 must be a hostname' in message
def make(parser): """ Start deploying a new cluster, and write a CLUSTER.conf and keyring for it. """ parser.add_argument( 'mon', metavar='MON', nargs='+', help='initial monitor hostname, fqdn, or hostname:fqdn pair', type=arg_validators.Hostname(), ) parser.add_argument( '--no-ssh-copykey', dest='ssh_copykey', action='store_false', default=True, help='do not attempt to copy SSH keys', ) parser.add_argument( '--fsid', dest='fsid', help='provide an alternate FSID for ceph.conf generation', ) parser.set_defaults( func=new, )
def test_ip_is_not_resolvable(self): self.fake_sock.gethostbyname = Mock(return_value='192.168.1.111') hostname = arg_validators.Hostname(self.fake_sock) with raises(ArgumentError) as error: hostname('name:192.168.1.111') message = error.value.message assert 'must be a hostname not an IP' in message
def test_host_is_resolvable(self): self.fake_sock = Mock() self.fake_sock.gaierror = socket.gaierror def side_effect(*args): # First call passes, second call raises socket.gaierror self.fake_sock.getaddrinfo.side_effect = socket.gaierror self.fake_sock.getaddrinfo.side_effect = side_effect hostname = arg_validators.Hostname(self.fake_sock) result = hostname('name:example.com') assert result == 'name:example.com'
def test_ipv6_is_allowed_when_paired_with_host(self): self.fake_sock = Mock() self.fake_sock.gaierror = socket.gaierror def side_effect(*args): # First call passes, second call raises socket.gaierror self.fake_sock.getaddrinfo.side_effect = socket.gaierror self.fake_sock.getaddrinfo.side_effect = side_effect hostname = arg_validators.Hostname(self.fake_sock) result = hostname('name:2001:0db8:85a3:0000:0000:8a2e:0370:7334') assert result == 'name:2001:0db8:85a3:0000:0000:8a2e:0370:7334'
def test_ip_is_allowed_when_paired_with_host(self): self.fake_sock = Mock() self.fake_sock.gaierror = socket.gaierror def side_effect(*args): # First call passes, second call raises socket.gaierror self.fake_sock.getaddrinfo.side_effect = socket.gaierror self.fake_sock.getaddrinfo.side_effect = side_effect hostname = arg_validators.Hostname(self.fake_sock) result = hostname('name:192.168.1.111') assert result == 'name:192.168.1.111'
def test_hostname_with_name_is_not_resolvable(self): hostname = arg_validators.Hostname(self.fake_sock) with raises(ArgumentError) as error: hostname('name:foo') message = error.value.message assert 'foo is not resolvable' in message
def test_host_is_resolvable(self): self.fake_sock.gethostbyname = Mock() hostname = arg_validators.Hostname(self.fake_sock) result = hostname('name:example.com') assert result == 'name:example.com'
def test_ipv6_is_allowed_when_paired_with_host(self): self.fake_sock.gethostbyname = Mock(return_value='2001:0db8:85a3:0000:0000:8a2e:0370:7334') hostname = arg_validators.Hostname(self.fake_sock) result = hostname('name:2001:0db8:85a3:0000:0000:8a2e:0370:7334') assert result == 'name:2001:0db8:85a3:0000:0000:8a2e:0370:7334'
def test_ip_is_allowed_when_paired_with_host(self): self.fake_sock.gethostbyname = Mock(return_value='192.168.1.111') hostname = arg_validators.Hostname(self.fake_sock) result = hostname('name:192.168.1.111') assert result == 'name:192.168.1.111'