From: Alfredo Deza Date: Wed, 31 Jul 2013 20:20:30 +0000 (-0400) Subject: tests for the new hostname validator X-Git-Tag: v1.2~12^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6dc79ef871e0686c57ef3914c35016c203b9cae1;p=ceph-deploy.git tests for the new hostname validator Signed-off-by: Alfredo Deza improve wording of IP error Signed-off-by: Alfredo Deza update tests for the new wording Signed-off-by: Alfredo Deza --- diff --git a/ceph_deploy/tests/unit/util/test_arg_validators.py b/ceph_deploy/tests/unit/util/test_arg_validators.py index d502a52..67b39dd 100644 --- a/ceph_deploy/tests/unit/util/test_arg_validators.py +++ b/ceph_deploy/tests/unit/util/test_arg_validators.py @@ -1,3 +1,5 @@ +import socket +from mock import Mock from argparse import ArgumentError from pytest import raises @@ -28,3 +30,39 @@ class TestRegexMatch(object): validator('1') message = error.value.message assert message == 'wat' + + +class TestHostName(object): + + def setup(self): + self.fake_sock = Mock() + self.fake_sock.gaierror = socket.gaierror + self.fake_sock.gethostbyname.side_effect = socket.gaierror + + def test_hostname_is_not_resolvable(self): + hostname = arg_validators.Hostname(self.fake_sock) + with raises(ArgumentError) as error: + hostname('unresolvable') + message = error.value.message + assert 'is not resolvable' in message + + 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_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.gethostbyname = Mock() + hostname = arg_validators.Hostname(self.fake_sock) + result = hostname('name:example.com') + assert result == 'name:example.com' diff --git a/ceph_deploy/util/arg_validators.py b/ceph_deploy/util/arg_validators.py index de01ff4..860619f 100644 --- a/ceph_deploy/util/arg_validators.py +++ b/ceph_deploy/util/arg_validators.py @@ -42,7 +42,7 @@ class Hostname(object): raise argparse.ArgumentError(None, msg) if resolved_addr == host: - msg = "IP: %s is not a resolvable hostname" % host + msg = "%s must be a hostname not an IP" % host raise argparse.ArgumentError(None, msg) return string