I want to mock same object with different values but it's not working. I am using unittest mock and pytest
import unittest
from azure.cosmos.exceptions import CosmosResourceExistsError
import pytest
from unittest.mock import patch
@patch('azure.cosmos.CosmosClient', autospec=True)
@pytest.mark.run(order=1)
def test_usage_already_exists(custom_mock_cosmo, mock_sts_session, mock_dynamodb, mock_activation_trns_map):
print(custom_mock_cosmo)
mock_container = mock_cosmo_container(custom_mock_cosmo)
mock_container.read_item.return_value = {"some": "data"}
mock_container.upsert_item.return_value = {"some": "data"}
mock_container.create_item.side_effect = CosmosResourceExistsError(409, "Resource already exists")
# Add debug statement to verify the mock is in place
print(mock_container.create_item)
with pytest.raises(CosmosResourceExistsError):
handle(member, "INSERT", meta_data)
@patch('azure.cosmos.CosmosClient',autospec=True)
@pytest.mark.run(order=2)
def test_your_function1(custom_mock_cosmo,mock_sts_session, mock_dynamodb,mock_activation_trns_map):
print(custom_mock_cosmo)
mock_cosmo_container(custom_mock_cosmo).read_item.return_value = {"some": "data"}
mock_cosmo_container(custom_mock_cosmo).upsert_item.return_value = {"some": "data"}
handle(member, "INSERT", meta_data)
@patch('azure.cosmos.CosmosClient',autospec=True)
@pytest.mark.run(order=3)
def test_your_function(custom_mock_cosmo,mock_sts_session, mock_dynamodb,mock_activation_trns_map):
print(custom_mock_cosmo)
mock_cosmo_container(custom_mock_cosmo).read_item.return_value = {"some": "data"}
mock_cosmo_container(custom_mock_cosmo).upsert_item.return_value = {"some": "data"}
handle(member, "REMOVE", meta_data)
for all the cases i am getting exception i stuck with this please provide some inputs ?