@@ -2031,12 +2031,6 @@ class TestOpenFgaClient(IsolatedAsyncioTestCase):
20312031 Check whether a user is authorized to access an object
20322032 """
20332033
2034- # First, mock the response
2035- mock_request.side_effect = [
2036- mock_response('{ " allowed" : true , " resolution" : " 1234" } ', 200),
2037- mock_response('{ " allowed" : false , " resolution" : " 1234" } ', 200),
2038- mock_response('{ " allowed" : true , " resolution" : " 1234" } ', 200),
2039- ]
20402034 body1 = ClientCheckRequest(
20412035 object="document:2021-budget",
20422036 relation="reader",
@@ -2052,6 +2046,20 @@ class TestOpenFgaClient(IsolatedAsyncioTestCase):
20522046 relation="reader",
20532047 user="user:81684243-9356-4421-8fbf-a4f8d36aa31d",
20542048 )
2049+
2050+ # Mock the response based on request body to avoid race conditions
2051+ def mock_side_effect(*args, **kwargs):
2052+ body = kwargs.get("body", { } )
2053+ user = body.get("tuple_key", { } ).get("user", "")
2054+ if user == "user:81684243-9356-4421-8fbf-a4f8d36aa31b":
2055+ return mock_response('{ " allowed" : true , " resolution" : " 1234" } ', 200)
2056+ elif user == "user:81684243-9356-4421-8fbf-a4f8d36aa31c":
2057+ return mock_response('{ " allowed" : false , " resolution" : " 1234" } ', 200)
2058+ elif user == "user:81684243-9356-4421-8fbf-a4f8d36aa31d":
2059+ return mock_response('{ " allowed" : true , " resolution" : " 1234" } ', 200)
2060+ return mock_response('{ " allowed" : false , " resolution" : " 1234" } ', 200)
2061+
2062+ mock_request.side_effect = mock_side_effect
20552063 configuration = self.configuration
20562064 configuration.store_id = store_id
20572065 async with OpenFgaClient(configuration) as api_client:
@@ -2140,12 +2148,6 @@ class TestOpenFgaClient(IsolatedAsyncioTestCase):
21402148}
21412149 """
21422150
2143- # First, mock the response
2144- mock_request.side_effect = [
2145- mock_response('{ " allowed" : true , " resolution" : " 1234" } ', 200),
2146- ValidationException(http_resp=http_mock_response(response_body, 400)),
2147- mock_response('{ " allowed" : false , " resolution" : " 1234" } ', 200),
2148- ]
21492151 body1 = ClientCheckRequest(
21502152 object="document:2021-budget",
21512153 relation="reader",
@@ -2161,6 +2163,20 @@ class TestOpenFgaClient(IsolatedAsyncioTestCase):
21612163 relation="reader",
21622164 user="user:81684243-9356-4421-8fbf-a4f8d36aa31d",
21632165 )
2166+
2167+ # Mock the response based on request body to avoid race conditions
2168+ def mock_side_effect(*args, **kwargs):
2169+ body = kwargs.get("body", { } )
2170+ user = body.get("tuple_key", { } ).get("user", "")
2171+ if user == "user:81684243-9356-4421-8fbf-a4f8d36aa31b":
2172+ return mock_response('{ " allowed" : true , " resolution" : " 1234" } ', 200)
2173+ elif user == "user:81684243-9356-4421-8fbf-a4f8d36aa31c":
2174+ raise ValidationException(http_resp=http_mock_response(response_body, 400))
2175+ elif user == "user:81684243-9356-4421-8fbf-a4f8d36aa31d":
2176+ return mock_response('{ " allowed" : false , " resolution" : " 1234" } ', 200)
2177+ return mock_response('{ " allowed" : false , " resolution" : " 1234" } ', 200)
2178+
2179+ mock_request.side_effect = mock_side_effect
21642180 configuration = self.configuration
21652181 configuration.store_id = store_id
21662182 async with OpenFgaClient(configuration) as api_client:
0 commit comments