~ubuntu-branches/ubuntu/vivid/ironic/vivid-updates

« back to all changes in this revision

Viewing changes to ironic/tests/api/v1/test_ports.py

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2015-01-05 12:21:37 UTC
  • mfrom: (1.2.4)
  • Revision ID: package-import@ubuntu.com-20150105122137-171bqrdpcxqipunk
Tags: 2015.1~b1-0ubuntu1
* New upstream beta release:
  - d/control: Align version requirements with upstream release.
* d/watch: Update uversionmangle to deal with kilo beta versioning
  changes.
* d/control: Bumped Standards-Version to 3.9.6, no changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
from oslo.utils import timeutils
23
23
from six.moves.urllib import parse as urlparse
24
24
from testtools.matchers import HasLength
 
25
from wsme import types as wtypes
25
26
 
 
27
from ironic.api.controllers.v1 import port as api_port
26
28
from ironic.common import exception
27
29
from ironic.common import utils
28
30
from ironic.conductor import rpcapi
29
 
from ironic.tests.api import base
 
31
from ironic.tests.api import base as api_base
30
32
from ironic.tests.api import utils as apiutils
 
33
from ironic.tests import base
31
34
from ironic.tests.db import utils as dbutils
32
35
from ironic.tests.objects import utils as obj_utils
33
36
 
42
45
    return port
43
46
 
44
47
 
45
 
class TestListPorts(base.FunctionalTest):
 
48
class TestPortObject(base.TestCase):
 
49
 
 
50
    def test_port_init(self):
 
51
        port_dict = apiutils.port_post_data(node_id=None)
 
52
        del port_dict['extra']
 
53
        port = api_port.Port(**port_dict)
 
54
        self.assertEqual(wtypes.Unset, port.extra)
 
55
 
 
56
 
 
57
class TestListPorts(api_base.FunctionalTest):
46
58
 
47
59
    def setUp(self):
48
60
        super(TestListPorts, self).setUp()
53
65
        self.assertEqual([], data['ports'])
54
66
 
55
67
    def test_one(self):
56
 
        port = obj_utils.create_test_port(self.context)
 
68
        port = obj_utils.create_test_port(self.context, node_id=self.node.id)
57
69
        data = self.get_json('/ports')
58
70
        self.assertEqual(port.uuid, data['ports'][0]["uuid"])
59
71
        self.assertNotIn('extra', data['ports'][0])
62
74
        self.assertNotIn('node_id', data['ports'][0])
63
75
 
64
76
    def test_get_one(self):
65
 
        port = obj_utils.create_test_port(self.context)
 
77
        port = obj_utils.create_test_port(self.context, node_id=self.node.id)
66
78
        data = self.get_json('/ports/%s' % port.uuid)
67
79
        self.assertEqual(port.uuid, data['uuid'])
68
80
        self.assertIn('extra', data)
71
83
        self.assertNotIn('node_id', data)
72
84
 
73
85
    def test_detail(self):
74
 
        port = obj_utils.create_test_port(self.context)
 
86
        port = obj_utils.create_test_port(self.context, node_id=self.node.id)
75
87
        data = self.get_json('/ports/detail')
76
88
        self.assertEqual(port.uuid, data['ports'][0]["uuid"])
77
89
        self.assertIn('extra', data['ports'][0])
80
92
        self.assertNotIn('node_id', data['ports'][0])
81
93
 
82
94
    def test_detail_against_single(self):
83
 
        port = obj_utils.create_test_port(self.context)
 
95
        port = obj_utils.create_test_port(self.context, node_id=self.node.id)
84
96
        response = self.get_json('/ports/%s/detail' % port.uuid,
85
97
                                 expect_errors=True)
86
98
        self.assertEqual(404, response.status_int)
89
101
        ports = []
90
102
        for id_ in range(5):
91
103
            port = obj_utils.create_test_port(self.context,
92
 
                                            id=id_,
 
104
                                            node_id=self.node.id,
93
105
                                            uuid=utils.generate_uuid(),
94
106
                                            address='52:54:00:cf:2d:3%s' % id_)
