| open_ai_mock = <MagicMock name='invoke' id='2429779920448'>, open_ai_agen_mock = <AsyncMock name='agenerate' id='2429779951280'>
|
| mock_request = <MagicMock name='request' id='2429779941536'>, client = <FlaskClient <Flask 'app'>>, is_redraft = True, mock_response_key = 'non_hallucinated', callback_url = ''
|
| create_scorecard_only = False, risk_model_id = ''
|
| tokens = {'access_token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcxNTI2NzY3MSwianRpIjoiZjNiN2VhZTA...NIZGZhWTdrc3VBOVpHT1NJRGZVc0g1dU1wN0xOVmdsaldNSlh0Q1FhT1I5c3JjQmRUTUE9In0.5JfBAJHa5IVax5DYac-rBdRdSFb_Lgh_Gm0zypCWbD8'}
|
| work_flow_cache = {'contract_type': 'a5aaa5aef31143b18b12fa6aaef3c335', 'conversation_ids': {'CaseSummary': '93c90640-ea67-4d6b-ae39-c8c...e': 'Confidentiality', 'create_time': 1715267674, 'create_uid': 'd17408cdf7344a3088f376bb606d9d25', ...}, ...]}}}, ...}
|
|
|
| @pytest.mark.parametrize(
|
| "is_redraft,mock_response_key,callback_url,create_scorecard_only,risk_model_id",
|
| [
|
| (True, "non_hallucinated","",False,""),
|
| (False, "non_hallucinated","",False,""),
|
| (True, "hallucinated","",False,""),
|
| (False, "hallucinated","",False,""),
|
| (True, "non_hallucinated","https://callback_url",False,""),
|
| (True, "non_hallucinated","https://callback_url",False,"test"),
|
| (True, "non_hallucinated","https://callback_url",True,"test")
|
| ],
|
| )
|
| @mock.patch("utils.Redraft.redraft_utils.requests.request")
|
| @mock.patch("utils.LLM.model.ChatOpenAI.agenerate")
|
| @mock.patch("utils.LLM.model.ChatOpenAI.invoke")
|
| def test_redraft_remediation(
|
| open_ai_mock,
|
| open_ai_agen_mock,
|
| mock_request: mock.MagicMock,
|
| client: FlaskClient,
|
| is_redraft: bool,
|
| mock_response_key: str,
|
| callback_url: str,
|
| create_scorecard_only: bool,
|
| risk_model_id: str,
|
| tokens: Dict[str, str],
|
| work_flow_cache,
|
| ):
|
| token = tokens["access_token"]
|
| with open(
|
| Path(__file__).parent / "test_data/test_langchain_data.json", encoding="utf-8"
|
| ) as lang_fp:
|
| openai_sample = json.load(lang_fp)
|
| mock_open_ai = mock.MagicMock(name="__call__").return_value
|
| ai_common_response = json.dumps(openai_sample["redraft"][mock_response_key])
|
| mock_open_ai.content = ai_common_response
|
| open_ai_mock.return_value = mock_open_ai
|
| open_ai_agen_mock.return_value = mock.MagicMock(
|
| "Response",
|
| generations=[[mock.MagicMock(text=ai_common_response)]],
|
| )
|
| mock_request.return_value.status_code = 200
|
| conversation_id = "751e1a88-5a53-4162-8b91-be6c06b66935"
|
| project_id = work_flow_cache["projects"]["Document Redraft"]
|
| doc_id = work_flow_cache["doc_ids"]["Document Redraft"][0]
|
| function_id = work_flow_cache["functions"]["redline"]["platform"]["function_id"]
|
| result = client.post(
|
| path="/v1/stream_redraft_remediation",
|
| json={
|
| "project_id": project_id,
|
| "doc_id": doc_id,
|
| "chat_model": {
|
| "query": "Generate Redraft Recommendations",
|
| "action": "ReDraftContract",
|
| "conversation_id": conversation_id,
|
| },
|
| "dynamic_field": "ContractPodAi",
|
| "is_redraft": is_redraft,
|
| "function_id": function_id,
|
| "callback_url": callback_url,
|
| "create_scorecard_only": create_scorecard_only,
|
| "risk_model_id": risk_model_id
|
| },
|
| headers={"Authorization": f"Bearer {token}"},
|
| )
|
| > assert result.status_code == 200
|
| E assert 500 == 200
|
| E + where 500 = <WrapperTestResponse streamed [500 INTERNAL SERVER ERROR]>.status_code
|
|
|
| tests\test_26_stream_redraft_remediation.py:177: AssertionError
|