---
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
---