---
title: Test Mixin
slug: /sdk/python/api-reference/tests-mixin
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L0")
# module `tests_mixin`
Mixin class containing Tests specific methods 
To be used by OpenMetadata class 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L49")
## class `OMetaTestsMixin`
OpenMetadata API methods related to Tests. 
To be inherited by OpenMetadata 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L297")
### method `add_logical_test_cases`
```python
add_logical_test_cases(data: CreateLogicalTestCases) → None
```
Add logical test cases to a test suite 
**Args:**
 
 - `data` (CreateLogicalTestCases):  logical test cases 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L58")
### method `add_test_case_results`
```python
add_test_case_results(test_results: TestCaseResult, test_case_fqn: str)
```
Add test case results to a test case 
**Args:**
 
 - `test_results` (TestCaseResult):  test case results to pass to the test case 
 - `test_case_fqn` (str):  test case fqn 
**Returns:**
 
 - `_type_`:  _description_ 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L260")
### method `create_or_update_executable_test_suite`
```python
create_or_update_executable_test_suite(data: CreateTestSuiteRequest) → TestSuite
```
Create or update an executable test suite 
**Args:**
 
 - `data` (CreateTestSuiteRequest):  test suite request 
**Returns:**
 
 - `TestSuite`:  test suite object 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L278")
### method `delete_executable_test_suite`
```python
delete_executable_test_suite(
    entity: Type[TestSuite],
    entity_id: Union[str, UUID],
    recursive: bool = False,
    hard_delete: bool = False
) → None
```
Delete executable test suite 
**Args:**
 
 - `entity_id` (str):  test suite ID 
 - `recursive` (bool, optional):  delete children if true 
 - `hard_delete` (bool, optional):  hard delete if true 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L201")
### method `get_or_create_executable_test_suite`
```python
get_or_create_executable_test_suite(
    entity_fqn: str
) → Union[EntityReference, TestSuite]
```
Given an entity fqn, retrieve the link test suite if it exists or create a new one 
**Args:**
 
 - `table_fqn` (str):  entity fully qualified name 
**Returns:**
 TestSuite: 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L161")
### method `get_or_create_test_case`
```python
get_or_create_test_case(
    test_case_fqn: str,
    entity_link: Optional[str] = None,
    test_suite_fqn: Optional[str] = None,
    test_definition_fqn: Optional[str] = None,
    test_case_parameter_values: Optional[List[TestCaseParameterValue]] = None
)
```
Get or create a test case 
**Args:**
 
 - `test_case_fqn` (str):  fully qualified name for the test 
 - `entity_link` (Optional[str], optional):  _description_. Defaults to None. 
 - `test_suite_fqn` (Optional[str], optional):  _description_. Defaults to None. 
 - `test_definition_fqn` (Optional[str], optional):  _description_. Defaults to None. 
 - `test_case_parameter_values` (Optional[str], optional):  _description_. Defaults to None. 
**Returns:**
 
 - `_type_`:  _description_ 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L115")
### method `get_or_create_test_definition`
```python
get_or_create_test_definition(
    test_definition_fqn: str,
    test_definition_description: Optional[str] = None,
    entity_type: Optional[EntityType] = None,
    test_platforms: Optional[List[TestPlatform]] = None,
    test_case_parameter_definition: Optional[List[TestCaseParameterDefinition]] = None
) → TestDefinition
```
Get or create a test definition 
**Args:**
 
 - `test_definition_fqn` (str):  test definition fully qualified name 
 - `test_definition_description` (Optional[str], optional):  description for the test definition.  Defaults to None. 
 - `entity_type` (Optional[EntityType], optional):  entity type (COLUMN or TABLE). Defaults to None. 
 - `test_platforms` (Optional[List[TestPlatform]], optional):  test platforms. Defaults to None. 
 - `test_case_parameter_definition` (Optional[List[TestCaseParameterDefinition]], optional):  parameters for the  test case definition. Defaults to None. 
**Returns:**
 
 - `TestDefinition`:  a test definition object 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L79")
### method `get_or_create_test_suite`
```python
get_or_create_test_suite(
    test_suite_name: str,
    test_suite_description: Optional[str] = 'Test Suite created on 2023-12-04'
) → TestSuite
```
Get or create a TestSuite 
**Args:**
 
 - `test_suite_name` (str):  test suite name 
 - `test_suite_description` (Optional[str], optional):  test suite description.  Defaults to f"Test Suite created on {datetime.now(timezone.utc).strftime('%Y-%m-%d')}". 
**Returns:**
 TestSuite: 
---
[{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/tests_mixin.py#L231")
### method `get_test_case_results`
```python
get_test_case_results(
    test_case_fqn: str,
    start_ts: int,
    end_ts: int
) → Optional[List[TestCaseResult]]
```
Retrieve list of test cases 
**Args:**
 
 - `test_case_fqn` (str):  test_case_fqn 
 - `start_ts` (int):  timestamp 
 - `end_ts` (int):  timestamp 
---