mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-13 12:08:47 +00:00
197 lines
5.2 KiB
Python
197 lines
5.2 KiB
Python
# Copyright 2021 Collate
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
"""
|
|
Test that we can properly parse JSON definition
|
|
of validations
|
|
"""
|
|
from metadata.generated.schema.tests.column.columnValuesLengthsToBeBetween import (
|
|
ColumnValueLengthsToBeBetween,
|
|
)
|
|
from metadata.generated.schema.tests.column.columnValuesMissingCountToBeEqual import (
|
|
ColumnValuesMissingCount,
|
|
)
|
|
from metadata.generated.schema.tests.column.columnValuesToBeBetween import (
|
|
ColumnValuesToBeBetween,
|
|
)
|
|
from metadata.generated.schema.tests.column.columnValuesToBeNotInSet import (
|
|
ColumnValuesToBeNotInSet,
|
|
)
|
|
from metadata.generated.schema.tests.column.columnValuesToBeNotNull import (
|
|
ColumnValuesToBeNotNull,
|
|
)
|
|
from metadata.generated.schema.tests.column.columnValuesToBeUnique import (
|
|
ColumnValuesToBeUnique,
|
|
)
|
|
from metadata.generated.schema.tests.column.columnValuesToMatchRegex import (
|
|
ColumnValuesToMatchRegex,
|
|
)
|
|
from metadata.generated.schema.tests.columnTest import ColumnTestCase
|
|
from metadata.generated.schema.tests.table.tableColumnCountToEqual import (
|
|
TableColumnCountToEqual,
|
|
)
|
|
from metadata.generated.schema.tests.table.tableRowCountToBeBetween import (
|
|
TableRowCountToBeBetween,
|
|
)
|
|
from metadata.generated.schema.tests.table.tableRowCountToEqual import (
|
|
TableRowCountToEqual,
|
|
)
|
|
from metadata.generated.schema.tests.tableTest import TableTestCase
|
|
|
|
|
|
def test_column_values_to_be_unique():
|
|
"""
|
|
ColumnValuesToBeUnique
|
|
"""
|
|
obj = {
|
|
"config": {"columnValuesToBeUnique": True},
|
|
"columnTestType": "columnValuesToBeUnique",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValuesToBeUnique)
|
|
|
|
|
|
def test_column_values_to_be_not_null():
|
|
"""
|
|
ColumnValuesToBeNotNull
|
|
"""
|
|
obj = {
|
|
"config": {"columnValuesToBeNotNull": True},
|
|
"columnTestType": "columnValuesToBeNotNull",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValuesToBeNotNull)
|
|
|
|
|
|
def test_column_values_to_be_between():
|
|
"""
|
|
ColumnValuesToBeBetween
|
|
"""
|
|
obj = {
|
|
"config": {"minValue": 6, "maxValue": 10},
|
|
"columnTestType": "columnValuesToBeBetween",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValuesToBeBetween)
|
|
|
|
|
|
def test_column_value_length_to_be_between():
|
|
"""
|
|
ColumnValueLengthsToBeBetween
|
|
"""
|
|
obj = {
|
|
"config": {"minLength": 6, "maxLength": 10},
|
|
"columnTestType": "columnValueLengthsToBeBetween",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValueLengthsToBeBetween)
|
|
|
|
|
|
def test_column_values_not_in_set():
|
|
"""
|
|
ColumnValuesToBeNotInSet
|
|
"""
|
|
obj = {
|
|
"config": {"forbiddenValues": ["random"]},
|
|
"columnTestType": "columnValuesToBeNotInSet",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValuesToBeNotInSet)
|
|
|
|
|
|
def test_column_values_to_match_regex():
|
|
"""
|
|
ColumnValuesToMatchRegex
|
|
"""
|
|
obj = {
|
|
"config": {"regex": "%regex%"},
|
|
"columnTestType": "columnValuesToMatchRegex",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValuesToMatchRegex)
|
|
|
|
|
|
def test_column_values_missing_count_to_be_equal():
|
|
"""
|
|
ColumnValuesMissingCount
|
|
"""
|
|
obj = {
|
|
"config": {"missingCountValue": 10, "missingValueMatch": ["N/A"]},
|
|
"columnTestType": "columnValuesMissingCountToBeEqual",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValuesMissingCount)
|
|
|
|
obj = {
|
|
"config": {"missingCountValue": 10},
|
|
"columnTestType": "columnValuesMissingCountToBeEqual",
|
|
}
|
|
|
|
test_case = ColumnTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, ColumnValuesMissingCount)
|
|
|
|
|
|
def test_table_row_count_to_equal():
|
|
"""
|
|
TableRowCountToEqual
|
|
"""
|
|
obj = {
|
|
"config": {"value": 10},
|
|
"tableTestType": "tableRowCountToEqual",
|
|
}
|
|
|
|
test_case = TableTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, TableRowCountToEqual)
|
|
|
|
|
|
def test_table_row_count_to_be_between():
|
|
"""
|
|
TableRowCountToBeBetween
|
|
"""
|
|
obj = {
|
|
"config": {"minValue": 10, "maxValue": 100},
|
|
"tableTestType": "tableRowCountToBeBetween",
|
|
}
|
|
|
|
test_case = TableTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, TableRowCountToBeBetween)
|
|
|
|
|
|
def test_table_column_count_to_equal():
|
|
"""
|
|
TableColumnCountToEqual
|
|
"""
|
|
obj = {
|
|
"config": {"columnCount": 10},
|
|
"tableTestType": "tableColumnCountToEqual",
|
|
}
|
|
|
|
test_case = TableTestCase.parse_obj(obj)
|
|
|
|
assert isinstance(test_case.config, TableColumnCountToEqual)
|