moto/tests/test_iam/test_iam_password_last_used.py

38 lines
1.2 KiB
Python

import boto3
from datetime import datetime
from moto import mock_iam, settings
from moto.backends import get_backend
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
from unittest import SkipTest
@mock_iam
def test_password_last_used():
if settings.TEST_SERVER_MODE:
raise SkipTest("Can't set password_last_used in ServerMode")
client = boto3.client("iam", "us-east-1")
username = "test.user"
client.create_user(Path="/staff/", UserName=username)["User"]
client.create_login_profile(
UserName=username, Password="Password1", PasswordResetRequired=False
)
access_key = client.create_access_key(UserName=username)["AccessKey"]
as_new_user = boto3.resource(
"iam",
region_name="us-east-1",
aws_access_key_id=access_key["AccessKeyId"],
aws_secret_access_key=access_key["SecretAccessKey"],
)
# Username is set, but password not yet
assert as_new_user.CurrentUser().user_name == username
assert not as_new_user.CurrentUser().password_last_used
iam_backend = get_backend("iam")[ACCOUNT_ID]["global"]
iam_backend.users[username].password_last_used = datetime.utcnow()
# Password is returned now
assert as_new_user.CurrentUser().password_last_used