import pytest from pydantic import ValidationError from src.database.schema import CommonParams def test_common_params_valid(): params = CommonParams( page=1, itemsPerPage=10, q="search test", all=1 ) assert params.page == 1 assert params.items_per_page == 10 assert params.query_str == "search test" assert params.is_all is True def test_common_params_items_per_page_constraints(): # Test items_per_page must be multiple of 5 with pytest.raises(ValidationError): CommonParams(itemsPerPage=7) # Test items_per_page maximum with pytest.raises(ValidationError): CommonParams(itemsPerPage=55) # Valid multiples of 5 assert CommonParams(itemsPerPage=50).items_per_page == 50 assert CommonParams(itemsPerPage=5).items_per_page == 5 def test_common_params_page_constraints(): # Test page must be > 0 with pytest.raises(ValidationError): CommonParams(page=0) with pytest.raises(ValidationError): CommonParams(page=-1) def test_common_params_query_str_max_length(): # Test query_str max length (100) long_str = "a" * 101 with pytest.raises(ValidationError): CommonParams(q=long_str) def test_common_params_filter_spec_max_length(): # Test filter_spec max length (500) long_filter = "a" * 501 with pytest.raises(ValidationError): CommonParams(filter=long_filter) from src.aeros_equipment.schema import EquipmentConfiguration, FlowrateUnit, UnitCode def test_equipment_configuration_valid(): config = EquipmentConfiguration( equipmentName="Pump A", maxFlowrate=100.0, designFlowrate=80.0, flowrateUnit=FlowrateUnit.PER_HOUR, relDisType="Weibull", relDisP1=1.0, relDisP2=2.0, relDisP3=0.0, relDisUnitCode=UnitCode.U_HOUR, cmDisType="Normal", cmDisP1=6.0, cmDisP2=3.0, cmDisP3=0.0, cmDisUnitCode=UnitCode.U_HOUR, ipDisType="Fixed", ipDisP1=0.0, ipDisP2=0.0, ipDisP3=0.0, ipDisUnitCode=UnitCode.U_HOUR, pmDisType="Fixed", pmDisP1=0.0, pmDisP2=0.0, pmDisP3=0.0, pmDisUnitCode=UnitCode.U_HOUR, ohDisType="Fixed", ohDisP1=0.0, ohDisP2=0.0, ohDisP3=0.0, ohDisUnitCode=UnitCode.U_HOUR ) assert config.equipment_name == "Pump A" assert config.max_flowrate == 100.0 def test_equipment_configuration_invalid_flowrate(): # maxFlowrate cannot be negative with pytest.raises(ValidationError): EquipmentConfiguration( equipmentName="Pump A", maxFlowrate=-1.0, designFlowrate=80.0, flowrateUnit=FlowrateUnit.PER_HOUR, relDisType="Weibull", relDisP1=1.0, relDisP2=2.0, relDisP3=0.0, relDisUnitCode=UnitCode.U_HOUR, cmDisType="Normal", cmDisP1=6.0, cmDisP2=3.0, cmDisP3=0.0, cmDisUnitCode=UnitCode.U_HOUR, ipDisType="Fixed", ipDisP1=0.0, ipDisP2=0.0, ipDisP3=0.0, ipDisUnitCode=UnitCode.U_HOUR, pmDisType="Fixed", pmDisP1=0.0, pmDisP2=0.0, pmDisP3=0.0, pmDisUnitCode=UnitCode.U_HOUR, ohDisType="Fixed", ohDisP1=0.0, ohDisP2=0.0, ohDisP3=0.0, ohDisUnitCode=UnitCode.U_HOUR )