95
107
            ports.append(port.uuid)
101
113
 
102
114
    def test_links(self):
103
115
        uuid = utils.generate_uuid()
104
 
        obj_utils.create_test_port(self.context, id=1, uuid=uuid)
 
116
        obj_utils.create_test_port(self.context,
 
117
                                   uuid=uuid,
 
118
                                   node_id=self.node.id)
105
119
        data = self.get_json('/ports/%s' % uuid)
106
120
        self.assertIn('links', data.keys())
107
121
        self.assertEqual(2, len(data['links']))
114
128
        ports = []
115
129
        for id_ in range(5):
116
130
            port = obj_utils.create_test_port(self.context,
117
 
                                            id=id_,
 
131
                                            node_id=self.node.id,
118
132
                                            uuid=utils.generate_uuid(),
119
133
                                            address='52:54:00:cf:2d:3%s' % id_)
120
134
            ports.append(port.uuid)
129
143
        ports = []
130
144
        for id_ in range(5):
131
145
            port = obj_utils.create_test_port(self.context,
132
 
                                            id=id_,
 
146
                                            node_id=self.node.id,
133
147
                                            uuid=utils.generate_uuid(),
134
148
                                            address='52:54:00:cf:2d:3%s' % id_)
135
149
            ports.append(port.uuid)
143
157
        address_template = "aa:bb:cc:dd:ee:f%d"
144
158
        for id_ in range(3):
145
159
            obj_utils.create_test_port(self.context,
146
 
                                       id=id_,
 
160
                                       node_id=self.node.id,
147
161
                                       uuid=utils.generate_uuid(),
148
162
                                       address=address_template % id_)
149
163
 
158
172
        self.assertThat(data['ports'], HasLength(0))
159
173
 
160
174
    def test_port_by_address_invalid_address_format(self):
161
 
        obj_utils.create_test_port(self.context)
 
175
        obj_utils.create_test_port(self.context, node_id=self.node.id)
162
176
        invalid_address = 'invalid-mac-format'
163
177
        response = self.get_json('/ports?address=%s' % invalid_address,
164
178
                                 expect_errors=True)
168
182
 
169
183
 
170
184
@mock.patch.object(rpcapi.ConductorAPI, 'update_port')
171
 
class TestPatch(base.FunctionalTest):
 
185
class TestPatch(api_base.FunctionalTest):
172
186
 
173
187
    def setUp(self):
174
188
        super(TestPatch, self).setUp()
175
189
        self.node = obj_utils.create_test_node(self.context)
176
 
        self.port = obj_utils.create_test_port(self.context)
 
190
        self.port = obj_utils.create_test_port(self.context,
 
191
                                               node_id=self.node.id)
177
192
 
178
193
        p = mock.patch.object(rpcapi.ConductorAPI, 'get_topic_for')
179
194
        self.mock_gtf = p.start()
467
482
        self.assertEqual(address.lower(), kargs.address)
468
483
 
469
484
 
470
 
class TestPost(base.FunctionalTest):
 
485
class TestPost(api_base.FunctionalTest):
471
486
 
472
487
    def setUp(self):
473
488
        super(TestPost, self).setUp()
599
614
        self.assertIn(address, error_msg.upper())
600
615
 
601
616
 
602
 
class TestDelete(base.FunctionalTest):
 
617
class TestDelete(api_base.FunctionalTest):
603
618
 
604
619
    def setUp(self):
605
620
        super(TestDelete, self).setUp()
606
621
        self.node = obj_utils.create_test_node(self.context)
607
 
        self.port = obj_utils.create_test_port(self.context)
 
622
        self.port = obj_utils.create_test_port(self.context,
 
623
                                               node_id=self.node.id)
608
624
 
609
625
    def test_delete_port_byid(self):
610
626
        self.delete('/ports/%s' % self.port.uuid)