| 1f988d11-89f8-4662-9a45-097196a84cd9 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/312_base/Agent-312-Base.ipynb |
Agent-312-Base.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/312_base/Agent-312-Base.ipynb |
gh-action |
ansarir-crypto |
2025-11-18 11:00:30 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/2053a6f5127278eeca9b9124a11f346f05f311c6 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Expected 1 file named 'Final Proposal.docx', but found 0.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 13
11 # === 1. Assert that exactly one file named "Final Proposal.docx" exists ===
12 files_list_response = gdrive.list_user_files(q=f'name="{UPDATED_FILENAME}"')
---> 13 assert len(files_list_response.get('files', [])) == 1, (
14 f"Expected 1 file named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}."
15 )
17 # === 2. Assert that the file "Draft Proposal.docx" does not exist ===
18 files_list_response = gdrive.list_user_files(q=f'name="{FILENAME}"')
AssertionError: Expected 1 file named 'Final Proposal.docx', but found 0. |
ErrorType: ValidationError
Error Description: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[6], line 25
20 assert len(files_list_response.get('files', [])) == 0, (
21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}."
22 )
24 # 3. Check no Gmail draft with the subject and recipient already exists
---> 25 drafts_list_response = gmail.list_drafts(userId='me')
26 found_draft = False
27 for draft in drafts_list_response.get('drafts', []):
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs)
198 return return_result
199 else:
--> 200 validated_output = actual_output_model(**result)
201 return_result = validated_output.model_dump(mode='json')
202 return return_result
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden |
|
ErrorType: ValidationError
Error Description: 1 validation error for ListDraftsResponse
drafts.1.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[15], line 24
19 assert len(files_list_response.get('files', [])) == 0, (
20 f"Expected 0 files named '{FILENAME}', but found {len(files_list_response.get('files', []))}."
21 )
23 # === 3. Assert that a Gmail draft with the correct subject, recipient, AND body exists ===
---> 24 drafts_list_response = gmail.list_drafts()
25 found_draft = False
26 for draft in drafts_list_response.get('drafts', []):
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs)
198 return return_result
199 else:
--> 200 validated_output = actual_output_model(**result)
201 return_result = validated_output.model_dump(mode='json')
202 return return_result
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for ListDraftsResponse
drafts.1.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden |
No Error Found |
No Error Found |
Assertion Error |
Non Assertion Error |
No Error Found |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Initial Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: ValidationError
Error Description: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[6], line 25
20 assert len(files_list_response.get('files', [])) == 0, (
21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}."
22 )
24 # 3. Check no Gmail draft with the subject and recipient already exists
---> 25 drafts_list_response = gmail.list_drafts(userId='me')
26 found_draft = False
27 for draft in drafts_list_response.get('drafts', []):
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs)
198 return return_result
199 else:
--> 200 validated_output = actual_output_model(**result)
201 return_result = validated_output.model_dump(mode='json')
202 return return_result
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden |
**Block**: Initial Assertion
**Expected:** 'No Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: ValidationError
Error Description: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[6], line 25
20 assert len(files_list_response.get('files', [])) == 0, (
21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}."
22 )
24 # 3. Check no Gmail draft with the subject and recipient already exists
---> 25 drafts_list_response = gmail.list_drafts(userId='me')
26 found_draft = False
27 for draft in drafts_list_response.get('drafts', []):
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs)
198 return return_result
199 else:
--> 200 validated_output = actual_output_model(**result)
201 return_result = validated_output.model_dump(mode='json')
202 return return_result
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden |
**E2E Execution Summary**:
Status: β
**Block**: Initial Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: ValidationError
Error Description: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[6], line 25
20 assert len(files_list_response.get('files', [])) == 0, (
21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}."
22 )
24 # 3. Check no Gmail draft with the subject and recipient already exists
---> 25 drafts_list_response = gmail.list_drafts(userId='me')
26 found_draft = False
27 for draft in drafts_list_response.get('drafts', []):
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs)
198 return return_result
199 else:
--> 200 validated_output = actual_output_model(**result)
201 return_result = validated_output.model_dump(mode='json')
202 return return_result
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for ListDraftsResponse
drafts.0.message.payload.headers
Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden
__________________________________________________
**Final Assertion Correctness Summary**:
β οΈ There is an error that needs to fixed before Final Assertion can be tested.
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
6.412 |
| 26ad7967-44c2-4c9c-8820-af51e8f7d464 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Under_represented_Samples/2949_base_GC/Agent-2949_base_GC-Initial_with_DB_Setup.ipynb |
Agent-2949_base_GC-Initial_with_DB_Setup.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Under_represented_Samples/2949_base_GC/Agent-2949_base_GC-Initial_with_DB_Setup.ipynb |
gh-action |
irfanm1 |
2025-11-18 10:51:32 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/e64c6897245fdd40822cd978f5aaeac785a6a12e |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Expected exactly 1 Jira issue for support case ID '1', but found 0.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 48
43 assert total_issues_found == len(found_issues), (
44 f"API inconsistency: total is {total_issues_found} but issues list has {len(found_issues)} items for case ID '{case_id}'."
45 )
47 # Assert exactly one issue found
---> 48 assert total_issues_found == 1, (
49 f"Expected exactly 1 Jira issue for support case ID '{case_id}', but found {total_issues_found}."
50 )
52 found_issue = found_issues[0]
54 # Extract issue key
AssertionError: Expected exactly 1 Jira issue for support case ID '1', but found 0. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
5.1366 |
| 8425bdf0-338c-4e9d-b9c3-e62df4f01513 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/User_Simulation_-_MT/183_base_US_ToolShift/Agent-183_base_US_ToolShift-Simulation.ipynb |
Agent-183_base_US_ToolShift-Simulation.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/User_Simulation_-_MT/183_base_US_ToolShift/Agent-183_base_US_ToolShift-Simulation.ipynb |
gh-action |
kiskoa-turing |
2025-11-18 10:28:11 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/276e384db30b742b548ad0201107aa9ebd2c7094 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Assertion Failed: No pages found in space 'Aquarius Heights' (key: 'AQUA'). Expected at least one page to exist.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 38
35 if api_error:
36 assertion_message += f" API Error: {api_error}"
---> 38 assert confluence_page_found, assertion_message
AssertionError: Assertion Failed: No pages found in space 'Aquarius Heights' (key: 'AQUA'). Expected at least one page to exist. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
5.1578 |
| 6d3b99f9-298a-4f52-bc47-21dd88c52b24 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/User_Simulation_-_MT/25_base_US/Agent-25_base_US-Simulation.ipynb |
Agent-25_base_US-Simulation.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/User_Simulation_-_MT/25_base_US/Agent-25_base_US-Simulation.ipynb |
gh-action |
carolinesilvaturing |
2025-11-18 10:21:56 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/4ffff0b305397c6309dd89fa1fdde364bf2748bb |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Assertion 1 Failed: Folder 'Project X' does not exist under 'Project Management'.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 60
57 except Exception as e:
58 api_error = str(e)
---> 60 assert project_x_folder_exists_under_pm, "Assertion 1 Failed: Folder 'Project X' does not exist under 'Project Management'."
62 # ----------------------------
63 # Assertion 2: exactly 4 files moved into PX folder, none left in PM root
64 # ----------------------------
65 try:
66 # Ensure we have the PX folder id; fallback search if needed
AssertionError: Assertion 1 Failed: Folder 'Project X' does not exist under 'Project Management'. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
6.9667 |
| 1f15c9e4-f510-426e-a71f-bf68c0c4a9db |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1713_base/Agent-1713_base-Merged.ipynb |
Agent-1713_base-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/1713_base/Agent-1713_base-Merged.ipynb |
gh-action |
zaina3-source |
2025-11-18 10:11:45 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/fa84b546f6b70826764e2736e4f538bb69724dab |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Final assertion failed: At least one bare 'except:' still exists.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[10], line 45
39 # Only fail if a line is exactly `except:` or contains only whitespace before it
40 remaining_bare = [
41 r for r in bare_results
42 if r["line_content"].strip() == "except:"
43 ]
---> 45 assert len(remaining_bare) == 0, \
46 "Final assertion failed: At least one bare 'except:' still exists."
48 # ---------------------------------------------------
49 # 3οΈβ£ Assert that at least one `except Exception:` exists
50 # ---------------------------------------------------
51 exception_results = cursor.grep_search(
52 query="except Exception:",
53 explanation="Check that 'except Exception:' exists.",
54 case_sensitive=True
55 )
AssertionError: Final assertion failed: At least one bare 'except:' still exists. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
6.5562 |
| d57ce178-898a-4133-bc61-cbe462c7c2fc |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb |
Agent-9_Tau_Bench-Simulation.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb |
gh-action |
poovanna-vs |
2025-11-18 10:07:12 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/41e3eeb7ef295094bc7f1b901a347b61326bcb89 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: FA4 Failed: Payment validation errors:
Amount mismatch for gift_card_6136092: expected 129.0, got 567
Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526']
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 90
87 if missing:
88 invalid_payments.append(f"Missing payments: {missing}")
---> 90 assert not invalid_payments, f"FA4 Failed: Payment validation errors:\n" + "\n".join(invalid_payments)
92 # --- FA5: Assert flights HAT023, HAT204, HAT100 are present ---
93 flight_numbers = {f.get("flight_number", "") for f in flights}
AssertionError: FA4 Failed: Payment validation errors:
Amount mismatch for gift_card_6136092: expected 129.0, got 567
Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526'] |
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined |
|
|
No Error Found |
No Error Found |
Assertion Error |
Non Assertion Error |
No Error Found |
No Error Found |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Initial Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined |
**Block**: Initial Assertion
**Expected:** 'No Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined |
**E2E Execution Summary**:
Status: β
**Block**: Initial Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined
__________________________________________________
**Final Assertion Correctness Summary**:
β οΈ There is an error that needs to fixed before Final Assertion can be tested.
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
4.2786 |
| 0933e8ba-b2ca-43bb-acd9-dc5ee722e5b7 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb |
Agent-9_Tau_Bench-Simulation.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb |
gh-action |
poovanna-vs |
2025-11-18 10:03:59 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/3f3fe3e997915bd876a8243434262148ac40d08b |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: FA4 Failed: Payment validation errors:
Amount mismatch for gift_card_6136092: expected 129.0, got 567
Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526']
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 90
87 if missing:
88 invalid_payments.append(f"Missing payments: {missing}")
---> 90 assert not invalid_payments, f"FA4 Failed: Payment validation errors:\n" + "\n".join(invalid_payments)
92 # --- FA5: Assert flights HAT023, HAT204, HAT100 are present ---
93 flight_numbers = {f.get("flight_number", "") for f in flights}
AssertionError: FA4 Failed: Payment validation errors:
Amount mismatch for gift_card_6136092: expected 129.0, got 567
Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526'] |
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined |
|
|
No Error Found |
No Error Found |
Assertion Error |
Non Assertion Error |
No Error Found |
No Error Found |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Initial Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined |
**Block**: Initial Assertion
**Expected:** 'No Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined |
**E2E Execution Summary**:
Status: β
**Block**: Initial Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: NameError
Error Description: name 'CERTIFICATE_ID' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 52
47 certificate_source = certificate_1.get('source', '')
48 certificate_balance = certificate_1.get('amount', 0)
50 assertion_message_2 = (
51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. "
---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. "
53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, "
54 f"Type='{certificate_source}', Balance=${certificate_balance}."
55 )
56 assertion_condition_2 = (
57 compare_strings(certificate_source , 'certificate') and
58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1
59 )
60 assert assertion_condition_2, assertion_message_2
NameError: name 'CERTIFICATE_ID' is not defined
__________________________________________________
**Final Assertion Correctness Summary**:
β οΈ There is an error that needs to fixed before Final Assertion can be tested.
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
4.5693 |
| 7bd0ea77-5526-4917-a6e9-70d25351d0fe |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb |
Agent-414_edge_2-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb |
gh-action |
ansarir-crypto |
2025-11-18 10:02:28 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/a378728f7d5aee078b27fd6576ce4716ee76bc32 |
TRUE |
|
TRUE |
TRUE |
|
|
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. |
|
ErrorType: AssertionError
Error Description: Expected exactly one calendar 'Technical Reviews', found 0.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[6], line 109
106 found_calendars = [c for c in calendars if compare_strings(c.get("summary", ""), CALENDAR_NAME)]
108 # Assert 4: exactly one "Technical Reviews" calendar exists
--> 109 assert len(found_calendars) == 1, f"Expected exactly one calendar '{CALENDAR_NAME}', found {len(found_calendars)}."
110 calendar_id = found_calendars[0].get('id')
112 # ----------------------------
113 # 5) Fetch events in the calendar
114 # ----------------------------
AssertionError: Expected exactly one calendar 'Technical Reviews', found 0. |
|
|
No Error Found |
Non Assertion Error |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Initialisation
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. |
**Block**: Initialisation
**Expected:** 'No Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. |
**E2E Execution Summary**:
Status: β
**Block**: Initialisation
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
__________________________________________________
**Final Assertion Correctness Summary**:
β οΈ There is an error that needs to fixed before Final Assertion can be tested.
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
5.9782 |
| bd22681e-97b0-4b1c-9ab4-0ca7408c54a6 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb |
Agent-414_edge_2-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb |
gh-action |
ansarir-crypto |
2025-11-18 09:59:46 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/286cb10aad190f0c139bf6d835ca17aa4c5ac326 |
TRUE |
|
TRUE |
TRUE |
|
|
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. |
|
ErrorType: AssertionError
Error Description: Expected exactly one calendar 'Technical Reviews', found 0.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[6], line 109
106 found_calendars = [c for c in calendars if compare_strings(c.get("summary", ""), CALENDAR_NAME)]
108 # Assert 4: exactly one "Technical Reviews" calendar exists
--> 109 assert len(found_calendars) == 1, f"Expected exactly one calendar '{CALENDAR_NAME}', found {len(found_calendars)}."
110 calendar_id = found_calendars[0].get('id')
112 # ----------------------------
113 # 5) Fetch events in the calendar
114 # ----------------------------
AssertionError: Expected exactly one calendar 'Technical Reviews', found 0. |
|
|
No Error Found |
Non Assertion Error |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Initialisation
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. |
**Block**: Initialisation
**Expected:** 'No Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. |
**E2E Execution Summary**:
Status: β
**Block**: Initialisation
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: ValueError
Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
Traceback: ---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 35
32 print(f"Created component: {component.get('name')} with description: {component.get('description')}")
34 # Step 2: Create or get the Technical Reviews calendar
---> 35 calendar = google_calendar.create_calendar_list_entry(resource={
36 'id': 'technical-reviews-calendar-id',
37 'summary': CALENDAR_NAME,
38 'timeZone': TIMEZONE
39 })
40 calendar_id = calendar.get('id')
41 print(f"Using calendar: {calendar.get('summary')}")
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource)
195 # Validate that the calendar exists before creating calendar list entry
196 if cal_id not in DB["calendars"]:
--> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.")
199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False)
200 resource_data_to_store["id"] = cal_id
ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar.
__________________________________________________
**Final Assertion Correctness Summary**:
β οΈ There is an error that needs to fixed before Final Assertion can be tested.
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
6.1317 |
| 249bc79d-10e7-42ad-9a2b-f6d1f008bfca |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
gh-action |
zain-amir-turing |
2025-11-18 09:57:50 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/0fcb7f7d4f92e7ba7354ba18bb5c70331fbca280 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[10], line 63
60 page_exists_as_expected = True
62 # --- Assertion 1: Assert that a Confluence page matching 'Functionalities' exists in the 'Keyboard' space. ---
---> 63 assert page_exists_as_expected, (
64 f"Assertion Failed: Expected a Confluence page whose title loosely matches '{page_title}' "
65 f"and type '{expected_content_type}' to exist in space '{space_name}' "
66 f"(space key: {retrieved_space_key}). Actual: Page found = {bool(retrieved_page_id)}, "
67 f"Title = '{actual_page_title}', Space Key = '{actual_page_space_key}', Type = '{actual_page_type}'."
68 )
70 # --- Preparatory data retrieval for Assertion 2 ---
71
72 # 3. Extract media keys from the specified Python file
73 expected_media_keys_from_file = []
AssertionError: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'. |
|
ErrorType: RuntimeError
Error Description: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}}
Traceback: ---------------------------------------------------------------------------
ClientError Traceback (most recent call last)
File /content/APIs/cursor/SimulationEngine/llm_interface.py:125, in call_llm(prompt_text, model_name, temperature, timeout_seconds)
123 _log_with_caller_info(logging.INFO, f"Initiating LLM call. Model: {active_model_name}, Temp: {temperature}, Client Read Timeout: {actual_read_timeout_for_log}.")
--> 125 response = client.models.generate_content(
126 model=f"{active_model_name}",
127 contents=prompt_text,
128 config=types.GenerateContentConfig(
129 temperature=temperature,
130 http_options=http_options if http_options else None,
131 ),
132 )
134 if response.text:
File /usr/local/lib/python3.12/site-packages/google/genai/models.py:6565, in Models.generate_content(self, model, contents, config)
6564 i += 1
-> 6565 response = self._generate_content(
6566 model=model, contents=contents, config=parsed_config
6567 )
6568 logger.info(f'AFC remote call {i} is done.')
File /usr/local/lib/python3.12/site-packages/google/genai/models.py:5377, in Models._generate_content(self, model, contents, config)
5375 request_dict = _common.encode_unserializable_types(request_dict)
-> 5377 response = self._api_client.request(
5378 'post', path, request_dict, http_options
5379 )
5381 if config is not None and getattr(
5382 config, 'should_return_http_response', None
5383 ):
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1290, in BaseApiClient.request(self, http_method, path, request_dict, http_options)
1287 http_request = self._build_request(
1288 http_method, path, request_dict, http_options
1289 )
-> 1290 response = self._request(http_request, http_options, stream=False)
1291 response_body = (
1292 response.response_stream[0] if response.response_stream else ''
1293 )
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1126, in BaseApiClient._request(self, http_request, http_options, stream)
1124 return retry(self._request_once, http_request, stream) # type: ignore[no-any-return]
-> 1126 return self._retry(self._request_once, http_request, stream)
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:477, in Retrying.__call__(self, fn, *args, **kwargs)
476 while True:
--> 477 do = self.iter(retry_state=retry_state)
478 if isinstance(do, DoAttempt):
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:378, in BaseRetrying.iter(self, retry_state)
377 for action in self.iter_state.actions:
--> 378 result = action(retry_state)
379 return result
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:420, in BaseRetrying._post_stop_check_actions..exc_check(rs)
419 if self.reraise:
--> 420 raise retry_exc.reraise()
421 raise retry_exc from fut.exception()
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:187, in RetryError.reraise(self)
186 if self.last_attempt.failed:
--> 187 raise self.last_attempt.result()
188 raise self
File /usr/local/lib/python3.12/concurrent/futures/_base.py:449, in Future.result(self, timeout)
448 elif self._state == FINISHED:
--> 449 return self.__get_result()
451 self._condition.wait(timeout)
File /usr/local/lib/python3.12/concurrent/futures/_base.py:401, in Future.__get_result(self)
400 try:
--> 401 raise self._exception
402 finally:
403 # Break a reference cycle with the exception in self._exception
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:480, in Retrying.__call__(self, fn, *args, **kwargs)
479 try:
--> 480 result = fn(*args, **kwargs)
481 except BaseException: # noqa: B902
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1103, in BaseApiClient._request_once(self, http_request, stream)
1096 response = self._httpx_client.request(
1097 method=http_request.method,
1098 url=http_request.url,
(...) 1101 timeout=http_request.timeout,
1102 )
-> 1103 errors.APIError.raise_for_response(response)
1104 return HttpResponse(
1105 response.headers, response if stream else [response.text]
1106 )
File /usr/local/lib/python3.12/site-packages/google/genai/errors.py:108, in APIError.raise_for_response(cls, response)
107 if 400 <= status_code < 500:
--> 108 raise ClientError(status_code, response_json, response)
109 elif 500 <= status_code < 600:
ClientError: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}}
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last)
Cell In[13], line 12
6 cursor.list_dir(relative_workspace_path=".")
9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory")
---> 12 cursor.read_file(target_file="keyboard/keyboard/_darwinkeyboard.py")
15 confluence.get_spaces(limit=10)
18 confluence.get_spaces()
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1184, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation)
1174 summary_text = "".join(summary_content) if summary_content else ""
1175 prompt_template = (
1176 f'I will provide you with a list of code lines, each with line numbers. Please read the code and '
1177 f'write a brief summary in plain English explaining what the code does, highlighting any '
(...) 1181 f'knowledge. Do not include the code itself in your response. '
1182 f'Here is the code below:\n{summary_text}')
-> 1184 summary = call_llm(prompt_template)
1186 # --- Construct the final message ---
1187 message = ""
File /content/APIs/cursor/SimulationEngine/llm_interface.py:147, in call_llm(prompt_text, model_name, temperature, timeout_seconds)
145 except Exception as e:
146 _log_with_caller_info(logging.ERROR, f"LLM call to model {active_model_name} encountered an error: {type(e).__name__} - {e}", exc_info=True)
--> 147 raise RuntimeError(f"LLM call failed: {type(e).__name__} - {e}") from e
RuntimeError: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} |
ErrorType: AssertionError
Error Description: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[16], line 63
60 page_exists_as_expected = True
62 # --- Assertion 1: Assert that a Confluence page matching 'Functionalities' exists in the 'Keyboard' space. ---
---> 63 assert page_exists_as_expected, (
64 f"Assertion Failed: Expected a Confluence page whose title loosely matches '{page_title}' "
65 f"and type '{expected_content_type}' to exist in space '{space_name}' "
66 f"(space key: {retrieved_space_key}). Actual: Page found = {bool(retrieved_page_id)}, "
67 f"Title = '{actual_page_title}', Space Key = '{actual_page_space_key}', Type = '{actual_page_type}'."
68 )
70 # --- Preparatory data retrieval for Assertion 2 ---
71
72 # 3. Extract media keys from the specified Python file
73 expected_media_keys_from_file = []
AssertionError: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'. |
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
Non Assertion Error |
Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Action
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: RuntimeError
Error Description: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}}
Traceback: ---------------------------------------------------------------------------
ClientError Traceback (most recent call last)
File /content/APIs/cursor/SimulationEngine/llm_interface.py:125, in call_llm(prompt_text, model_name, temperature, timeout_seconds)
123 _log_with_caller_info(logging.INFO, f"Initiating LLM call. Model: {active_model_name}, Temp: {temperature}, Client Read Timeout: {actual_read_timeout_for_log}.")
--> 125 response = client.models.generate_content(
126 model=f"{active_model_name}",
127 contents=prompt_text,
128 config=types.GenerateContentConfig(
129 temperature=temperature,
130 http_options=http_options if http_options else None,
131 ),
132 )
134 if response.text:
File /usr/local/lib/python3.12/site-packages/google/genai/models.py:6565, in Models.generate_content(self, model, contents, config)
6564 i += 1
-> 6565 response = self._generate_content(
6566 model=model, contents=contents, config=parsed_config
6567 )
6568 logger.info(f'AFC remote call {i} is done.')
File /usr/local/lib/python3.12/site-packages/google/genai/models.py:5377, in Models._generate_content(self, model, contents, config)
5375 request_dict = _common.encode_unserializable_types(request_dict)
-> 5377 response = self._api_client.request(
5378 'post', path, request_dict, http_options
5379 )
5381 if config is not None and getattr(
5382 config, 'should_return_http_response', None
5383 ):
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1290, in BaseApiClient.request(self, http_method, path, request_dict, http_options)
1287 http_request = self._build_request(
1288 http_method, path, request_dict, http_options
1289 )
-> 1290 response = self._request(http_request, http_options, stream=False)
1291 response_body = (
1292 response.response_stream[0] if response.response_stream else ''
1293 )
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1126, in BaseApiClient._request(self, http_request, http_options, stream)
1124 return retry(self._request_once, http_request, stream) # type: ignore[no-any-return]
-> 1126 return self._retry(self._request_once, http_request, stream)
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:477, in Retrying.__call__(self, fn, *args, **kwargs)
476 while True:
--> 477 do = self.iter(retry_state=retry_state)
478 if isinstance(do, DoAttempt):
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:378, in BaseRetrying.iter(self, retry_state)
377 for action in self.iter_state.actions:
--> 378 result = action(retry_state)
379 return result
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:420, in BaseRetrying._post_stop_check_actions..exc_check(rs)
419 if self.reraise:
--> 420 raise retry_exc.reraise()
421 raise retry_exc from fut.exception()
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:187, in RetryError.reraise(self)
186 if self.last_attempt.failed:
--> 187 raise self.last_attempt.result()
188 raise self
File /usr/local/lib/python3.12/concurrent/futures/_base.py:449, in Future.result(self, timeout)
448 elif self._state == FINISHED:
--> 449 return self.__get_result()
451 self._condition.wait(timeout)
File /usr/local/lib/python3.12/concurrent/futures/_base.py:401, in Future.__get_result(self)
400 try:
--> 401 raise self._exception
402 finally:
403 # Break a reference cycle with the exception in self._exception
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:480, in Retrying.__call__(self, fn, *args, **kwargs)
479 try:
--> 480 result = fn(*args, **kwargs)
481 except BaseException: # noqa: B902
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1103, in BaseApiClient._request_once(self, http_request, stream)
1096 response = self._httpx_client.request(
1097 method=http_request.method,
1098 url=http_request.url,
(...) 1101 timeout=http_request.timeout,
1102 )
-> 1103 errors.APIError.raise_for_response(response)
1104 return HttpResponse(
1105 response.headers, response if stream else [response.text]
1106 )
File /usr/local/lib/python3.12/site-packages/google/genai/errors.py:108, in APIError.raise_for_response(cls, response)
107 if 400 <= status_code < 500:
--> 108 raise ClientError(status_code, response_json, response)
109 elif 500 <= status_code < 600:
ClientError: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}}
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last)
Cell In[13], line 12
6 cursor.list_dir(relative_workspace_path=".")
9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory")
---> 12 cursor.read_file(target_file="keyboard/keyboard/_darwinkeyboard.py")
15 confluence.get_spaces(limit=10)
18 confluence.get_spaces()
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1184, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation)
1174 summary_text = "".join(summary_content) if summary_content else ""
1175 prompt_template = (
1176 f'I will provide you with a list of code lines, each with line numbers. Please read the code and '
1177 f'write a brief summary in plain English explaining what the code does, highlighting any '
(...) 1181 f'knowledge. Do not include the code itself in your response. '
1182 f'Here is the code below:\n{summary_text}')
-> 1184 summary = call_llm(prompt_template)
1186 # --- Construct the final message ---
1187 message = ""
File /content/APIs/cursor/SimulationEngine/llm_interface.py:147, in call_llm(prompt_text, model_name, temperature, timeout_seconds)
145 except Exception as e:
146 _log_with_caller_info(logging.ERROR, f"LLM call to model {active_model_name} encountered an error: {type(e).__name__} - {e}", exc_info=True)
--> 147 raise RuntimeError(f"LLM call failed: {type(e).__name__} - {e}") from e
RuntimeError: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
**Block**: Action
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: RuntimeError
Error Description: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}}
Traceback: ---------------------------------------------------------------------------
ClientError Traceback (most recent call last)
File /content/APIs/cursor/SimulationEngine/llm_interface.py:125, in call_llm(prompt_text, model_name, temperature, timeout_seconds)
123 _log_with_caller_info(logging.INFO, f"Initiating LLM call. Model: {active_model_name}, Temp: {temperature}, Client Read Timeout: {actual_read_timeout_for_log}.")
--> 125 response = client.models.generate_content(
126 model=f"{active_model_name}",
127 contents=prompt_text,
128 config=types.GenerateContentConfig(
129 temperature=temperature,
130 http_options=http_options if http_options else None,
131 ),
132 )
134 if response.text:
File /usr/local/lib/python3.12/site-packages/google/genai/models.py:6565, in Models.generate_content(self, model, contents, config)
6564 i += 1
-> 6565 response = self._generate_content(
6566 model=model, contents=contents, config=parsed_config
6567 )
6568 logger.info(f'AFC remote call {i} is done.')
File /usr/local/lib/python3.12/site-packages/google/genai/models.py:5377, in Models._generate_content(self, model, contents, config)
5375 request_dict = _common.encode_unserializable_types(request_dict)
-> 5377 response = self._api_client.request(
5378 'post', path, request_dict, http_options
5379 )
5381 if config is not None and getattr(
5382 config, 'should_return_http_response', None
5383 ):
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1290, in BaseApiClient.request(self, http_method, path, request_dict, http_options)
1287 http_request = self._build_request(
1288 http_method, path, request_dict, http_options
1289 )
-> 1290 response = self._request(http_request, http_options, stream=False)
1291 response_body = (
1292 response.response_stream[0] if response.response_stream else ''
1293 )
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1126, in BaseApiClient._request(self, http_request, http_options, stream)
1124 return retry(self._request_once, http_request, stream) # type: ignore[no-any-return]
-> 1126 return self._retry(self._request_once, http_request, stream)
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:477, in Retrying.__call__(self, fn, *args, **kwargs)
476 while True:
--> 477 do = self.iter(retry_state=retry_state)
478 if isinstance(do, DoAttempt):
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:378, in BaseRetrying.iter(self, retry_state)
377 for action in self.iter_state.actions:
--> 378 result = action(retry_state)
379 return result
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:420, in BaseRetrying._post_stop_check_actions..exc_check(rs)
419 if self.reraise:
--> 420 raise retry_exc.reraise()
421 raise retry_exc from fut.exception()
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:187, in RetryError.reraise(self)
186 if self.last_attempt.failed:
--> 187 raise self.last_attempt.result()
188 raise self
File /usr/local/lib/python3.12/concurrent/futures/_base.py:449, in Future.result(self, timeout)
448 elif self._state == FINISHED:
--> 449 return self.__get_result()
451 self._condition.wait(timeout)
File /usr/local/lib/python3.12/concurrent/futures/_base.py:401, in Future.__get_result(self)
400 try:
--> 401 raise self._exception
402 finally:
403 # Break a reference cycle with the exception in self._exception
File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:480, in Retrying.__call__(self, fn, *args, **kwargs)
479 try:
--> 480 result = fn(*args, **kwargs)
481 except BaseException: # noqa: B902
File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1103, in BaseApiClient._request_once(self, http_request, stream)
1096 response = self._httpx_client.request(
1097 method=http_request.method,
1098 url=http_request.url,
(...) 1101 timeout=http_request.timeout,
1102 )
-> 1103 errors.APIError.raise_for_response(response)
1104 return HttpResponse(
1105 response.headers, response if stream else [response.text]
1106 )
File /usr/local/lib/python3.12/site-packages/google/genai/errors.py:108, in APIError.raise_for_response(cls, response)
107 if 400 <= status_code < 500:
--> 108 raise ClientError(status_code, response_json, response)
109 elif 500 <= status_code < 600:
ClientError: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}}
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last)
Cell In[13], line 12
6 cursor.list_dir(relative_workspace_path=".")
9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory")
---> 12 cursor.read_file(target_file="keyboard/keyboard/_darwinkeyboard.py")
15 confluence.get_spaces(limit=10)
18 confluence.get_spaces()
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1184, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation)
1174 summary_text = "".join(summary_content) if summary_content else ""
1175 prompt_template = (
1176 f'I will provide you with a list of code lines, each with line numbers. Please read the code and '
1177 f'write a brief summary in plain English explaining what the code does, highlighting any '
(...) 1181 f'knowledge. Do not include the code itself in your response. '
1182 f'Here is the code below:\n{summary_text}')
-> 1184 summary = call_llm(prompt_template)
1186 # --- Construct the final message ---
1187 message = ""
File /content/APIs/cursor/SimulationEngine/llm_interface.py:147, in call_llm(prompt_text, model_name, temperature, timeout_seconds)
145 except Exception as e:
146 _log_with_caller_info(logging.ERROR, f"LLM call to model {active_model_name} encountered an error: {type(e).__name__} - {e}", exc_info=True)
--> 147 raise RuntimeError(f"LLM call failed: {type(e).__name__} - {e}") from e
RuntimeError: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}}
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
7.4699 |
| f56894d2-97f4-4025-8e9c-3406567d3863 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
gh-action |
zain-amir-turing |
2025-11-18 09:52:57 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/b4b698d9c9f08426a726f0da23fb87501516fff7 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
|
|
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
No Error Found |
No Error Found |
Non Assertion Error |
No Error Found |
No Error Found |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Final Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
**Block**: Final Assertion w/o Action
**Expected:** 'Assertion Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
**E2E Execution Summary**:
Status: β
**Block**: Final Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
**Block**: Final Assertion w/o Action
**Expected**: 'Assertion Error' | Found: 'Non Assertion Error'
**Error Details**:
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
6.8735 |
| b38412d9-d05e-418e-9678-34de665fdbb0 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
gh-action |
zain-amir-turing |
2025-11-18 09:51:34 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/b00e325bd4b476b13bb904c689309b131029375d |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
|
|
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
No Error Found |
No Error Found |
Non Assertion Error |
No Error Found |
No Error Found |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Final Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
**Block**: Final Assertion w/o Action
**Expected:** 'Assertion Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
**E2E Execution Summary**:
Status: β
**Block**: Final Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
**Block**: Final Assertion w/o Action
**Expected**: 'Assertion Error' | Found: 'Non Assertion Error'
**Error Details**:
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
6.9042 |
| 8f9f302d-8e5f-4686-ad0c-41ba7893c7c9 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/326_edge_1/Agent-326_edge_1-Merged.ipynb |
Agent-326_edge_1-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/326_edge_1/Agent-326_edge_1-Merged.ipynb |
gh-action |
mohitdodla-art |
2025-11-18 09:50:42 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/3938bdfd98544fc7ba169e0e161f753790603dc6 |
TRUE |
|
TRUE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Issue description does not match email body. Expected: 'Acme Corp escalation: Customer wants the bug to be fixed...', Got: 'this is a bug report...'
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 42
40 # 2. Assert that the description matches the email body
41 actual_description = fields.get("description", "")
---> 42 assert compare_strings(actual_description, expected_email_body), \
43 f"Issue description does not match email body. Expected: '{expected_email_body[:100]}...', Got: '{actual_description[:100]}...'"
45 # 3. Assert that the assignee is Mark Thompson
46 assignee = fields.get("assignee", {})
AssertionError: Issue description does not match email body. Expected: 'Acme Corp escalation: Customer wants the bug to be fixed...', Got: 'this is a bug report...' |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
5.4994 |
| 429651b2-1258-40a9-bd94-4ff100652d07 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
gh-action |
zain-amir-turing |
2025-11-18 09:49:24 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/7f0c2a221d4a1b1d8c6c9f89e694dca66aafe7de |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
|
|
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
No Error Found |
No Error Found |
Non Assertion Error |
No Error Found |
No Error Found |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Final Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
**Block**: Final Assertion w/o Action
**Expected:** 'Assertion Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
**E2E Execution Summary**:
Status: β
**Block**: Final Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
**Block**: Final Assertion w/o Action
**Expected**: 'Assertion Error' | Found: 'Non Assertion Error'
**Error Details**:
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
7.0126 |
| ad3893b3-9411-4487-82b8-95aac2b024dc |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb |
Agent-1649_base-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb |
gh-action |
devangjoshi-gif |
2025-11-18 09:41:47 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/0e3698aa3ed5c2916f3b24324fb0e71017fee4af |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Assertion Failed
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[10], line 52
50 except:
51 AssertionError()
---> 52 assert assertion_1_status , "Assertion Failed"
AssertionError: Assertion Failed |
|
|
ErrorType: AssertionError
Error Description: Assertion Failed
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[16], line 52
50 except:
51 AssertionError()
---> 52 assert assertion_1_status , "Assertion Failed"
AssertionError: Assertion Failed |
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
Assertion Error |
Needs Fixes |
Failed: Final Assertion Failure even when Action is executed. Either Final Assertion or Action needs to be fixed. |
Block: Final Assertion
Expected: 'No Error' | Found: 'Assertion Error'
Error Details:
ErrorType: AssertionError
Error Description: Assertion Failed
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[16], line 52
50 except:
51 AssertionError()
---> 52 assert assertion_1_status , "Assertion Failed"
AssertionError: Assertion Failed |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
**Block**: Final Assertion
**Expected**: 'No Error' | Found: 'Assertion Error'
**Error Details**: π
ErrorType: AssertionError
Error Description: Assertion Failed
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[16], line 52
50 except:
51 AssertionError()
---> 52 assert assertion_1_status , "Assertion Failed"
AssertionError: Assertion Failed
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
6.0632 |
| ffac97dc-e3d1-4ac3-a7aa-adee65bfb222 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb |
Agent-805_edge_1-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb |
gh-action |
saha-design |
2025-11-18 09:39:13 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/c40987d1bf642b8a710b9e23b80f7f8067b379db |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: NameError
Error Description: name 'compare_strings' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[9], line 13
11 # Step 2: Get all media posts by this user
12 all_posts = instagram.list_all_media_posts()
---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)]
15 # Step 3: Extract event details from posts
16 event_posts = []
NameError: name 'compare_strings' is not defined |
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined |
|
ErrorType: NameError
Error Description: name 'compare_strings' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[15], line 13
11 # Step 2: Get all media posts by this user
12 all_posts = instagram.list_all_media_posts()
---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)]
15 # Step 3: Extract event details from posts
16 event_posts = []
NameError: name 'compare_strings' is not defined |
No Error Found |
No Error Found |
Non Assertion Error |
Non Assertion Error |
No Error Found |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Initial Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined |
**Block**: Initial Assertion
**Expected:** 'No Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined |
**E2E Execution Summary**:
Status: β
**Block**: Initial Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined
__________________________________________________
**Final Assertion Correctness Summary**:
β οΈ There is an error that needs to fixed before Final Assertion can be tested.
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
5.1259 |
| d8ffa71f-71f7-495b-befd-11297220bc02 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb |
gh-action |
zain-amir-turing |
2025-11-18 09:38:31 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/da1964752a830f3438e1710bf45f0ffd71f9e530 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
|
ErrorType: FileNotFoundError
Error Description: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py
Traceback: ---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[13], line 12
6 cursor.list_dir(relative_workspace_path=".")
9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory")
---> 12 cursor.read_file(target_file="content/workspace/keyboard/keyboard/_darwinkeyboard.py")
15 confluence.get_spaces(limit=10)
18 confluence.get_spaces()
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1097, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation)
1094 file_entry = file_system.get(abs_target_path)
1096 if not file_entry:
-> 1097 raise FileNotFoundError(f"File not found at path: {abs_target_path}")
1099 if file_entry.get("is_directory", False):
1100 raise IsADirectoryError(f"Target path is a directory, not a file: {abs_target_path}")
FileNotFoundError: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py |
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[16], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
No Error Found |
No Error Found |
Non Assertion Error |
No Error Found |
Non Assertion Error |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Action
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: FileNotFoundError
Error Description: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py
Traceback: ---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[13], line 12
6 cursor.list_dir(relative_workspace_path=".")
9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory")
---> 12 cursor.read_file(target_file="content/workspace/keyboard/keyboard/_darwinkeyboard.py")
15 confluence.get_spaces(limit=10)
18 confluence.get_spaces()
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1097, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation)
1094 file_entry = file_system.get(abs_target_path)
1096 if not file_entry:
-> 1097 raise FileNotFoundError(f"File not found at path: {abs_target_path}")
1099 if file_entry.get("is_directory", False):
1100 raise IsADirectoryError(f"Target path is a directory, not a file: {abs_target_path}")
FileNotFoundError: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py |
**Block**: Final Assertion w/o Action
**Expected:** 'Assertion Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error |
**E2E Execution Summary**:
Status: β
**Block**: Action
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: FileNotFoundError
Error Description: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py
Traceback: ---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[13], line 12
6 cursor.list_dir(relative_workspace_path=".")
9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory")
---> 12 cursor.read_file(target_file="content/workspace/keyboard/keyboard/_darwinkeyboard.py")
15 confluence.get_spaces(limit=10)
18 confluence.get_spaces()
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1097, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation)
1094 file_entry = file_system.get(abs_target_path)
1096 if not file_entry:
-> 1097 raise FileNotFoundError(f"File not found at path: {abs_target_path}")
1099 if file_entry.get("is_directory", False):
1100 raise IsADirectoryError(f"Target path is a directory, not a file: {abs_target_path}")
FileNotFoundError: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
**Block**: Final Assertion w/o Action
**Expected**: 'Assertion Error' | Found: 'Non Assertion Error'
**Error Details**:
ErrorType: ValidationError
Error Description: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
Traceback: ---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
Cell In[10], line 32
28 page_exists_as_expected = None
30 if retrieved_space_key:
31 # Use a broader query (no strict title filter), then relax-match the title locally
---> 32 pages_list_result = confluence.get_content_list(
33 spaceKey=retrieved_space_key,
34 type=expected_content_type,
35 limit=100
36 ) or []
38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other
39 def _title_matches(candidate: str, expected: str) -> bool:
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs)
156 bound_args.apply_defaults()
157 input_data = dict(bound_args.arguments)
--> 158 validated_input = input_model(**input_data)
159 result = func(**validated_input.model_dump())
160 else:
161 # No input validation, call function directly
File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data)
251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
252 __tracebackhide__ = True
--> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
254 if self is not validated_self:
255 warnings.warn(
256 'A custom validator is returning a value other than `self`.\n'
257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
259 stacklevel=2,
260 )
ValidationError: 1 validation error for GetContentListInput
Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/value_error
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
7.5674 |
| 9558e8bb-7c17-4500-a672-f033a6b23574 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb |
Agent-805_edge_1-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb |
gh-action |
saha-design |
2025-11-18 09:34:42 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/2f0dc8e83969c25445e5726340bfd65d840e3c33 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: NameError
Error Description: name 'compare_strings' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[9], line 13
11 # Step 2: Get all media posts by this user
12 all_posts = instagram.list_all_media_posts()
---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)]
15 # Step 3: Extract event details from posts
16 event_posts = []
NameError: name 'compare_strings' is not defined |
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined |
|
ErrorType: NameError
Error Description: name 'compare_strings' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[15], line 13
11 # Step 2: Get all media posts by this user
12 all_posts = instagram.list_all_media_posts()
---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)]
15 # Step 3: Extract event details from posts
16 event_posts = []
NameError: name 'compare_strings' is not defined |
No Error Found |
No Error Found |
Non Assertion Error |
Non Assertion Error |
No Error Found |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Initial Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined |
**Block**: Initial Assertion
**Expected:** 'No Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined |
**E2E Execution Summary**:
Status: β
**Block**: Initial Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: NameError
Error Description: name 'google_chat' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 37
33 assert found_post_with_all_keywords, (
34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)."
35 )
36 chat_space_display_name = "event-updates"
---> 37 spaces_response = google_chat.list_spaces(pageSize=1000)
38 spaces = spaces_response.get("spaces", [])
39 Exists = False
NameError: name 'google_chat' is not defined
__________________________________________________
**Final Assertion Correctness Summary**:
β οΈ There is an error that needs to fixed before Final Assertion can be tested.
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
5.2186 |
| 6fb6e0da-6b4c-4da6-bac4-c86a3950ab24 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb |
Agent-808_base-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb |
gh-action |
visheshw-ai |
2025-11-18 09:34:19 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/d03a34e11a5615dd5a0da95ec5ac18577e0339d5 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 54
51 if not page_token:
52 break
---> 54 assert found_file, f"File '{TARGET_FILE_NAME}' not found inside '{REJECTED_FOLDER_NAME}'."
57 # --- STEP 3: Resolve ABP channel ---
58 abp_channel_id = None
AssertionError: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
5.9089 |
| a060a1ca-885c-419d-8a58-95dfd7feea06 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/444_base/Agent-444_base-Merged.ipynb |
Agent-444_base-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/444_base/Agent-444_base-Merged.ipynb |
gh-action |
noorainr-hub |
2025-11-18 09:33:58 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/8772e2fbfef80cf36401b255e56029835331bf19 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Final Assertion Failed: Expected issue 'ISSUE-4' to be assigned to user 'Sarah', but assignee is '{'name': 'unassigned'}'.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 73
70 assignee = issue_fields.get('assignee')
71 assignee_name = assignee.get('name') if assignee else ""
---> 73 assert compare_strings(assignee_name, jira_user_account_id), (
74 f"Final Assertion Failed: Expected issue '{final_issue_id}' to be assigned to user "
75 f"'{jira_user_account_id}', but assignee is '{assignee}'."
76 )
78 # 2. Status is "In Review"
79 status_value = issue_fields.get('status', "")
AssertionError: Final Assertion Failed: Expected issue 'ISSUE-4' to be assigned to user 'Sarah', but assignee is '{'name': 'unassigned'}'. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
6.7907 |
| 3e14d987-25a5-4f16-b01d-28a77db87ee2 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/1111_base/Agent-1111_base-Merged.ipynb |
Agent-1111_base-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/1111_base/Agent-1111_base-Merged.ipynb |
gh-action |
roshini-turing |
2025-11-18 09:28:49 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/884cca882b453a4487233fe29f72bf97a0e2bcdf |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: β Mismatch in Jira issues for compliance posts. Expected 3 issues with matching descriptions in project 'Compliances-2025'. Found 0 matching issues in Jira.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 69
66 except:
67 matching_keys = []
68 assert (
---> 69 len(expected_jira_issues) > 0 and
70 matching_keys and # all expected keys are present in jira_issue_map (normalized)
71 all(
72 compare_strings(jira_issue_map.get(post_id, ""), expected_text)
73 for post_id, expected_text in expected_jira_issues.items()
74 )
75 ), (
76 f"β Mismatch in Jira issues for compliance posts. "
77 f"Expected {len(expected_jira_issues)} issues with matching descriptions in project '{JIRA_PROJECT_NAME}'. "
78 f"Found {len([k for k in expected_jira_issues.keys() if k in jira_issue_map])} matching issues in Jira."
79 )
AssertionError: β Mismatch in Jira issues for compliance posts. Expected 3 issues with matching descriptions in project 'Compliances-2025'. Found 0 matching issues in Jira. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
4.6692 |
| f95bb282-64fb-426d-a477-2ae794566dd8 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb |
Agent-808_base-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb |
gh-action |
visheshw-ai |
2025-11-18 09:26:24 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/febc8b5f91868db5a7ce25b790b2edc574ee7145 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 54
51 if not page_token:
52 break
---> 54 assert found_file, f"File '{TARGET_FILE_NAME}' not found inside '{REJECTED_FOLDER_NAME}'."
57 # --- STEP 3: Resolve ABP channel ---
58 abp_channel_id = None
AssertionError: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. |
|
ErrorType: NameError
Error Description: name 'page_token' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[12], line 17
3 import gdrive
6 slack.list_channels(
7 cursor=None,
8 exclude_archived=False,
9 limit=200,
10 types="public_channel,private_channel,mpim,im"
11 )
14 gdrive.list_user_files(
15 q=f"name = 'Rejected Proposals' and mimeType = 'application/vnd.google-apps.folder' and trashed = false",
16 pageSize=100,
---> 17 pageToken=page_token,
18 includeItemsFromAllDrives=True,
19 supportsAllDrives=True,
20 spaces="drive"
21 )
24 gdrive.list_user_files(
25 q=f"name = 'ABP_Pending_Project_Proposal.docx' and trashed = false",
26 pageSize=100,
(...) 29 supportsAllDrives=True,
30 spaces="drive")
33 gdrive.update_file_metadata_or_content(
34 fileId="file_3",
35 addParents="file_4",
36 removeParents="",
37 enforceSingleParent=True
38 )
NameError: name 'page_token' is not defined |
ErrorType: AssertionError
Error Description: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[15], line 54
51 if not page_token:
52 break
---> 54 assert found_file, f"File '{TARGET_FILE_NAME}' not found inside '{REJECTED_FOLDER_NAME}'."
57 # --- STEP 3: Resolve ABP channel ---
58 abp_channel_id = None
AssertionError: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. |
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
Non Assertion Error |
Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Action
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: NameError
Error Description: name 'page_token' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[12], line 17
3 import gdrive
6 slack.list_channels(
7 cursor=None,
8 exclude_archived=False,
9 limit=200,
10 types="public_channel,private_channel,mpim,im"
11 )
14 gdrive.list_user_files(
15 q=f"name = 'Rejected Proposals' and mimeType = 'application/vnd.google-apps.folder' and trashed = false",
16 pageSize=100,
---> 17 pageToken=page_token,
18 includeItemsFromAllDrives=True,
19 supportsAllDrives=True,
20 spaces="drive"
21 )
24 gdrive.list_user_files(
25 q=f"name = 'ABP_Pending_Project_Proposal.docx' and trashed = false",
26 pageSize=100,
(...) 29 supportsAllDrives=True,
30 spaces="drive")
33 gdrive.update_file_metadata_or_content(
34 fileId="file_3",
35 addParents="file_4",
36 removeParents="",
37 enforceSingleParent=True
38 )
NameError: name 'page_token' is not defined |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
**Block**: Action
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: NameError
Error Description: name 'page_token' is not defined
Traceback: ---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[12], line 17
3 import gdrive
6 slack.list_channels(
7 cursor=None,
8 exclude_archived=False,
9 limit=200,
10 types="public_channel,private_channel,mpim,im"
11 )
14 gdrive.list_user_files(
15 q=f"name = 'Rejected Proposals' and mimeType = 'application/vnd.google-apps.folder' and trashed = false",
16 pageSize=100,
---> 17 pageToken=page_token,
18 includeItemsFromAllDrives=True,
19 supportsAllDrives=True,
20 spaces="drive"
21 )
24 gdrive.list_user_files(
25 q=f"name = 'ABP_Pending_Project_Proposal.docx' and trashed = false",
26 pageSize=100,
(...) 29 supportsAllDrives=True,
30 spaces="drive")
33 gdrive.update_file_metadata_or_content(
34 fileId="file_3",
35 addParents="file_4",
36 removeParents="",
37 enforceSingleParent=True
38 )
NameError: name 'page_token' is not defined
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
5.9539 |
| 35f33eef-e8f8-48b1-9e8f-98c7fb21e2f0 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/User_Simulation_-_MT/241_base_US_ToolShift/Agent-241_base_US_ToolShift-Simulation.ipynb |
Agent-241_base_US_ToolShift-Simulation.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/User_Simulation_-_MT/241_base_US_ToolShift/Agent-241_base_US_ToolShift-Simulation.ipynb |
gh-action |
ysmayur23 |
2025-11-18 09:25:06 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/99348fefb7740cfd5d00fda268d8c24196bd1ec4 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: The number of messages in the Slack channel "dev-team" is not as expected.
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[9], line 55
52 except Exception:
53 messages = []
---> 55 assert len(messages) == 4, (
56 f'The number of messages in the Slack channel "{slack_channel_name}" is not as expected.'
57 )
59 # 3. Number of messages in Google Chat space "mobile-bug-tracking" is now 4
60 chat_space_name = None
AssertionError: The number of messages in the Slack channel "dev-team" is not as expected. |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
6.574 |
| f5157660-fb5e-41cb-9b5b-d715935f52e3 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb |
Agent-1649_base-Merged.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb |
gh-action |
devangjoshi-gif |
2025-11-18 09:21:14 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/36f8173c999fc647eb7bdcce46f6613dffd1daf9 |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: CommandExecutionError
Error Description: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
Traceback: ---------------------------------------------------------------------------
CommandExecutionError Traceback (most recent call last)
Cell In[10], line 48
5 unit_test=textwrap.dedent('''
6 import sys
7 import unittest
(...) 44 if __name__ == "__main__":
45 unittest.main()''')
47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test")
---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0
49 assert assertion_1_status , "Assertion Failed"
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background)
1721 raise CommandExecutionError(result_dict['message'])
1722 except CommandExecutionError as ce:
1723 # Preserve detailed command outputs without re-wrapping
-> 1724 raise ce
1725 except Exception as e:
1726 # Catch-all for other unexpected errors
1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True)
File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background)
1648 raise CommandExecutionError(result_dict['message'])
1649 except CommandExecutionError as ce:
1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message
-> 1651 raise ce
1652 except Exception as e:
1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}"
File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background)
1635 detailed_message = (
1636 f"Command failed with exit code {process_obj.returncode}.\n"
1637 f"--- STDOUT ---\n{stdout_text}\n"
1638 f"--- STDERR ---\n{stderr_text}"
1639 )
1640 result_dict['message'] = detailed_message
-> 1641 raise CommandExecutionError(detailed_message)
1642 else:
1643 pass # Command succeeded, continue to state update
CommandExecutionError: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
|
|
|
ErrorType: CommandExecutionError
Error Description: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
Traceback: ---------------------------------------------------------------------------
CommandExecutionError Traceback (most recent call last)
Cell In[16], line 48
5 unit_test=textwrap.dedent('''
6 import sys
7 import unittest
(...) 44 if __name__ == "__main__":
45 unittest.main()''')
47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test")
---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0
49 assert assertion_1_status , "Assertion Failed"
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background)
1721 raise CommandExecutionError(result_dict['message'])
1722 except CommandExecutionError as ce:
1723 # Preserve detailed command outputs without re-wrapping
-> 1724 raise ce
1725 except Exception as e:
1726 # Catch-all for other unexpected errors
1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True)
File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background)
1648 raise CommandExecutionError(result_dict['message'])
1649 except CommandExecutionError as ce:
1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message
-> 1651 raise ce
1652 except Exception as e:
1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}"
File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background)
1635 detailed_message = (
1636 f"Command failed with exit code {process_obj.returncode}.\n"
1637 f"--- STDOUT ---\n{stdout_text}\n"
1638 f"--- STDERR ---\n{stderr_text}"
1639 )
1640 result_dict['message'] = detailed_message
-> 1641 raise CommandExecutionError(detailed_message)
1642 else:
1643 pass # Command succeeded, continue to state update
CommandExecutionError: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
|
No Error Found |
No Error Found |
Non Assertion Error |
No Error Found |
No Error Found |
Non Assertion Error |
Needs Fixes |
Failed: One of the code block contains Non Assertion Error(s) |
Block: Final Assertion
Expected: 'No Error' | Found: 'Non Assertion Error'
Error Details:
ErrorType: CommandExecutionError
Error Description: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
Traceback: ---------------------------------------------------------------------------
CommandExecutionError Traceback (most recent call last)
Cell In[16], line 48
5 unit_test=textwrap.dedent('''
6 import sys
7 import unittest
(...) 44 if __name__ == "__main__":
45 unittest.main()''')
47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test")
---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0
49 assert assertion_1_status , "Assertion Failed"
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background)
1721 raise CommandExecutionError(result_dict['message'])
1722 except CommandExecutionError as ce:
1723 # Preserve detailed command outputs without re-wrapping
-> 1724 raise ce
1725 except Exception as e:
1726 # Catch-all for other unexpected errors
1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True)
File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background)
1648 raise CommandExecutionError(result_dict['message'])
1649 except CommandExecutionError as ce:
1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message
-> 1651 raise ce
1652 except Exception as e:
1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}"
File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background)
1635 detailed_message = (
1636 f"Command failed with exit code {process_obj.returncode}.\n"
1637 f"--- STDOUT ---\n{stdout_text}\n"
1638 f"--- STDERR ---\n{stderr_text}"
1639 )
1640 result_dict['message'] = detailed_message
-> 1641 raise CommandExecutionError(detailed_message)
1642 else:
1643 pass # Command succeeded, continue to state update
CommandExecutionError: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2) |
**Block**: Final Assertion w/o Action
**Expected:** 'Assertion Error' | Found: 'Non Assertion Error'
Error Details π
ErrorType: CommandExecutionError
Error Description: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
Traceback: ---------------------------------------------------------------------------
CommandExecutionError Traceback (most recent call last)
Cell In[10], line 48
5 unit_test=textwrap.dedent('''
6 import sys
7 import unittest
(...) 44 if __name__ == "__main__":
45 unittest.main()''')
47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test")
---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0
49 assert assertion_1_status , "Assertion Failed"
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background)
1721 raise CommandExecutionError(result_dict['message'])
1722 except CommandExecutionError as ce:
1723 # Preserve detailed command outputs without re-wrapping
-> 1724 raise ce
1725 except Exception as e:
1726 # Catch-all for other unexpected errors
1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True)
File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background)
1648 raise CommandExecutionError(result_dict['message'])
1649 except CommandExecutionError as ce:
1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message
-> 1651 raise ce
1652 except Exception as e:
1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}"
File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background)
1635 detailed_message = (
1636 f"Command failed with exit code {process_obj.returncode}.\n"
1637 f"--- STDOUT ---\n{stdout_text}\n"
1638 f"--- STDERR ---\n{stderr_text}"
1639 )
1640 result_dict['message'] = detailed_message
-> 1641 raise CommandExecutionError(detailed_message)
1642 else:
1643 pass # Command succeeded, continue to state update
CommandExecutionError: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2) |
**E2E Execution Summary**:
Status: β
**Block**: Final Assertion
**Expected**: 'No Error' | Found: 'Non Assertion Error'
**Error Details**: π
ErrorType: CommandExecutionError
Error Description: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
Traceback: ---------------------------------------------------------------------------
CommandExecutionError Traceback (most recent call last)
Cell In[16], line 48
5 unit_test=textwrap.dedent('''
6 import sys
7 import unittest
(...) 44 if __name__ == "__main__":
45 unittest.main()''')
47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test")
---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0
49 assert assertion_1_status , "Assertion Failed"
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background)
1721 raise CommandExecutionError(result_dict['message'])
1722 except CommandExecutionError as ce:
1723 # Preserve detailed command outputs without re-wrapping
-> 1724 raise ce
1725 except Exception as e:
1726 # Catch-all for other unexpected errors
1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True)
File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background)
1648 raise CommandExecutionError(result_dict['message'])
1649 except CommandExecutionError as ce:
1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message
-> 1651 raise ce
1652 except Exception as e:
1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}"
File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background)
1635 detailed_message = (
1636 f"Command failed with exit code {process_obj.returncode}.\n"
1637 f"--- STDOUT ---\n{stdout_text}\n"
1638 f"--- STDERR ---\n{stderr_text}"
1639 )
1640 result_dict['message'] = detailed_message
-> 1641 raise CommandExecutionError(detailed_message)
1642 else:
1643 pass # Command succeeded, continue to state update
CommandExecutionError: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
**Block**: Final Assertion w/o Action
**Expected**: 'Assertion Error' | Found: 'Non Assertion Error'
**Error Details**:
ErrorType: CommandExecutionError
Error Description: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
Traceback: ---------------------------------------------------------------------------
CommandExecutionError Traceback (most recent call last)
Cell In[10], line 48
5 unit_test=textwrap.dedent('''
6 import sys
7 import unittest
(...) 44 if __name__ == "__main__":
45 unittest.main()''')
47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test")
---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0
49 assert assertion_1_status , "Assertion Failed"
File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs)
327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
--> 332 return error_format_handler(
333 caught_exception,
334 func_module_name,
335 include_mini_traceback_for_causes,
336 original_func_path=None, # Pass None explicitly for natural errors
337 service_name=service_name
338 )
File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name)
259 print_log(json.dumps(formatted_error, indent=2))
260 print_log("-------------------------------")
--> 261 raise caught_exception
File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs)
324 pass
326 try:
--> 327 return func_to_decorate(*args, **kwargs)
328 except Exception as caught_exception:
329 # Call the centralized processing function.
330 # For natural errors, original_func_path is None,
331 # so the module/function will be derived from the traceback.
332 return error_format_handler(
333 caught_exception,
334 func_module_name,
(...) 337 service_name=service_name
338 )
File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs)
340 error_type_to_inject = self._select_error_type(full_func_path)
341 if not error_type_to_inject:
--> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits
344 # 3. Get details for the selected error
345 selected_error_details = next(
346 (d for d in self.error_definitions.get(full_func_path, [])
347 if d["exception"] == error_type_to_inject),
348 None
349 )
File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs)
310 effective_function_name = function_name or func.__name__
312 if not manager.should_validate(service_name, effective_function_name):
--> 313 return func(*args, **kwargs)
315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name)
316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name)
File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
416 if not mutation_name: # pragma: no cover
--> 417 raise e
419 service_root = MutationManager._get_service_root(service_name)
420 config_path = os.path.join(
421 service_root,
422 "SimulationEngine", "static_mutation_configs",
423 f"{mutation_name}.json"
424 )
File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs)
410 @functools.wraps(func)
411 def wrapper(*args: Any, **kwargs: Any) -> Any:
412 try:
--> 413 return func(*args, **kwargs)
414 except Exception as e:
415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name)
File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs)
468 if self.should_validate_db_state_signature_change and db_to_validate:
469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate)
--> 471 response = func(*args, **kwargs)
473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails)
474 if self.should_check_output_json_flexible and response is not None:
File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs)
174 @wraps(func)
175 def wrapper(*args, **kwargs) -> T:
176 if not ENABLE_COMMON_FILE_SYSTEM:
--> 177 return func(*args, **kwargs)
178 if not COMMON_DIRECTORY:
179 raise ValueError("Common directory not set. Call update_common_directory first.")
File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs)
211 @wraps(func)
212 def wrapper(*args, **kwargs):
--> 213 return func(*args, **kwargs)
File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background)
1721 raise CommandExecutionError(result_dict['message'])
1722 except CommandExecutionError as ce:
1723 # Preserve detailed command outputs without re-wrapping
-> 1724 raise ce
1725 except Exception as e:
1726 # Catch-all for other unexpected errors
1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True)
File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background)
1648 raise CommandExecutionError(result_dict['message'])
1649 except CommandExecutionError as ce:
1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message
-> 1651 raise ce
1652 except Exception as e:
1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}"
File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background)
1635 detailed_message = (
1636 f"Command failed with exit code {process_obj.returncode}.\n"
1637 f"--- STDOUT ---\n{stdout_text}\n"
1638 f"--- STDERR ---\n{stderr_text}"
1639 )
1640 result_dict['message'] = detailed_message
-> 1641 raise CommandExecutionError(detailed_message)
1642 else:
1643 pass # Command succeeded, continue to state update
CommandExecutionError: Command failed with exit code 1.
--- STDOUT ---
CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad
--- STDERR ---
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`.
import keyboard.mouse as mouse
EE
======================================================================
ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five
mouse.n_clicks(5)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
======================================================================
ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero
mouse.n_clicks(0)
^^^^^^^^^^^^^^
AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'?
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
__________________________________________________
**Next Action Item:** β‘οΈ Please fix the issues mentioned above π οΈ |
0.1.7.2 |
e2e-check |
v1.0.4 |
7.0183 |
| 8d11d371-038e-4a21-8171-83b644950b86 |
N/A |
https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/351_base_GC/Agent-351_base_GC-Initial_with_DB_Setup.ipynb |
Agent-351_base_GC-Initial_with_DB_Setup.ipynb |
Turing-Generalized-Agents/google-agents-colabs |
main |
Generalized_Agents_Colabs/Cursor/351_base_GC/Agent-351_base_GC-Initial_with_DB_Setup.ipynb |
gh-action |
thiagomartinsdeoliviera-turing |
2025-11-18 09:17:57 |
https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/c70835d5c966e13b10140f2b91a937e32eff7abb |
TRUE |
|
FALSE |
TRUE |
|
|
|
ErrorType: AssertionError
Error Description: Expected exactly 1 email in Sent folder to 'matt@sivel.net' with subject containing 'maintenance' and 'GitHub', but found 0
Traceback: ---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[10], line 35
32 sent_messages = sent_messages_response.get('messages', [])
34 # Assert that there is exactly one email in Sent folder meeting all criteria
---> 35 assert len(sent_messages) == 1, (
36 f"Expected exactly 1 email in Sent folder to '{author_email}' with subject containing "
37 f"'maintenance' and 'GitHub', but found {len(sent_messages)}"
38 )
40 # Verify the email properties
41 sent_email = sent_messages[0]
AssertionError: Expected exactly 1 email in Sent folder to 'matt@sivel.net' with subject containing 'maintenance' and 'GitHub', but found 0 |
|
|
|
No Error Found |
No Error Found |
Assertion Error |
No Error Found |
No Error Found |
No Error Found |
Good To Go |
Passed: All Steps executed successfully and FA failed w/o action. |
Check Passed. No Action Needed. |
Check Passed. No Action Needed. |
**E2E Execution Summary**:
Status: β
Check Passed: Sample Ran E2E Successfully. β¨
__________________________________________________
**Final Assertion Correctness Summary**:
Status: β
Check Passed: Final Assertion Failing in absence of the Action. π
__________________________________________________
**Next Action Item:** β‘οΈ No Action Needed β
|
0.1.7.2 |
e2e-check |
v1.0.4 |
5.8503 |