Exemple #1
0
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][()]
Exemple #2
0
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
Exemple #3
0
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][()])
Exemple #4
0
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")
Exemple #5
0
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
Exemple #6
0
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
Exemple #7
0
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()
Exemple #8
0
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)
Exemple #9
0
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