bookmyservice-ams / tests /unit /test_payment.py
MukeshKapoor25's picture
feat: add authentication, security middleware, and optimize JSON handling
fd2ce9d
import pytest
from unittest.mock import Mock, patch
from app.repositories.payment import save_order_to_db
from app.services.razorpay import RazorpayService
class TestPaymentRepository:
"""Test cases for Payment repository"""
@patch('app.repositories.payment.database')
def test_save_order_to_db(self, mock_database):
"""Test saving order to database"""
# Mock database response
mock_database.execute.return_value = Mock()
# Test data
order_data = {
"order_id": "test_order_123",
"amount": 1000,
"currency": "INR"
}
# This is a placeholder test - implement based on actual functionality
assert True # Replace with actual test logic
class TestRazorpayService:
"""Test cases for Razorpay service"""
@pytest.fixture
def razorpay_service(self):
"""Fixture to create RazorpayService instance"""
with patch.dict('os.environ', {
'RAZORPAY_KEY_ID': 'test_key_id',
'RAZORPAY_KEY_SECRET': 'test_key_secret'
}):
return RazorpayService()
@patch('razorpay.Client')
def test_create_order(self, mock_client, razorpay_service):
"""Test order creation"""
# Mock Razorpay client
mock_order = {
'id': 'order_test123',
'amount': 100000,
'currency': 'INR'
}
mock_client.return_value.order.create.return_value = mock_order
# Test order creation
result = razorpay_service.create_order(1000, "receipt_123", "INR")
assert result['id'] == 'order_test123'
assert result['amount'] == 100000