@@ -85,6 +85,24 @@ def mock_order_error_response():
8585 }
8686
8787
88+ @pytest .fixture
89+ def mock_order_unauthorized_error_response ():
90+ return {
91+ "errors" : [
92+ {
93+ "code" : "UNAUTHORIZED" ,
94+ "title" : "UNAUTHORIZED" ,
95+ "description" : "Unauthorized" ,
96+ }
97+ ],
98+ "metadata" : {
99+ "totalRecords" : 1 ,
100+ "totalPages" : 1 ,
101+ "requestDatetime" : "2025-04-15T10:34:29.576147084-03:00[America/Sao_Paulo]" ,
102+ },
103+ }
104+
105+
88106@pytest .fixture
89107def mock_charge_response ():
90108 return {
@@ -358,6 +376,23 @@ def test_create_order_with_invalid_card(
358376 )
359377 assert exc_info .value .message == "Erro no Pagamento"
360378
379+ @patch ("barte.client.requests.Session.request" )
380+ def test_create_order_with_error_unauthorized (
381+ self , mock_request , barte_client , mock_order_unauthorized_error_response
382+ ):
383+ """Test creating a new order with invalid card"""
384+ mock_request .return_value .json .return_value = (
385+ mock_order_unauthorized_error_response
386+ )
387+ mock_request .return_value .raise_for_status = Mock ()
388+
389+ with pytest .raises (BarteError ) as exc_info :
390+ barte_client .create_order ({})
391+
392+ assert exc_info .value .code == "UNAUTHORIZED"
393+ assert exc_info .value .message == "Unauthorized"
394+ assert exc_info .value .charge_uuid is None
395+
361396 @patch ("barte.client.requests.Session.request" )
362397 def test_create_card_token (self , mock_request , barte_client ):
363398 """Test creating a card token using create_card_token"""
0 commit comments