From 2d05f8a79a0aa45776ee47f47615e68ea3d5602c Mon Sep 17 00:00:00 2001 From: Steve Pulec Date: Sun, 19 Mar 2017 11:09:30 -0400 Subject: [PATCH] Add functionality for iam get-user with current user. Closes #480. --- moto/iam/responses.py | 9 +++++++-- tests/test_iam/test_iam.py | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/moto/iam/responses.py b/moto/iam/responses.py index 318c04f3a..71e2993f9 100644 --- a/moto/iam/responses.py +++ b/moto/iam/responses.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals from moto.core.responses import BaseResponse -from .models import iam_backend +from .models import iam_backend, User class IamResponse(BaseResponse): @@ -234,7 +234,12 @@ class IamResponse(BaseResponse): def get_user(self): user_name = self._get_param('UserName') - user = iam_backend.get_user(user_name) + if user_name: + user = iam_backend.get_user(user_name) + else: + user = User(name='default_user') + # If no user is specific, IAM returns the current user + template = self.response_template(USER_TEMPLATE) return template.render(action='Get', user=user) diff --git a/tests/test_iam/test_iam.py b/tests/test_iam/test_iam.py index 076f33916..021d7c041 100644 --- a/tests/test_iam/test_iam.py +++ b/tests/test_iam/test_iam.py @@ -213,6 +213,14 @@ def test_get_user(): conn.get_user('my-user') +@mock_iam_deprecated() +def test_get_current_user(): + """If no user is specific, IAM returns the current user""" + conn = boto.connect_iam() + user = conn.get_user()['get_user_response']['get_user_result']['user'] + user['user_name'].should.equal('default_user') + + @mock_iam() def test_list_users(): path_prefix = '/'