~openstack-charmers/charm-helpers/stable-1604

« back to all changes in this revision

Viewing changes to tests/contrib/openstack/test_ip.py

  • Committer: Liam Young
  • Date: 2016-04-21 10:08:07 UTC
  • Revision ID: liam.young@canonical.com-20160421100807-1yljw2191vd103da
Sync for 1604 release

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
    'get_address_in_network',
10
10
    'is_clustered',
11
11
    'service_name',
 
12
    'network_get_primary_address',
 
13
    'resolve_network_cidr',
12
14
]
13
15
 
14
16
 
32
34
            setattr(self, m, self._patch(m))
33
35
        self.test_config = TestConfig()
34
36
        self.config.side_effect = self.test_config.get
 
37
        self.network_get_primary_address.side_effect = NotImplementedError
35
38
 
36
39
    def _patch(self, method):
37
40
        _m = patch('charmhelpers.contrib.openstack.ip.' + method)
48
51
        calls = [call('os-public-network'),
49
52
                 call('prefer-ipv6')]
50
53
        self.config.assert_has_calls(calls)
51
 
        self.get_address_in_network.assert_called_with(None, 'unit1')
52
54
 
53
55
    def test_resolve_address_default_internal(self):
54
56
        self.is_clustered.return_value = False
59
61
        calls = [call('os-internal-network'),
60
62
                 call('prefer-ipv6')]
61
63
        self.config.assert_has_calls(calls)
62
 
        self.get_address_in_network.assert_called_with(None, 'unit1')
63
64
 
64
65
    def test_resolve_address_public_not_clustered(self):
65
66
        self.is_clustered.return_value = False
111
112
    def test_resolve_address_ipv6_fallback(self):
112
113
        self.test_config.set('prefer-ipv6', True)
113
114
        self.is_clustered.return_value = False
114
 
        ip.resolve_address()
115
 
        self.get_address_in_network.assert_called_with(None, '::1')
 
115
        self.assertEqual(ip.resolve_address(), '::1')
116
116
 
117
117
    @patch.object(ip, 'resolve_address')
118
118
    def test_canonical_url_http(self, resolve_address):
135
135
    def test_canonical_url_ipv6(self, resolve_address):
136
136
        resolve_address.return_value = 'unit1'
137
137
        self.assertTrue(ip.canonical_url(None), 'http://[unit1]')
 
138
 
 
139
    def test_resolve_address_network_get(self):
 
140
        self.is_clustered.return_value = False
 
141
        self.unit_get.return_value = 'unit1'
 
142
        self.network_get_primary_address.side_effect = None
 
143
        self.network_get_primary_address.return_value = '10.5.60.1'
 
144
        self.assertEqual(ip.resolve_address(), '10.5.60.1')
 
145
        self.unit_get.assert_called_with('public-address')
 
146
        calls = [call('os-public-network'),
 
147
                 call('prefer-ipv6')]
 
148
        self.config.assert_has_calls(calls)
 
149
        self.network_get_primary_address.assert_called_with('public')
 
150
 
 
151
    def test_resolve_address_network_get_clustered(self):
 
152
        self.is_clustered.return_value = True
 
153
        self.test_config.set('vip', '10.5.60.20 192.168.1.20')
 
154
        self.network_get_primary_address.side_effect = None
 
155
        self.network_get_primary_address.return_value = '10.5.60.1'
 
156
        self.resolve_network_cidr.return_value = '10.5.60.1/24'
 
157
        self.assertEqual(ip.resolve_address(), '10.5.60.20')
 
158
        calls = [call('os-public-hostname'),
 
159
                 call('vip'),
 
160
                 call('os-public-network')]
 
161
        self.config.assert_has_calls(calls)
 
162
        self.network_get_primary_address.assert_called_with('public')