~ubuntu-branches/ubuntu/saucy/nova/saucy-proposed

« back to all changes in this revision

Viewing changes to nova/tests/api/openstack/compute/contrib/test_quotas.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-05-24 13:12:53 UTC
  • mfrom: (1.1.55)
  • Revision ID: package-import@ubuntu.com-20120524131253-ommql08fg1en06ut
Tags: 2012.2~f1-0ubuntu1
* New upstream release.
* Prepare for quantal:
  - Dropped debian/patches/upstream/0006-Use-project_id-in-ec2.cloud._format_image.patch
  - Dropped debian/patches/upstream/0005-Populate-image-properties-with-project_id-again.patch
  - Dropped debian/patches/upstream/0004-Fixed-bug-962840-added-a-test-case.patch
  - Dropped debian/patches/upstream/0003-Allow-unprivileged-RADOS-users-to-access-rbd-volumes.patch
  - Dropped debian/patches/upstream/0002-Stop-libvirt-test-from-deleting-instances-dir.patch
  - Dropped debian/patches/upstream/0001-fix-bug-where-nova-ignores-glance-host-in-imageref.patch 
  - Dropped debian/patches/0001-fix-useexisting-deprecation-warnings.patch
* debian/control: Add python-keystone as a dependency. (LP: #907197)
* debian/patches/kombu_tests_timeout.patch: Refreshed.
* debian/nova.conf, debian/nova-common.postinst: Convert to new ini
  file configuration
* debian/patches/nova-manage_flagfile_location.patch: Refreshed

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
#    License for the specific language governing permissions and limitations
16
16
#    under the License.
17
17
 
 
18
from lxml import etree
18
19
import webob
19
 
from lxml import etree
20
20
 
 
21
from nova.api.openstack.compute.contrib import quotas
21
22
from nova.api.openstack import wsgi
22
 
from nova.api.openstack.compute.contrib import quotas
23
23
from nova import test
24
24
from nova.tests.api.openstack import fakes
25
25
 
29
29
            'gigabytes': 1000, 'ram': 51200, 'floating_ips': 10,
30
30
            'instances': 10, 'injected_files': 5, 'cores': 20,
31
31
            'injected_file_content_bytes': 10240,
32
 
            'security_groups': 10, 'security_group_rules': 20}}
33
 
 
34
 
 
35
 
def quota_set_list():
36
 
    return {'quota_set_list': [quota_set('1234'), quota_set('5678'),
37
 
                               quota_set('update_me')]}
 
32
            'security_groups': 10, 'security_group_rules': 20,
 
33
            'key_pairs': 100}}
38
34
 
39
35
 
40
36
class QuotaSetsTest(test.TestCase):
56
52
            'injected_file_content_bytes': 10240,
57
53
            'security_groups': 10,
58
54
            'security_group_rules': 20,
 
55
            'key_pairs': 100,
59
56
            }
60
57
 
61
 
        quota_set = quotas.QuotaSetsController()._format_quota_set('1234',
62
 
                                                            raw_quota_set)
 
58
        quota_set = self.controller._format_quota_set('1234', raw_quota_set)
63
59
        qs = quota_set['quota_set']
64
60
 
65
61
        self.assertEqual(qs['id'], '1234')
74
70
        self.assertEqual(qs['injected_file_content_bytes'], 10240)
75
71
        self.assertEqual(qs['security_groups'], 10)
76
72
        self.assertEqual(qs['security_group_rules'], 20)
 
73
        self.assertEqual(qs['key_pairs'], 100)
77
74
 
78
75
    def test_quotas_defaults(self):
79
76
        uri = '/v2/fake_tenant/os-quota-sets/fake_tenant/defaults'
94
91
                    'injected_file_content_bytes': 10240,
95
92
                    'security_groups': 10,
96
93
                    'security_group_rules': 20,
 
94
                    'key_pairs': 100,
97
95
                    }}
98
96
 
99
97
        self.assertEqual(res_dict, expected)
117
115
                              'metadata_items': 128, 'injected_files': 5,
118
116
                              'injected_file_content_bytes': 10240,
119
117
                              'security_groups': 10,
120
 
                              'security_group_rules': 20}}
 
118
                              'security_group_rules': 20,
 
119
                              'key_pairs': 100}}
121
120
 
122
121
        req = fakes.HTTPRequest.blank('/v2/fake4/os-quota-sets/update_me',
123
122
                                      use_admin_context=True)
132
131
                              'metadata_items': 128, 'injected_files': 5,
133
132
                              'injected_file_content_bytes': 10240,
134
133
                              'security_groups': 10,
135
 
                              'security_group_rules': 20}}
 
134
                              'security_group_rules': 20,
 
135
                              'key_pairs': 100}}
136
136
 
137
137
        req = fakes.HTTPRequest.blank('/v2/fake4/os-quota-sets/update_me')
138
138
        self.assertRaises(webob.exc.HTTPForbidden, self.controller.update,
139
139
                          req, 'update_me', body)
140
140
 
 
141
    def test_quotas_update_invalid_limit(self):
 
142
        body = {'quota_set': {'instances': -2, 'cores': -2,
 
143
                              'ram': -2, 'volumes': -2,
 
144
                              'gigabytes': -2, 'floating_ips': -2,
 
145
                              'metadata_items': -2, 'injected_files': -2,
 
146
                              'injected_file_content_bytes': -2}}
 
147
 
 
148
        req = fakes.HTTPRequest.blank('/v2/fake4/os-quota-sets/update_me',
 
149
                                      use_admin_context=True)
 
150
        self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
 
151
                          req, 'update_me', body)
 
152
 
141
153
 
142
154
class QuotaXMLSerializerTest(test.TestCase):
143
155
    def setUp(self):
158
170
                injected_files=80,
159
171
                security_groups=10,
160
172
                security_group_rules=20,
 
173
                key_pairs=100,
161
174
                cores=90))
162
175
        text = self.serializer.serialize(exemplar)
163
176
 
183
196
                injected_files='80',
184
197
                security_groups='10',
185
198
                security_group_rules='20',
 
199
                key_pairs='100',
186
200
                cores='90'))
187
201
        intext = ("<?xml version='1.0' encoding='UTF-8'?>\n"
188
202
                  '<quota_set>'
197
211
                  '<injected_files>80</injected_files>'
198
212
                  '<security_groups>10</security_groups>'
199
213
                  '<security_group_rules>20</security_group_rules>'
 
214
                  '<key_pairs>100</key_pairs>'
200
215
                  '<cores>90</cores>'
201
216
                  '</quota_set>')
202
217