Add UT for token request with project name 03/38903/1
authorYun Huang <yun.huang@windriver.com>
Tue, 27 Mar 2018 06:52:24 +0000 (14:52 +0800)
committerYun Huang <yun.huang@windriver.com>
Tue, 27 Mar 2018 06:52:24 +0000 (14:52 +0800)
Change-Id: I2eaad79b0890eb7c04074b0f23b27ea09e2a8e74
Issue-ID: MULTICLOUD-203
Signed-off-by: Yun Huang <yun.huang@windriver.com>
newton/newton/proxy/tests/test_identity_proxy.py

index adece80..720ca13 100644 (file)
@@ -516,6 +516,68 @@ class TestIdentityService(unittest.TestCase):
         self.assertIsNotNone(context['token']['catalog'])
 
 
+    @mock.patch.object(VimDriverUtils, 'get_vim_info')
+    @mock.patch.object(VimDriverUtils, 'get_session')
+    @mock.patch.object(VimDriverUtils, 'get_auth_state')
+    @mock.patch.object(VimDriverUtils, 'update_token_cache')
+    def test_token_with_tenantname(self, mock_update_token_cache, mock_get_auth_state,
+                   mock_get_session, mock_get_vim_info):
+        '''
+                test API: get token
+        :param mock_update_token_cache:
+        :param mock_get_auth_state:
+        :param mock_get_session:
+        :param mock_get_vim_info:
+        :return:
+        '''
+
+        # mock VimDriverUtils APIs
+        mock_session_specs = ["get"]
+        mock_session_get_response = {'status': 200}
+        mock_session = mock.Mock(name='mock_session',
+                                 spec=mock_session_specs)
+        mock_session.get.return_value = mock_session_get_response
+
+        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
+        mock_get_session.return_value = mock_session
+        mock_get_auth_state.return_value = json.dumps(mock_auth_state)
+        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
+
+        # simulate client to make the request
+        token_data = {
+            "auth": {
+                "identity": {
+                    "methods": ["password"],
+                    "password": {
+                        "user": {
+                            "name": "demo",
+                            "domain": {"name": "Default"},
+                            "password": "demo"
+                        }
+                    }
+                },
+                "scope": {
+                    "project": {
+                        "domain": {"name":"Default"},
+                        "name": "Integration"
+                    }
+                }
+            }
+        }
+
+        response = self.client.post(
+            "/api/%s/v0/windriver-hudson-dc_RegionOne/identity/v3/"
+            "auth/tokens" % test_base.MULTIVIM_VERSION,
+            data=json.dumps(token_data), content_type='application/json')
+        self.failUnlessEqual(status.HTTP_201_CREATED,
+                             response.status_code)
+        context = response.json()
+
+        self.assertEqual(mock_info.MOCK_TOKEN_ID,
+                         response['X-Subject-Token'])
+        self.assertIsNotNone(context['token']['catalog'])
+
+
     @mock.patch.object(VimDriverUtils, 'get_vim_info')
     @mock.patch.object(VimDriverUtils, 'get_session')
     @mock.patch.object(VimDriverUtils, 'get_auth_state')
@@ -556,4 +618,4 @@ class TestIdentityService(unittest.TestCase):
         self.assertIsNotNone(context['access']['token'])
         self.assertEqual(mock_info.MOCK_TOKEN_ID,
                          context['access']['token']["id"])
-        self.assertIsNotNone(context['access']['serviceCatalog'])
\ No newline at end of file
+        self.assertIsNotNone(context['access']['serviceCatalog'])