44import workos
55
66from tests .utils .fixtures .mock_auth_factor_totp import MockAuthFactorTotp
7+ from tests .utils .fixtures .mock_email_verification import MockEmailVerification
78from tests .utils .fixtures .mock_invitation import MockInvitation
89from tests .utils .fixtures .mock_magic_auth import MockMagicAuth
910from tests .utils .fixtures .mock_organization_membership import MockOrganizationMembership
11+ from tests .utils .fixtures .mock_password_reset import MockPasswordReset
1012from tests .utils .fixtures .mock_session import MockSession
1113from tests .utils .fixtures .mock_user import MockUser
1214from workos .user_management import UserManagement
@@ -213,10 +215,18 @@ def mock_auth_factors(self):
213215 }
214216 return dict_response
215217
218+ @pytest .fixture
219+ def mock_email_verification (self ):
220+ return MockEmailVerification ("email_verification_ABCDE" ).to_dict ()
221+
216222 @pytest .fixture
217223 def mock_magic_auth (self ):
218224 return MockMagicAuth ("magic_auth_ABCDE" ).to_dict ()
219225
226+ @pytest .fixture
227+ def mock_password_reset (self ):
228+ return MockPasswordReset ("password_reset_ABCDE" ).to_dict ()
229+
220230 @pytest .fixture
221231 def mock_invitation (self ):
222232 return MockInvitation ("invitation_ABCDE" ).to_dict ()
@@ -869,16 +879,37 @@ def test_get_logout_url(self):
869879
870880 assert expected == result
871881
882+ def test_get_password_reset (self , mock_password_reset , capture_and_mock_request ):
883+ url , request_kwargs = capture_and_mock_request ("get" , mock_password_reset , 200 )
884+
885+ password_reset = self .user_management .get_password_reset ("password_reset_ABCDE" )
886+
887+ assert url [0 ].endswith ("user_management/password_reset/password_reset_ABCDE" )
888+ assert password_reset ["id" ] == "password_reset_ABCDE"
889+
890+ def test_create_password_reset (self , capture_and_mock_request , mock_password_reset ):
891+ 892+ url , _ = capture_and_mock_request ("post" , mock_password_reset , 201 )
893+
894+ password_reset = self .user_management .create_password_reset (email = email )
895+
896+ assert url [0 ].endswith ("user_management/password_reset" )
897+ assert password_reset ["email" ] == email
898+
872899 def test_send_password_reset_email (self , capture_and_mock_request ):
873900874901 password_reset_url = "https://foo-corp.com/reset-password"
875902
876903 url , request = capture_and_mock_request ("post" , None , 200 )
877904
878- response = self .user_management .send_password_reset_email (
879- email = email ,
880- password_reset_url = password_reset_url ,
881- )
905+ with pytest .warns (
906+ DeprecationWarning ,
907+ match = "'send_password_reset_email' is deprecated. Please use 'create_password_reset' instead. This method will be removed in a future major version." ,
908+ ):
909+ response = self .user_management .send_password_reset_email (
910+ email = email ,
911+ password_reset_url = password_reset_url ,
912+ )
882913
883914 assert url [0 ].endswith ("user_management/password_reset/send" )
884915 assert request ["json" ]["email" ] == email
@@ -901,6 +932,22 @@ def test_reset_password(self, capture_and_mock_request, mock_user):
901932 assert request ["json" ]["token" ] == token
902933 assert request ["json" ]["new_password" ] == new_password
903934
935+ def test_get_email_verification (
936+ self , mock_email_verification , capture_and_mock_request
937+ ):
938+ url , request_kwargs = capture_and_mock_request (
939+ "get" , mock_email_verification , 200
940+ )
941+
942+ email_verification = self .user_management .get_email_verification (
943+ "email_verification_ABCDE"
944+ )
945+
946+ assert url [0 ].endswith (
947+ "user_management/email_verification/email_verification_ABCDE"
948+ )
949+ assert email_verification ["id" ] == "email_verification_ABCDE"
950+
904951 def test_send_verification_email (self , capture_and_mock_request , mock_user ):
905952 user_id = "user_01H7ZGXFP5C6BBQY6Z7277ZCT0"
906953
0 commit comments