~ubuntu-branches/ubuntu/raring/python-glanceclient/raring-proposed

« back to all changes in this revision

Viewing changes to tests/v1/test_images.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-05-29 08:34:09 UTC
  • Revision ID: package-import@ubuntu.com-20120529083409-42y5dlpvwd94521t
Tags: upstream-2012.2~f1
ImportĀ upstreamĀ versionĀ 2012.2~f1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
import StringIO
 
3
import unittest
 
4
 
 
5
from tests.v1 import utils
 
6
 
 
7
import glanceclient.v1.images
 
8
 
 
9
 
 
10
class ImageManagerTest(unittest.TestCase):
 
11
 
 
12
    def setUp(self):
 
13
        self.api = utils.FakeAPI()
 
14
        self.mgr = glanceclient.v1.images.ImageManager(self.api)
 
15
 
 
16
    def test_list(self):
 
17
        images = self.mgr.list()
 
18
        expect = [('GET', '/v1/images/detail', {}, None)]
 
19
        self.assertEqual(self.api.calls, expect)
 
20
        self.assertEqual(len(images), 1)
 
21
        self.assertEqual(images[0].id, '1')
 
22
        self.assertEqual(images[0].name, 'image-1')
 
23
        self.assertEqual(images[0].properties, {'arch': 'x86_64'})
 
24
 
 
25
    def test_list_with_limit(self):
 
26
        self.mgr.list(limit=10)
 
27
        expect = [('GET', '/v1/images/detail?limit=10', {}, None)]
 
28
        self.assertEqual(self.api.calls, expect)
 
29
 
 
30
    def test_list_with_marker(self):
 
31
        self.mgr.list(marker=20)
 
32
        expect = [('GET', '/v1/images/detail?marker=20', {}, None)]
 
33
        self.assertEqual(self.api.calls, expect)
 
34
 
 
35
    def test_list_with_filter(self):
 
36
        self.mgr.list(filters={'name': "foo"})
 
37
        expect = [('GET', '/v1/images/detail?name=foo', {}, None)]
 
38
        self.assertEqual(self.api.calls, expect)
 
39
 
 
40
    def test_get(self):
 
41
        image = self.mgr.get('1')
 
42
        expect = [('HEAD', '/v1/images/1', {}, None)]
 
43
        self.assertEqual(self.api.calls, expect)
 
44
        self.assertEqual(image.id, '1')
 
45
        self.assertEqual(image.name, 'image-1')
 
46
 
 
47
    def test_delete(self):
 
48
        self.mgr.delete('1')
 
49
        expect = [('DELETE', '/v1/images/1', {}, None)]
 
50
        self.assertEqual(self.api.calls, expect)
 
51
 
 
52
    def test_create_without_data(self):
 
53
        params = {
 
54
            'id': '1',
 
55
            'name': 'image-1',
 
56
            'container_format': 'ovf',
 
57
            'disk_format': 'vhd',
 
58
            'owner': 'asdf',
 
59
            'size': 1024,
 
60
            'min_ram': 512,
 
61
            'min_disk': 10,
 
62
            'copy_from': 'http://example.com',
 
63
            'properties': {'a': 'b', 'c': 'd'},
 
64
        }
 
65
        image = self.mgr.create(**params)
 
66
        expect_headers = {
 
67
            'x-image-meta-id': '1',
 
68
            'x-image-meta-name': 'image-1',
 
69
            'x-image-meta-container_format': 'ovf',
 
70
            'x-image-meta-disk_format': 'vhd',
 
71
            'x-image-meta-owner': 'asdf',
 
72
            'x-image-meta-size': '1024',
 
73
            'x-image-meta-min_ram': '512',
 
74
            'x-image-meta-min_disk': '10',
 
75
            'x-glance-api-copy-from': 'http://example.com',
 
76
            'x-image-meta-property-a': 'b',
 
77
            'x-image-meta-property-c': 'd',
 
78
        }
 
