~xnox/pyjuju/myjuju

« back to all changes in this revision

Viewing changes to juju/providers/openstack/tests/test_machine.py

  • Committer: Dmitrijs Ledkovs
  • Date: 2012-07-03 17:39:28 UTC
  • mfrom: (467.5.56 openstack)
  • Revision ID: dmitrijs.ledkovs@canonical.com-20120703173928-fsyue2inatiucrp2
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""Tests for server wrapper and helper functions"""
 
2
 
 
3
from juju.providers.openstack.machine import (
 
4
    get_server_addresses,
 
5
    get_server_status,
 
6
    )
 
7
 
 
8
from juju.lib.testing import TestCase
 
9
 
 
10
 
 
11
class GetServerStatusTest(TestCase):
 
12
    """Tests for mapping of Nova status names to EC2 style names"""
 
13
 
 
14
    def test_build_schedualing(self):
 
15
        self.assertEqual("pending",
 
16
            get_server_status({u'status': u'BUILD(scheduling)'}))
 
17
 
 
18
    def test_build_spawning(self):
 
19
        self.assertEqual("pending",
 
20
            get_server_status({u'status': u'BUILD(spawning)'}))
 
21
 
 
22
    def test_active(self):
 
23
        self.assertEqual("running",
 
24
            get_server_status({u'status': u'ACTIVE'}))
 
25
 
 
26
    def test_no_status(self):
 
27
        self.assertEqual("pending",
 
28
            get_server_status({}))
 
29
 
 
30
    def test_mystery_status(self):
 
31
        self.assertEqual("unknown",
 
32
            get_server_status({u'status': u'NEVER_BEFORE_SEEN_MYSTERY'}))
 
33
 
 
34
 
 
35
class GetServerAddressesTest(TestCase):
 
36
    """Tests for deriving a public and private address from Nova dict"""
 
37
 
 
38
    def test_missing(self):
 
39
        self.assertEqual((None, None), get_server_addresses({}))
 
40
 
 
41
    def test_empty(self):
 
42
        self.assertEqual((None, None),
 
43
            get_server_addresses({u'addresses': {}}))
 
44
 
 
45
    def test_private_only(self):
 
46
        self.assertEqual(("127.0.0.4", None),
 
47
            get_server_addresses({u'addresses': {
 
48
                "private": [{"addr": "127.0.0.4", "version": 4}],
 
49
            }}))
 
50
 
 
51
    def test_private_plus(self):
 
52
        self.assertEqual(("127.0.0.4", "8.8.4.4"),
 
53
            get_server_addresses({u'addresses': {
 
54
                "private": [
 
55
                    {"addr": "127.0.0.4", "version": 4},
 
56
                    {"addr": "8.8.4.4", "version": 4},
 
57
                ],
 
58
            }}))
 
59
 
 
60
    def test_public_only(self):
 
61
        self.assertEqual((None, "8.8.8.8"),
 
62
            get_server_addresses({u'addresses': {
 
63
                "public": [{"addr": "8.8.8.8", "version": 4}],
 
64
            }}))
 
65
 
 
66
    def test_public_and_private(self):
 
67
        self.assertEqual(("127.0.0.4", "8.8.8.8"),
 
68
            get_server_addresses({u'addresses': {
 
69
                "public": [{"addr": "8.8.8.8", "version": 4}],
 
70
                "private": [{"addr": "127.0.0.4", "version": 4}],
 
71
            }}))
 
72
 
 
73
    def test_public_and_private_plus(self):
 
74
        self.assertEqual(("127.0.0.4", "8.8.8.8"),
 
75
            get_server_addresses({u'addresses': {
 
76
                "public": [{"addr": "8.8.8.8", "version": 4}],
 
77
                "private": [
 
78
                    {"addr": "127.0.0.4", "version": 4},
 
79
                    {"addr": "8.8.4.4", "version": 4},
 
80
                ],
 
81
            }}))
 
82
 
 
83
    def test_custom_only(self):
 
84
        self.assertEqual(("127.0.0.2", None),
 
85
            get_server_addresses({u'addresses': {
 
86
                "special": [{"addr": "127.0.0.2", "version": 4}],
 
87
            }}))
 
88
 
 
89
    def test_custom_plus(self):
 
90
        self.assertEqual(("127.0.0.2", "8.8.4.4"),
 
91
            get_server_addresses({u'addresses': {
 
92
                "special": [
 
93
                    {"addr": "127.0.0.2", "version": 4},
 
94
                    {"addr": "8.8.4.4", "version": 4},
 
95
                ],
 
96
            }}))
 
97
 
 
98
    def test_custom_and_private(self):
 
99
        self.assertEqual(("127.0.0.4", None),
 
100
            get_server_addresses({u'addresses': {
 
101
                "special": [{"addr": "127.0.0.2", "version": 4}],
 
102
                "private": [{"addr": "127.0.0.4", "version": 4}],
 
103
            }}))
 
104
 
 
105
    def test_custom_and_public(self):
 
106
        self.assertEqual(("127.0.0.2", "8.8.8.8"),
 
107
            get_server_addresses({u'addresses': {
 
108
                "special": [{"addr": "127.0.0.2", "version": 4}],
 
109
                "public": [{"addr": "8.8.8.8", "version": 4}],
 
110
            }}))