def test_GIVEN_stream_group_that_has_ev42_advanced_option_WHEN_filling_in_existing_field_widget_THEN_ev42_group_box_is_shown( file, qtbot): group = file.create_group("stream2") group.attrs["NX_class"] = "NCstream" vlen_str = h5py.special_dtype(vlen=str) group.create_dataset("writer_module", dtype=vlen_str, data="ev42") group.create_dataset("topic", dtype=vlen_str, data="topic1") group.create_dataset("source", dtype=vlen_str, data="source1") group.create_dataset(ADC_PULSE_DEBUG, dtype=bool, data=True) wrapper = NexusWrapper() wrapper.load_file(file, file) instrument = Instrument(wrapper, {}) widget = FieldWidget(instrument=instrument) qtbot.addWidget(widget) update_existing_stream_field(group, widget) # this would usually be done outside of the update_existing_stream_field widget.name = get_name_of_node(group) assert widget.streams_widget.ev42_advanced_group_box.isEnabled() generated_group = widget.streams_widget.get_stream_group() assert generated_group["writer_module"][()] == group["writer_module"][()] assert generated_group["topic"][()] == group["topic"][()] assert generated_group["source"][()] == group["source"][()] assert generated_group[ADC_PULSE_DEBUG][()] == group[ADC_PULSE_DEBUG][()]
def __update_existing_dataset_field(field: Dataset, new_ui_field: FieldWidget): new_ui_field.name = field.name new_ui_field.dtype = ValueTypes.STRING if not field.type else field.type new_ui_field.value = field.values # type: ignore new_ui_field.attrs = field units = field.attributes.get_attribute_value(CommonAttrs.UNITS) new_ui_field.units = units
def test_GIVEN_stream_group_that_has_f142_advanced_option_WHEN_filling_in_existing_field_widget_THEN_f142_group_box_is_shown( file, qtbot, nexus_wrapper): group = file.create_group("stream1") group.attrs["NX_class"] = "NCstream" vlen_str = h5py.special_dtype(vlen=str) group.create_dataset("writer_module", dtype=vlen_str, data="f142") group.create_dataset("type", dtype=vlen_str, data="byte") group.create_dataset("topic", dtype=vlen_str, data="topic1") group.create_dataset("source", dtype=vlen_str, data="source1") group.create_dataset(NEXUS_INDICES_INDEX_EVERY_MB, dtype=int, data=1) wrapper = nexus_wrapper wrapper.load_file(file, file) instrument = Instrument(wrapper, {}) widget = FieldWidget(instrument=instrument) qtbot.addWidget(widget) update_existing_stream_field(group, widget) # this would usually be done outside of the update_existing_stream_field widget.name = get_name_of_node(group) assert widget.streams_widget.f142_advanced_group_box.isEnabled() generated_group = widget.streams_widget.get_stream_group() assert generated_group["writer_module"][()] == group["writer_module"][()] assert generated_group["topic"][()] == group["topic"][()] assert generated_group["type"][()] == group["type"][()] assert generated_group["source"][()] == group["source"][()] assert (generated_group[NEXUS_INDICES_INDEX_EVERY_MB][( )] == group[NEXUS_INDICES_INDEX_EVERY_MB][()])
def test_ui_field_GIVEN_field_does_not_have_units_filled_in_ui_WHEN_getting_field_group_THEN_units_are_not_saved( qtbot, ): listwidget = QListWidget() field = FieldWidget(None, POSSIBLE_FIELDS, listwidget) field_name = "test" field.name = field_name field.value_line_edit.setText("1") qtbot.addWidget(field) group = field.value assert not group.attributes.contains_attribute("units")
def test_ui_field_GIVEN_field_does_not_have_units_filled_in_ui_WHEN_getting_field_group_THEN_units_are_not_saved( qtbot, ): listwidget = QListWidget() field = FieldWidget(["test"], listwidget) field_name = "test" field.name = field_name field.value_line_edit.setText("1") qtbot.addWidget(field) group = field.value assert "units" not in group.attrs
def test_ui_field_GIVEN_field_has_units_filled_in_ui_WHEN_getting_field_group_THEN_units_are_stored_in_attrs( qtbot, ): listwidget = QListWidget() field = FieldWidget(None, POSSIBLE_FIELDS, listwidget) field_name = "test" field.name = field_name field.value_line_edit.setText("1") qtbot.addWidget(field) units = "m" field.units = units group = field.value assert group.attributes.contains_attribute("units") assert group.attributes.get_attribute_value("units") == units
def test_ui_stream_field_GIVEN_f142_is_selected_WHEN_combo_is_changed_THEN_value_units_edit_is_shown( qtbot, ): listwidget = QListWidget() field = FieldWidget(["test"], listwidget) field_name = "test" field.name = field_name stream_fields_widget = StreamFieldsWidget(field) qtbot.addWidget(stream_fields_widget) stream_fields_widget.schema_combo.currentTextChanged.emit("f142") assert stream_fields_widget.value_units_edit.isEnabled() assert stream_fields_widget.value_units_label.isEnabled()
def test_ui_stream_field_GIVEN_f142_is_selected_WHEN_advanced_options_are_clicked_THEN_f142_group_box_is_shown( qtbot, ): listwidget = QListWidget() field = FieldWidget(["test"], listwidget) field_name = "test" field.name = field_name stream_fields_widget = StreamFieldsWidget(field) stream_fields_widget.schema_combo.setCurrentText("f142") qtbot.addWidget(stream_fields_widget) stream_fields_widget.f142_advanced_group_box.setVisible = Mock() stream_fields_widget._show_advanced_options(True) stream_fields_widget.f142_advanced_group_box.setVisible.assert_called_once_with( True)
def test_ui_field_GIVEN_field_has_units_filled_in_ui_WHEN_getting_field_group_THEN_units_are_stored_in_attrs( qtbot, ): nexus_wrapper = NexusWrapper("test_ui_fields_units") instrument = Instrument(nexus_wrapper, NX_CLASS_DEFINITIONS) listwidget = QListWidget() field = FieldWidget(["test"], listwidget, instrument=instrument) field_name = "test" field.name = field_name field.value_line_edit.setText("1") qtbot.addWidget(field) units = "m" field.units = units group = field.value assert "units" in group.attrs assert group.attrs["units"] == units