def __init__(self, plugins_table_widget: "PluginsTableWidget", parent=None): super().__init__(parent) self.setWindowTitle("Plugin Manager") self.__plugins_table_widget = plugins_table_widget self.__plugins_table_widget.setParent(self) self.__actions_output_textarea = LoggerTextboxFactory( formatter=logging.Formatter( "%(asctime)s - %(levelname)s: %(message)s", "%H:%M:%S" ), parent=self, ) log.get_logger("plugins").addHandler(self.__actions_output_textarea) self.__main_layout = QVBoxLayout() actions_output_group = QGroupBox("Commands output") actions_output_layout = QVBoxLayout() actions_output_layout.addWidget(self.__actions_output_textarea) actions_output_group.setLayout(actions_output_layout) self.__main_layout.addWidget(self.__plugins_table_widget) self.__main_layout.addWidget(actions_output_group) self.setLayout(self.__main_layout)
def test_init_with_log_level(namespace, expected_log_level): namespace.loglevel = expected_log_level log.init_logs(namespace) assert log.get_log_level() == getattr(log, expected_log_level) assert log.get_logger("test").level == log.get_log_level()
def setData(self, index: "QModelIndex", value: Any, role: int = Qt.EditRole) -> bool: if not index.isValid(): return False plugin: "Plugin" = index.internalPointer() if role == Qt.CheckStateRole: if index.column() == self.ColumnLabel.Active: plugin.active = bool(value) log.get_logger("plugins").info( f'Plugin "{plugin.name}" has been ' f"{'activated' if plugin.active else 'deactivated'}.") return True
def __start_dragging_connection(self, event: "QMouseEvent"): """Starts creating a new connection by dragging the mouse. Only works when the user clicks on a GraphicsPort item. Args: event: Mouse event. """ item: "GraphicsPort" = self.__item_clicked_on(event) if isinstance(item, GraphicsConnection): distance_to_start = ( item.start_graphics_port.pos() - self.mapToScene(event.pos())).manhattanLength() distance_to_end = (item.end_graphics_port.pos() - self.mapToScene(event.pos())).manhattanLength() if distance_to_start < distance_to_end: end_graphics_port = item.end_graphics_port item.end = self.mapToScene(event.pos()) item.start_graphics_port = end_graphics_port else: item.end = self.mapToScene(event.pos()) GraphicsPortPainter.drawing_state = GraphicsPortPainter.DrawingState.Target GraphicsPortPainter.target_port_type = item.start_graphics_port.port_type self.scene().update() self.__new_connection = item return elif isinstance(item, GraphicsPort): log.get_logger(__name__).debug("Start dragging") self.__new_connection = self.__create_new_connection() self.__new_connection.start_graphics_port = item self.__new_connection.end = self.mapToScene(event.pos()) GraphicsPortPainter.drawing_state = GraphicsPortPainter.DrawingState.Target GraphicsPortPainter.target_port_type = item.port_type self.scene().update() return super().mousePressEvent(event)
def test_log_on_end(): logger = log.get_logger("test") @log.log_on_end(log.INFO, message="Log end", logger=logger) def fun(): pass with mock.patch.object(logger, "log") as mock_log: fun() mock_log.assert_called_once_with(log.INFO, "Log end")
def test_log_on_error(): logger = log.get_logger("test") @log.log_on_error(log.ERROR, on_exceptions=(IndexError), message="Error message", logger=logger) def fun(): raise IndexError() with mock.patch.object(logger, "log") as mock_log: with pytest.raises(IndexError): fun() mock_log.assert_called_once_with(log.ERROR, "Error message")
def test_log_on_exception(): logger = log.get_logger("test") @log.log_exception( on_exceptions=(IndexError), message="Exception message", logger=logger, ) def fun(): raise IndexError() with mock.patch.object(logger, "exception") as mock_log_exception: with pytest.raises(IndexError): fun() mock_log_exception.assert_called_once_with("Exception message")
import os from typing import List import dependency_injector.providers as providers from dial_core.utils import log LOGGER = log.get_logger(__name__) from PySide2.QtUiTools import loadUiType from PySide2.QtWidgets import ( QCheckBox, QFileDialog, QFormLayout, QGroupBox, QHBoxLayout, QLineEdit, QPushButton, QVBoxLayout, QWidget, ) current_dir = os.path.dirname(os.path.abspath(__file__)) Form, Base = loadUiType(os.path.join(current_dir, "./Dummy.ui")) class DummyWidget(Form, Base): def __init__(self, parent: QWidget = None): super().__init__(parent) self.setupUi(self) self.myButton.clicked.connect(self.onClickMyButton)