Source code for ewoksorange.tests.test_parameterform
import json
from functools import partial
from ewokscore import missing_data
from ..gui.parameterform import ParameterForm
[docs]def test_parameterform(qtapp):
while qtapp.hasPendingEvents():
qtapp.processEvents()
nchanged = dict()
def cb(name):
nchanged.setdefault(name, 0)
nchanged[name] += 1
form = ParameterForm()
form.addParameter("string", value_change_callback=partial(cb, "string"))
form.addParameter(
"integer", value_for_type=0, value_change_callback=partial(cb, "integer")
)
form.addParameter(
"float", value_for_type=0.0, value_change_callback=partial(cb, "float")
)
form.addParameter(
"boolean", value_for_type=False, value_change_callback=partial(cb, "boolean")
)
form.addParameter(
"json",
serialize=json.dumps,
deserialize=json.loads,
value_change_callback=partial(cb, "json"),
)
form.addParameter(
"choice",
value_for_type=["choice1", "choice2"],
value_change_callback=partial(cb, "choice"),
)
values = form.get_parameter_values()
expected = {
"string": missing_data.MISSING_DATA,
"integer": missing_data.MISSING_DATA,
"float": missing_data.MISSING_DATA,
"boolean": missing_data.MISSING_DATA,
"json": missing_data.MISSING_DATA,
"choice": missing_data.MISSING_DATA,
}
assert values == expected
assert not nchanged
# Set string widget value from code
form.set_parameter_value("string", "abc")
assert form.get_parameter_value("string") == "abc"
form.set_parameter_value("string", missing_data.MISSING_DATA)
assert form.get_parameter_value("string") == missing_data.MISSING_DATA
# Set integer widget value from code
form.set_parameter_value("integer", 10)
assert form.get_parameter_value("integer") == 10
form.set_parameter_value("integer", missing_data.MISSING_DATA)
assert form.get_parameter_value("integer") == missing_data.MISSING_DATA
# Set float widget value from code
form.set_parameter_value("float", 20.0)
assert form.get_parameter_value("float") == 20.0
form.set_parameter_value("float", missing_data.MISSING_DATA)
assert form.get_parameter_value("float") == missing_data.MISSING_DATA
# Set boolean widget value from code
form.set_parameter_value("boolean", True)
assert form.get_parameter_value("boolean") is True
form.set_parameter_value("boolean", missing_data.MISSING_DATA)
assert form.get_parameter_value("boolean") == missing_data.MISSING_DATA
# Set json widget value from code
form.set_parameter_value("json", {"a": 1})
assert form.get_parameter_value("json") == {"a": 1}
form.set_parameter_value("json", missing_data.MISSING_DATA)
assert form.get_parameter_value("json") == missing_data.MISSING_DATA
# Set choice widget value from code
form.set_parameter_value("choice", "choice2")
assert form.get_parameter_value("choice") == "choice2"
form.set_parameter_value("choice", missing_data.MISSING_DATA)
assert form.get_parameter_value("choice") == missing_data.MISSING_DATA
while qtapp.hasPendingEvents():
qtapp.processEvents()
# form.show()
# qtapp.exec()
expected = {
"string": missing_data.MISSING_DATA,
"integer": missing_data.MISSING_DATA,
"float": missing_data.MISSING_DATA,
"boolean": missing_data.MISSING_DATA,
"json": missing_data.MISSING_DATA,
"choice": missing_data.MISSING_DATA,
}
assert values == expected
assert not nchanged
# Set string widget wrong value from code
form.set_parameter_value("string", "abc")
assert form.get_parameter_value("string") == "abc"
form.set_parameter_value("string", 10)
assert form.get_parameter_value("string") == missing_data.MISSING_DATA
# Set integer widget wrong value from code
form.set_parameter_value("integer", -99)
assert form.get_parameter_value("integer") == -99
form.set_parameter_value("integer", "wrong")
assert form.get_parameter_value("integer") == missing_data.MISSING_DATA
# Set float widget wrong value from code
form.set_parameter_value("float", 20.0)
assert form.get_parameter_value("float") == 20.0
form.set_parameter_value("float", "wrong")
assert form.get_parameter_value("float") == missing_data.MISSING_DATA
# Set boolean widget wrong value from code
form.set_parameter_value("boolean", True)
assert form.get_parameter_value("boolean") is True
form.set_parameter_value("boolean", "wrong")
assert form.get_parameter_value("boolean") == missing_data.MISSING_DATA
# Set json widget wrong value from code
form.set_parameter_value("json", {"a": 1})
assert form.get_parameter_value("json") == {"a": 1}
form.set_parameter_value("json", object)
assert form.get_parameter_value("json") == missing_data.MISSING_DATA
# Set choice widget wrong value from code
form.set_parameter_value("choice", "choice2")
assert form.get_parameter_value("choice") == "choice2"
form.set_parameter_value("choice", "wrong")
assert form.get_parameter_value("choice") == missing_data.MISSING_DATA