~ubuntu-branches/ubuntu/raring/glance/raring-updates

« back to all changes in this revision

Viewing changes to glance/tests/unit/test_context_middleware.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Adam Gandleman, Chuck Short
  • Date: 2012-08-16 13:58:32 UTC
  • mfrom: (1.1.41)
  • Revision ID: package-import@ubuntu.com-20120816135832-4m40ppptd1l073fr
Tags: 2012.2~f3-0ubuntu1
[ Adam Gandleman ]
* debian/patches/sql_conn.patch: Also set default sqlite path for
  in glance-api.conf. (LP: #1028711)
* debian/patches/fix-docs-build.patch: Fix docs build

[ Chuck Short ]
* New upstream version.
* debian/control: python-xattr is no longer a required depends.
  (LP: #1031396)
* debian/control: Move python-jsonschema to glance.
  (LP: #1030152)
* debian/control: Start the slow transition to python-glanceclient.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
 
2
2
import webob
3
3
 
4
 
from glance.common import context
 
4
from glance.api.middleware import context
 
5
import glance.context
5
6
from glance.tests.unit import base
6
7
 
7
8
 
8
9
class TestContextMiddleware(base.IsolatedUnitTest):
9
 
    def _build_request(self, roles=None, identity_status='Confirmed'):
 
10
    def _build_request(self, roles=None, identity_status='Confirmed',
 
11
            service_catalog=None):
10
12
        req = webob.Request.blank('/')
11
13
        req.headers['x-auth-token'] = 'token1'
12
14
        req.headers['x-identity-status'] = identity_status
14
16
        req.headers['x-tenant-id'] = 'tenant1'
15
17
        _roles = roles or ['role1', 'role2']
16
18
        req.headers['x-roles'] = ','.join(_roles)
 
19
        if service_catalog:
 
20
            req.headers['x-service-catalog'] = service_catalog
17
21
 
18
22
        return req
19
23
 
88
92
        self.assertRaises(webob.exc.HTTPUnauthorized,
89
93
                          middleware.process_request, req)
90
94
 
 
95
    def test_service_catalog(self):
 
96
        catalog_json = "[{}]"
 
97
        req = self._build_request(service_catalog=catalog_json)
 
98
        self._build_middleware().process_request(req)
 
99
        self.assertEqual([{}], req.context.service_catalog)
 
100
 
 
101
    def test_invalid_service_catalog(self):
 
102
        catalog_json = "bad json"
 
103
        req = self._build_request(service_catalog=catalog_json)
 
104
        middleware = self._build_middleware()
 
105
        self.assertRaises(webob.exc.HTTPInternalServerError,
 
106
                          middleware.process_request, req)
 
107
 
91
108
 
92
109
class TestUnauthenticatedContextMiddleware(base.IsolatedUnitTest):
93
110
    def test_request(self):
99
116
        self.assertEqual(req.context.tenant, None)
100
117
        self.assertEqual(req.context.roles, [])
101
118
        self.assertTrue(req.context.is_admin)
 
119
 
 
120
    def test_response(self):
 
121
        middleware = context.UnauthenticatedContextMiddleware(None)
 
122
        req = webob.Request.blank('/')
 
123
        req.context = glance.context.RequestContext()
 
124
        resp = webob.Response()
 
125
        resp.request = req
 
126
        middleware.process_response(resp)
 
127
        self.assertEqual(resp.headers['x-openstack-request-id'],
 
128
                         'req-%s' % req.context.request_id)