Sriharsha Chintalapani 1a42428e42
Add time series extention (#6416)
Co-authored-by: Vivek Ratnavel Subramanian <vivekratnavel90@gmail.com>
Co-authored-by: Teddy <teddy.crepineau@gmail.com>
Co-authored-by: Shailesh Parmar <shailesh.parmar.webdev@gmail.com>
2022-08-04 07:22:47 -07:00

140 lines
4.9 KiB
Python

# Copyright 2022 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 suite for table builders
"""
from pytest import mark
from metadata.generated.schema.api.tests.createTableTest import CreateTableTestRequest
from metadata.generated.schema.tests.basic import TestCaseResult as _TestCaseResult
from metadata.generated.schema.tests.table import tableColumnCountToEqual
from metadata.generated.schema.tests.tableTest import TableTestCase, TableTestType
from metadata.great_expectations.builders.table.column_count_to_equal import (
TableColumCountToEqualBuilder,
)
from metadata.great_expectations.builders.table.row_count_to_be_between import (
TableRowCountToBeBetweenBuilder,
)
from metadata.great_expectations.builders.table.row_count_to_equal import (
TableRowCountToEqualBuilder,
)
def test_base_table_builder_attributes_none(mocked_base_table_builder):
"""Test correct attributes are set for the base builder class"""
assert mocked_base_table_builder.result is None
assert mocked_base_table_builder.ometa_conn is None
assert mocked_base_table_builder.table_entity is None
assert mocked_base_table_builder.timestamp is None
@mark.parametrize(
"values",
[
{"result": {"foo": "bar"}, "ometa_conn": "OMetaConn", "table_entity": "Table"},
{
"result": {"bar": "baz"},
"ometa_conn": "DummyConn",
"table_entity": "DummyTable",
},
],
)
def test_base_table_builder_attributes_not_none(mocked_base_table_builder, values):
"""Test attributes are set correctly using __call__ method"""
mocked_base_table_builder(
result=values["result"],
ometa_conn=values["ometa_conn"],
table_entity=values["table_entity"],
)
assert mocked_base_table_builder.result == values["result"]
assert mocked_base_table_builder.ometa_conn == values["ometa_conn"]
assert mocked_base_table_builder.table_entity == values["table_entity"]
assert mocked_base_table_builder.timestamp is not None
def test_base_table_builder_attributes_list(mocked_base_table_builder):
"""Test base table builder has the expected attributes"""
expected_attributes = {"result", "ometa_conn", "table_entity", "timestamp"}
assert expected_attributes.issubset(mocked_base_table_builder.__dict__.keys())
def test_base_table_builder_build_test_case(mocked_base_table_builder):
"""Test test case builder"""
test_case = mocked_base_table_builder.build_test_case(
config=tableColumnCountToEqual.TableColumnCountToEqual(columnCount=10),
test_type=TableTestType.tableColumnCountToEqual,
)
assert isinstance(test_case, TableTestCase)
test_case.config
test_case.tableTestType
def test_base_table_builder_build_test_case_results(
mocked_base_table_builder, mocked_ge_table_result
):
"""Test test case results are built as expected"""
mocked_base_table_builder(
result=mocked_ge_table_result,
ometa_conn="OMetaConnection",
table_entity="TableEntity",
)
test_case_result = mocked_base_table_builder.build_test_case_results()
assert isinstance(test_case_result, _TestCaseResult)
test_case_result.timestamp
test_case_result.testCaseStatus
test_case_result.result
def test_base_table_builder_build_test_request(
mocked_base_table_builder, mocked_ge_table_result
):
"""Test CreateTestRequest is built as expected"""
mocked_base_table_builder(
result=mocked_ge_table_result,
ometa_conn="OMetaConnection",
table_entity="TableEntity",
)
table_test_request = mocked_base_table_builder.build_test_request(
config=tableColumnCountToEqual.TableColumnCountToEqual(columnCount=10),
test_type=TableTestType.tableColumnCountToEqual,
)
assert isinstance(table_test_request, CreateTableTestRequest)
table_test_request.testCase
table_test_request.result
table_test_request.updatedAt
@mark.parametrize(
"builder",
[
TableRowCountToEqualBuilder(),
TableColumCountToEqualBuilder(),
TableRowCountToBeBetweenBuilder(),
],
)
def test_table_custom_builders(mocked_ge_table_result, builder):
"""Test custom builders"""
builder(
result=mocked_ge_table_result,
ometa_conn="OMetaConnection",
table_entity="TableEntity",
)
builder_test_request = builder._build_test()
assert isinstance(builder_test_request, CreateTableTestRequest)