Added user_tokens controller

Added UserToken class and nested manager.

Change-Id: Ic4ad9f887b4ace4679241f2955c9709001880a16
This commit is contained in:
Aleksey Ripinen 2015-02-24 14:26:41 +03:00
parent 9081da7057
commit 6ed70ab2d1
4 changed files with 87 additions and 1 deletions

View File

@ -0,0 +1,56 @@
# Copyright (c) 2014 Mirantis Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import mock
from storyboardclient.tests import base as test_base
from storyboardclient.v1 import users
class UserTestCase(test_base.TestCase):
@mock.patch(
"storyboardclient.v1.user_tokens.UserTokensNestedManager._list"
)
def test_user_list_tokens(self, mock_private_list):
user = users.User(manager=mock.MagicMock(), info={"id": "test_id"})
user.user_tokens.list()
mock_private_list.assert_called_once_with(
"/users/test_id/tokens", None)
@mock.patch(
"storyboardclient.v1.user_tokens.UserTokensNestedManager._post"
)
def test_user_create_token(self, mock_private_post):
user = users.User(manager=mock.MagicMock(), info={"id": "test_id"})
user.user_tokens.create(expires_in=300, user_id="test_id")
mock_private_post.assert_called_once_with(
"/users/test_id/tokens",
{"expires_in": 300,
"user_id": "test_id"})
@mock.patch("storyboardclient.v1.user_tokens.UserTokensNestedManager._put")
def test_user_update_token(self, mock_private_put):
user = users.User(manager=mock.MagicMock(), info={"id": "test_id"})
user.user_tokens.update(id="test_token_id", expires_in=500)
mock_private_put.assert_called_once_with(
"/users/test_id/tokens/test_token_id",
{"expires_in": 500})

View File

@ -29,4 +29,4 @@ class Story(base.BaseObject):
class StoriesManager(base.BaseManager):
url_key = "stories"
resource_class = Story
resource_class = Story

View File

@ -0,0 +1,28 @@
# Copyright (c) 2015 Mirantis Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from storyboardclient import base
class UserToken(base.BaseObject):
user_id = None
access_token = None
expires_in = None
class UserTokensNestedManager(base.BaseNestedManager):
parent_url_key = "users"
url_key = "tokens"
resource_class = UserToken

View File

@ -15,6 +15,7 @@
from storyboardclient import base
from storyboardclient.v1 import user_preferences
from storyboardclient.v1 import user_tokens
class User(base.BaseObject):
@ -26,6 +27,7 @@ class User(base.BaseObject):
enable_login = None
user_preferences = user_preferences.UserPreferencesManager
user_tokens = user_tokens.UserTokensNestedManager
class UsersManager(base.BaseManager):