11# pylint: disable=missing-class-docstring, missing-function-docstring, missing-module-docstring
22
3- from unittest .mock import patch
3+ from http import HTTPStatus
4+ from unittest .mock import Mock , patch
45
56import pytest
67
78from fishjam import FishjamClient
89from fishjam .errors import (
910 InvalidFishjamCredentialsError ,
1011 MissingFishjamIdError ,
11- NotFoundError ,
1212)
1313
1414VALID_FISHJAM_ID = "fjm_test"
1515VALID_MANAGEMENT_TOKEN = "tok_test"
1616
17+ VALIDATE = "fishjam.api._fishjam_client.credentials_validate_credentials.sync_detailed"
18+
19+
20+ def _response (status : HTTPStatus ):
21+ return Mock (status_code = status , headers = {})
22+
1723
1824class TestSyncValidation :
1925 def test_empty_fishjam_id_raises (self ):
@@ -28,42 +34,34 @@ def test_both_provided_does_not_raise(self):
2834
2935class TestLiveCheck :
3036 def test_create_and_verify_raises_invalid_credentials_on_404 (self ):
31- with patch .object (
32- FishjamClient ,
33- "_request" ,
34- side_effect = NotFoundError ("Fishjam not found" ),
35- ):
37+ with patch (VALIDATE , return_value = _response (HTTPStatus .NOT_FOUND )):
3638 with pytest .raises (InvalidFishjamCredentialsError ):
3739 FishjamClient .create_and_verify (
3840 fishjam_id = VALID_FISHJAM_ID ,
3941 management_token = VALID_MANAGEMENT_TOKEN ,
4042 )
4143
4244 def test_create_and_verify_returns_client_and_pings_once (self ):
43- with patch . object ( FishjamClient , "_request" , return_value = None ) as mock_request :
45+ with patch ( VALIDATE , return_value = _response ( HTTPStatus . OK )) as mock_validate :
4446 client = FishjamClient .create_and_verify (
4547 fishjam_id = VALID_FISHJAM_ID ,
4648 management_token = VALID_MANAGEMENT_TOKEN ,
4749 )
4850
4951 assert isinstance (client , FishjamClient )
50- assert mock_request .call_count == 1
52+ assert mock_validate .call_count == 1
5153
5254 def test_check_credentials_raises_invalid_credentials_on_404 (self ):
5355 client = FishjamClient (
5456 fishjam_id = VALID_FISHJAM_ID , management_token = VALID_MANAGEMENT_TOKEN
5557 )
56- with patch .object (
57- FishjamClient ,
58- "_request" ,
59- side_effect = NotFoundError ("Fishjam not found" ),
60- ):
58+ with patch (VALIDATE , return_value = _response (HTTPStatus .NOT_FOUND )):
6159 with pytest .raises (InvalidFishjamCredentialsError ):
6260 client .check_credentials ()
6361
6462 def test_check_credentials_returns_none_on_success (self ):
6563 client = FishjamClient (
6664 fishjam_id = VALID_FISHJAM_ID , management_token = VALID_MANAGEMENT_TOKEN
6765 )
68- with patch . object ( FishjamClient , "_request" , return_value = None ):
66+ with patch ( VALIDATE , return_value = _response ( HTTPStatus . OK ) ):
6967 assert client .check_credentials () is None
0 commit comments