-
René Paris authoredRené Paris authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test_property_view.py 2.89 KiB
import pytest
from property_view import PropertyView
from converter import Converter, Dependency
from open_scenario_tree import OscProperty
@pytest.mark.parametrize("node, converter, oscProperty, expected_result", [
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", False, False, False)], "ConvertScenarioPropName(node_->GetPropName())"),
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", True, False, False)], "ConvertScenarioPropName(node_->IsSetPropName() ? std::make_optional(node_->GetPropName()) : std::nullopt)"),
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", False, True, False)], "ConvertScenarioPropName(node_->GetPropName())"),
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", False, False, True)], "ConvertScenarioPropName(node_->GetPropName())"),
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", True, True, False)], "ConvertScenarioPropName(node_->IsSetPropName() ? std::make_optional(node_->GetPropName()) : std::nullopt)"),
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", True, False, True)], "ConvertScenarioPropName(node_->IsSetPropName() ? std::make_optional(node_->GetPropName()) : std::nullopt)"),
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", False, True, True)], "ConvertScenarioPropName(node_->GetPropName())"),
("node_", Converter([], "propName", {}), [OscProperty("propName", "type", True, True, True)], "ConvertScenarioPropName(node_->IsSetPropName() ? std::make_optional(node_->GetPropName()) : std::nullopt)")
])
def test__given_property_with_converter__generates_property_views_with_converters(node, converter, oscProperty, expected_result):
obj = PropertyView(node, converter, oscProperty)
assert str(obj) == expected_result
def test__given_property_and_optional_property_with_converter__generates_property_views_with_ternary_operator():
obj = PropertyView("node_", Converter([], "MyConv", {}), [OscProperty("propName1", "type", False, False, False), OscProperty("propName2", "type", True, False, False)])
assert str(obj) == "ConvertScenarioMyConv(node_->GetPropName1(), node_->IsSetPropName2() ? std::make_optional(node_->GetPropName2()) : std::nullopt)"
def test__given_property_with_no_converters__generates_property_views_without_converters():
obj = PropertyView("node_", None, [OscProperty("propName1", "type", False, False, False)])
assert str(obj) == "node_->GetPropName1()"
def test__given_property_and_optional_property_with_converter__generates_property_views_with_ternary_operator213():
dep = {"Environment": Dependency("environment", "", "")}
obj = PropertyView("node_", Converter(dep, "MyConv", {'Dependencies': ['Environment']}), [OscProperty("propName1", "type", False, False, False)])
assert str(obj) == "ConvertScenarioMyConv(environment, node_->GetPropName1())"