79
        expect = [('POST', '/v1/images', expect_headers, None)]
 
80
        self.assertEqual(self.api.calls, expect)
 
81
        self.assertEqual(image.id, '1')
 
82
        self.assertEqual(image.name, 'image-1')
 
83
        self.assertEqual(image.container_format, 'ovf')
 
84
        self.assertEqual(image.disk_format, 'vhd')
 
85
        self.assertEqual(image.owner, 'asdf')
 
86
        self.assertEqual(image.size, '1024')
 
87
        self.assertEqual(image.min_ram, '512')
 
88
        self.assertEqual(image.min_disk, '10')
 
89
        self.assertEqual(image.properties, {'a': 'b', 'c': 'd'})
 
90
 
 
91
    def test_create_with_data(self):
 
92
        image_data = StringIO.StringIO('XXX')
 
93
        self.mgr.create(data=image_data)
 
94
        expect_headers = {'x-image-meta-size': '3'}
 
95
        expect = [('POST', '/v1/images', expect_headers, image_data)]
 
96
        self.assertEqual(self.api.calls, expect)
 
97
 
 
98
    def test_update(self):
 
99
        fields = {
 
100
            'name': 'image-2',
 
101
            'container_format': 'ovf',
 
102
            'disk_format': 'vhd',
 
103
            'owner': 'asdf',
 
104
            'size': 1024,
 
105
            'min_ram': 512,
 
106
            'min_disk': 10,
 
107
            'copy_from': 'http://example.com',
 
108
            'properties': {'a': 'b', 'c': 'd'},
 
109
        }
 
110
        image = self.mgr.update('1', **fields)
 
111
        expect_hdrs = {
 
112
            'x-image-meta-name': 'image-2',
 
113
            'x-image-meta-container_format': 'ovf',
 
114
            'x-image-meta-disk_format': 'vhd',
 
115
            'x-image-meta-owner': 'asdf',
 
116
            'x-image-meta-size': '1024',
 
117
            'x-image-meta-min_ram': '512',
 
118
            'x-image-meta-min_disk': '10',
 
119
            'x-glance-api-copy-from': 'http://example.com',
 
120
            'x-image-meta-property-a': 'b',
 
121
            'x-image-meta-property-c': 'd',
 
122
        }
 
123
        expect = [('PUT', '/v1/images/1', expect_hdrs, None)]
 
124
        self.assertEqual(self.api.calls, expect)
 
125
        self.assertEqual(image.id, '1')
 
126
        self.assertEqual(image.name, 'image-2')
 
127
 
 
128
    def test_update_with_data(self):
 
129
        image_data = StringIO.StringIO('XXX')
 
130
        self.mgr.update('1', data=image_data)
 
131
        expect_headers = {'x-image-meta-size': '3'}
 
132
        expect = [('PUT', '/v1/images/1', expect_headers, image_data)]
 
133
        self.assertEqual(self.api.calls, expect)
 
134
 
 
135
 
 
136
class ImageTest(unittest.TestCase):
 
137
    def setUp(self):
 
138
        self.api = utils.FakeAPI()
 
139
        self.mgr = glanceclient.v1.images.ImageManager(self.api)
 
140
 
 
141
    def test_delete(self):
 
142
        image = self.mgr.get('1')
 
143
        image.delete()
 
144
        expect = [
 
145
            ('HEAD', '/v1/images/1', {}, None),
 
146
            ('DELETE', '/v1/images/1', {}, None),
 
147
        ]
 
148
        self.assertEqual(self.api.calls, expect)
 
149
 
 
150
    def test_update(self):
 
151
        image = self.mgr.get('1')
 
152
        image.update(name='image-5')
 
153
        expect = [
 
154
            ('HEAD', '/v1/images/1', {}, None),
 
155
            ('PUT', '/v1/images/1', {'x-image-meta-name': 'image-5'}, None),
 
156
        ]
 
157
        self.assertEqual(self.api.calls, expect)