mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-06-27 04:22:05 +00:00
92 lines
2.8 KiB
Python
92 lines
2.8 KiB
Python
import pytest
|
|
|
|
from metadata.generated.schema.entity.data.table import Column, DataType
|
|
from metadata.generated.schema.type.basic import Markdown
|
|
from metadata.ingestion.source.dashboard.powerbi.metadata import PowerbiSource
|
|
from metadata.ingestion.source.dashboard.powerbi.models import (
|
|
PowerBiMeasures,
|
|
PowerBiTable,
|
|
)
|
|
|
|
test_cases = {
|
|
"visible_measure": {
|
|
"input": [
|
|
PowerBiMeasures(
|
|
name="test_measure",
|
|
expression="SUM(Sales)",
|
|
description="Test Description",
|
|
isHidden=False,
|
|
)
|
|
],
|
|
"expected": [
|
|
Column(
|
|
name="test_measure",
|
|
dataType=DataType.MEASURE_VISIBLE,
|
|
dataTypeDisplay=DataType.MEASURE_VISIBLE,
|
|
description=Markdown("Test Description\n\nExpression : SUM(Sales)"),
|
|
)
|
|
],
|
|
},
|
|
"hidden_measure": {
|
|
"input": [
|
|
PowerBiMeasures(
|
|
name="hidden_measure",
|
|
expression="AVG(Profit)",
|
|
description="Hidden",
|
|
isHidden=True,
|
|
)
|
|
],
|
|
"expected": [
|
|
Column(
|
|
name="hidden_measure",
|
|
dataType=DataType.MEASURE_HIDDEN,
|
|
dataTypeDisplay=DataType.MEASURE_HIDDEN,
|
|
description=Markdown("Hidden\n\nExpression : AVG(Profit)"),
|
|
)
|
|
],
|
|
},
|
|
"complex_expression": {
|
|
"input": [
|
|
PowerBiMeasures(
|
|
name="complex_measure",
|
|
expression="SUM(Table[Column]) - SUM(OtherTable[OtherColumn])",
|
|
isHidden=False,
|
|
)
|
|
],
|
|
"expected": [
|
|
Column(
|
|
name="complex_measure",
|
|
dataType=DataType.MEASURE_VISIBLE,
|
|
dataTypeDisplay=DataType.MEASURE_VISIBLE,
|
|
description=Markdown(
|
|
"Expression : SUM(Table[Column]) - SUM(OtherTable[OtherColumn])"
|
|
),
|
|
)
|
|
],
|
|
},
|
|
}
|
|
|
|
|
|
class MockPowerbiSource(PowerbiSource):
|
|
def __init__(self):
|
|
pass
|
|
|
|
|
|
@pytest.mark.parametrize("test_case_name, test_case", test_cases.items())
|
|
def test_get_child_measures(test_case_name, test_case):
|
|
powerbi_source = MockPowerbiSource()
|
|
test_table = PowerBiTable(
|
|
name="test_table",
|
|
measures=test_case["input"],
|
|
)
|
|
|
|
result_columns = powerbi_source._get_child_measures(test_table)
|
|
|
|
assert result_columns
|
|
|
|
for expected_col, actual_col in zip(test_case["expected"], result_columns):
|
|
assert actual_col.name == expected_col.name
|
|
assert actual_col.dataType == expected_col.dataType
|
|
assert actual_col.dataTypeDisplay == expected_col.dataTypeDisplay
|
|
assert actual_col.description == expected_col.description
|