Skip to content

Commit 7408e4d

Browse files
committed
fix(ci): enable TOTP support in server mode tests
1 parent 5caad2d commit 7408e4d

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

.github/workflows/tests_servermode.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
run: |
2222
pip install build
2323
python -m build
24-
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e MOTO_EC2_LOAD_DEFAULT_AMIS=false -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:${{ matrix.python-version }}-slim /moto/scripts/ci_moto_server.sh &
24+
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e MOTO_EC2_LOAD_DEFAULT_AMIS=false -e MOTO_COGNITO_IDP_USER_POOL_ENABLE_TOTP=true -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:${{ matrix.python-version }}-slim /moto/scripts/ci_moto_server.sh &
2525
python scripts/ci_wait_for_server.py
2626
- name: Get pip cache dir
2727
id: pip-cache

tests/test_cognitoidp/test_cognitoidp.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3210,6 +3210,7 @@ def user_authentication_flow(
32103210
refresh_token = result["AuthenticationResult"]["RefreshToken"]
32113211

32123212
# add mfa token
3213+
secret_code = None
32133214
if with_mfa:
32143215
resp = conn.associate_software_token(
32153216
AccessToken=result["AuthenticationResult"]["AccessToken"]
@@ -3284,6 +3285,7 @@ def user_authentication_flow(
32843285
"client_id": client_id,
32853286
"client_secret": client_secret,
32863287
"secret_hash": secret_hash,
3288+
"secret_code": secret_code,
32873289
"id_token": result["AuthenticationResult"]["IdToken"],
32883290
"access_token": result["AuthenticationResult"]["AccessToken"],
32893291
"refresh_token": refresh_token,
@@ -4842,6 +4844,7 @@ def test_initiate_auth_USER_PASSWORD_AUTH_when_software_token_mfa_enabled():
48424844
password = result["password"]
48434845
client_id = result["client_id"]
48444846
secret_hash = result["secret_hash"]
4847+
secret_code = result["secret_code"]
48454848

48464849
result = conn.admin_get_user(UserPoolId=user_pool_id, Username=username)
48474850
assert result["PreferredMfaSetting"] == "SOFTWARE_TOKEN_MFA"
@@ -4856,12 +4859,15 @@ def test_initiate_auth_USER_PASSWORD_AUTH_when_software_token_mfa_enabled():
48564859
assert result["ChallengeParameters"] == {}
48574860
assert result["Session"] is not None
48584861

4862+
totp = pyotp.TOTP(secret_code)
4863+
user_code = totp.now()
4864+
48594865
result = conn.respond_to_auth_challenge(
48604866
ClientId=client_id,
48614867
ChallengeName="SOFTWARE_TOKEN_MFA",
48624868
Session=result["Session"],
48634869
ChallengeResponses={
4864-
"SOFTWARE_TOKEN_MFA_CODE": "123456",
4870+
"SOFTWARE_TOKEN_MFA_CODE": user_code,
48654871
"USERNAME": username,
48664872
"SECRET_HASH": secret_hash,
48674873
},

0 commit comments

Comments
 (0)