Skip to content

Commit 8629b95

Browse files
authored
Create test_coinbase_service.py
1 parent ac6f597 commit 8629b95

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import unittest
2+
from unittest.mock import patch, MagicMock
3+
from services.coinbase_service import CoinbaseService
4+
5+
class TestCoinbaseService(unittest.TestCase):
6+
def setUp(self):
7+
self.service = CoinbaseService()
8+
9+
@patch('requests.post')
10+
def test_create_payment_success(self, mock_post):
11+
mock_response = MagicMock()
12+
mock_response.json.return_value = {
13+
'data': {
14+
'id': 'mock_payment_id',
15+
'status': 'pending'
16+
}
17+
}
18+
mock_response.status_code = 201
19+
mock_post.return_value = mock_response
20+
21+
payment_data = self.service.create_payment(100.00, 'USD')
22+
self.assertEqual(payment_data['id'], 'mock_payment_id')
23+
self.assertEqual(payment_data['status'], 'pending')
24+
25+
@patch('requests.post')
26+
def test_create_payment_failure(self, mock_post):
27+
mock_response = MagicMock()
28+
mock_response.status_code = 400
29+
mock_post.return_value = mock_response
30+
31+
with self.assertRaises(Exception):
32+
self.service.create_payment(100.00, 'USD')
33+
34+
@patch('requests.get')
35+
def test_get_payment_status_success(self, mock_get):
36+
mock_response = MagicMock()
37+
mock_response.json.return_value = {
38+
'data': {
39+
'id': 'mock_payment_id',
40+
'status': 'completed'
41+
}
42+
}
43+
mock_response.status_code = 200
44+
mock_get.return_value = mock_response
45+
46+
payment_status = self.service.get_payment_status('mock_payment_id')
47+
self.assertEqual(payment_status['id'], 'mock_payment_id')
48+
self.assertEqual(payment_status['status'], 'completed')
49+
50+
@patch('requests.get')
51+
def test_get_payment_status_failure(self, mock_get):
52+
mock_response = MagicMock()
53+
mock_response.status_code = 404
54+
mock_get.return_value = mock_response
55+
56+
with self.assertRaises(Exception):
57+
self.service.get_payment_status('mock_payment_id')
58+
59+
if __name__ == '__main__':
60+
unittest.main()

0 commit comments

Comments
 (0)