def test_malert_with_wrong_text(qtbot, input_text, error_type): """Test MAlert with wrong type for text arg.""" with pytest.raises(TypeError) as exc_info: widget = MAlert() widget.set_dayu_text(input_text) qtbot.addWidget(widget) exception_msg = exc_info.value.args[0] assert exception_msg == "Input argument 'value' should be string type, " \ "but get <type '{}'>".format(error_type)
def test_malert_with_wrong_type(qtbot, input_type): """Test MAlert with wrong type for type arg""" with pytest.raises(ValueError) as exc_info: widget = MAlert() widget.set_dayu_type(input_type) qtbot.addWidget(widget) exception_msg = exc_info.value.args[0] assert exception_msg == "Input argument 'value' should be " \ "one of info/success/warning/error string."
def __init__(self, parent=None): super(AlertExample, self).__init__(parent) self.setWindowTitle("Example for MAlert") main_lay = QtWidgets.QVBoxLayout() self.setLayout(main_lay) main_lay.addWidget(MDivider("different type")) main_lay.addWidget( MAlert(text="Information Message", parent=self).info()) main_lay.addWidget( MAlert(text="Success Message", parent=self).success()) main_lay.addWidget( MAlert(text="Warning Message", parent=self).warning()) main_lay.addWidget(MAlert(text="Error Message", parent=self).error()) closable_alert = MAlert("Some Message", parent=self).closable() main_lay.addWidget(MLabel("不同的提示信息类型")) main_lay.addWidget(MDivider("closable")) main_lay.addWidget(closable_alert) main_lay.addWidget(MDivider("data bind")) self.register_field("msg", "") self.register_field("msg_type", MAlert.InfoType) data_bind_alert = MAlert(parent=self) data_bind_alert.set_closable(True) self.bind("msg", data_bind_alert, "dayu_text") self.bind("msg_type", data_bind_alert, "dayu_type") button_grp = MPushButtonGroup() button_grp.set_button_list([ { "text": "error", "clicked": functools.partial(self.slot_change_alert, "password is wrong", MAlert.ErrorType), }, { "text": "success", "clicked": functools.partial(self.slot_change_alert, "login success", MAlert.SuccessType), }, { "text": "no more error", "clicked": functools.partial(self.slot_change_alert, "", MAlert.InfoType), }, ]) main_lay.addWidget(button_grp) main_lay.addWidget(data_bind_alert) main_lay.addStretch()
def __init__(self, parent=None): super(AlertExample, self).__init__(parent) self.setWindowTitle('Example for MAlert') main_lay = QVBoxLayout() self.setLayout(main_lay) main_lay.addWidget(MDivider('different type')) main_lay.addWidget( MAlert(text='Information Message', parent=self).info()) main_lay.addWidget( MAlert(text='Success Message', parent=self).success()) main_lay.addWidget( MAlert(text='Warning Message', parent=self).warning()) main_lay.addWidget(MAlert(text='Error Message', parent=self).error()) closeable_alert = MAlert('Some Message', parent=self).closable() main_lay.addWidget(MLabel(u'不同的提示信息类型')) main_lay.addWidget(MDivider('closable')) main_lay.addWidget(closeable_alert) main_lay.addWidget(MDivider('data bind')) self.register_field('msg', '') self.register_field('msg_type', MAlert.InfoType) data_bind_alert = MAlert(parent=self) data_bind_alert.set_closeable(True) self.bind('msg', data_bind_alert, 'dayu_text') self.bind('msg_type', data_bind_alert, 'dayu_type') button_grp = MPushButtonGroup() button_grp.set_button_list([{ 'text': 'error', 'clicked': functools.partial(self.slot_change_alert, 'password is wrong', MAlert.ErrorType) }, { 'text': 'success', 'clicked': functools.partial(self.slot_change_alert, 'login success', MAlert.SuccessType) }, { 'text': 'no more error', 'clicked': functools.partial(self.slot_change_alert, '', MAlert.InfoType) }]) main_lay.addWidget(button_grp) main_lay.addWidget(data_bind_alert) main_lay.addStretch()
def test_malert_init(qtbot, kwargs, result): """Test MAlert with different arguments.""" widget = MAlert() if kwargs.get('text'): widget.set_dayu_text(kwargs.get('text')) if kwargs.get('type'): widget.set_dayu_type(kwargs.get('type')) qtbot.addWidget(widget) assert widget.property('dayu_type') == result['type'] assert widget.property('dayu_text') == result['text'] assert widget.isVisible() == result['visible']
def test_malert_init(qtbot, kwargs, result): """Test MAlert with different arguments.""" widget = MAlert() if kwargs.get("text"): widget.set_dayu_text(kwargs.get("text")) if kwargs.get("type"): widget.set_dayu_type(kwargs.get("type")) qtbot.addWidget(widget) assert widget.property("dayu_type") == result["type"] assert widget.property("dayu_text") == result["text"] assert widget.isVisible() == result["visible"]
def _init_ui(self): model_1 = MTableModel() model_1.set_header_list(mock.header_list) model_sort = MSortFilterModel() model_sort.setSourceModel(model_1) table_small = MTableView(size=dayu_theme.small, show_row_count=True) table_grid = MTableView(size=dayu_theme.small, show_row_count=True) table_grid.setShowGrid(True) table_default = MTableView(size=dayu_theme.medium, show_row_count=True) thread = MFetchDataThread(self) self.loading_wrapper = MLoadingWrapper(widget=table_default, loading=False) thread.started.connect( functools.partial(self.loading_wrapper.set_dayu_loading, True)) thread.finished.connect( functools.partial(self.loading_wrapper.set_dayu_loading, False)) thread.finished.connect( functools.partial(table_default.setModel, model_sort)) button = MPushButton(text="Get Data: 4s") button.clicked.connect(thread.start) switch_lay = QtWidgets.QHBoxLayout() switch_lay.addWidget(button) switch_lay.addStretch() table_large = MTableView(size=dayu_theme.large, show_row_count=False) table_small.setModel(model_sort) table_grid.setModel(model_sort) table_large.setModel(model_sort) model_sort.set_header_list(mock.header_list) table_small.set_header_list(mock.header_list) table_grid.set_header_list(mock.header_list) table_default.set_header_list(mock.header_list) table_large.set_header_list(mock.header_list) model_1.set_data_list(mock.data_list) line_edit = MLineEdit().search().small() line_edit.textChanged.connect(model_sort.set_search_pattern) main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(line_edit) main_lay.addWidget(MDivider("Small Size")) main_lay.addWidget(table_small) main_lay.addWidget(MDivider("Default Size")) main_lay.addLayout(switch_lay) main_lay.addWidget(self.loading_wrapper) main_lay.addWidget(MDivider("Large Size (Hide Row Count)")) main_lay.addWidget(table_large) main_lay.addWidget(MDivider("With Grid")) main_lay.addWidget(table_grid) main_lay.addStretch() main_lay.addWidget( MAlert('Simply use "MItemViewSet" or "MItemViewFullSet"')) self.setLayout(main_lay)