38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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
 |