def test_get_meter_input(): dummy_meter = DummyMeter() assert dummy_meter.get_inputs() == {"DummyMeter":{"inputs":["value"],"child_inputs":[]}} seq_meter = Sequence(sequence=[DummyMeter(),DummyMeter()]) assert seq_meter.get_inputs() == {"Sequence": {"inputs": [], "child_inputs": [ {"DummyMeter":{"inputs":["value"],"child_inputs":[]}}, {"DummyMeter":{"inputs":["value"],"child_inputs":[]}} ]}} cond_meter = Condition(condition_parameter=(lambda x: True),success=DummyMeter(),failure=DummyMeter()) assert cond_meter.get_inputs() == {'Condition': {'child_inputs': {'failure': {'DummyMeter': {'child_inputs': [], 'inputs': ['value']}}, 'success': {'DummyMeter': {'child_inputs': [],'inputs': ['value']}}}, 'inputs': [] }}
def test_sane_missing_input_error_messages(): dummy_meter = DummyMeter() with pytest.raises(TypeError) as excinfo: dummy_meter.evaluate() assert "expected argument 'value' for meter 'DummyMeter'; got kwargs=[] (with mapped_inputs=[]) instead." in excinfo.value.args[0] seq_meter = Sequence(sequence=[ DummyMeter(input_mapping={"value_one":"value"}, output_mapping={"result":"result_one"}), DummyMeter(input_mapping={"value_two":"value"}, output_mapping={"result":"result_two"}), ]) assert seq_meter.evaluate(value_one=1,value_two=2) == {'result_one': 1, 'result_two': 2} with pytest.raises(TypeError) as excinfo: seq_meter.evaluate(value_one=1) assert "expected argument 'value' for meter 'DummyMeter';" \ " got kwargs=['result_one', 'value_one'] " \ "(with mapped_inputs=['result_one', 'value_one']) instead." \ == excinfo.value.args[0]