From fb873edcb5e2cce2095684b88f03adc4b3b95083 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 11 Dec 2025 14:03:08 +1100 Subject: [PATCH] isort followed by black --- bouquin/bug_report_dialog.py | 8 ++--- bouquin/code_block_editor_dialog.py | 13 ++++--- bouquin/code_highlighter.py | 4 +-- bouquin/db.py | 9 +++-- bouquin/document_utils.py | 2 +- bouquin/documents.py | 28 +++++++-------- bouquin/find_bar.py | 17 ++++------ bouquin/history_dialog.py | 13 ++++--- bouquin/invoices.py | 43 +++++++++++------------- bouquin/key_prompt.py | 6 ++-- bouquin/lock_overlay.py | 4 +-- bouquin/main.py | 11 +++--- bouquin/main_window.py | 28 +++++++-------- bouquin/markdown_editor.py | 12 +++---- bouquin/markdown_highlighter.py | 2 +- bouquin/pomodoro_timer.py | 2 +- bouquin/reminders.py | 34 +++++++++---------- bouquin/save_dialog.py | 8 +---- bouquin/search.py | 2 +- bouquin/settings.py | 1 + bouquin/settings_dialog.py | 28 +++++++-------- bouquin/statistics_dialog.py | 13 ++++--- bouquin/strings.py | 2 +- bouquin/tag_browser.py | 16 ++++----- bouquin/tags_widget.py | 8 ++--- bouquin/theme.py | 8 +++-- bouquin/time_log.py | 43 ++++++++++++------------ bouquin/toolbar.py | 4 +-- bouquin/version_check.py | 14 +++----- tests/conftest.py | 2 +- tests/test_bug_report_dialog.py | 4 +-- tests/test_code_block_editor_dialog.py | 8 ++--- tests/test_code_highlighter.py | 4 +-- tests/test_db.py | 10 +++--- tests/test_document_utils.py | 6 ++-- tests/test_documents.py | 9 +++-- tests/test_find_bar.py | 7 ++-- tests/test_history_dialog.py | 5 ++- tests/test_invoices.py | 18 +++++----- tests/test_key_prompt.py | 1 - tests/test_lock_overlay.py | 4 +-- tests/test_main.py | 1 + tests/test_main_window.py | 23 ++++++------- tests/test_markdown_editor.py | 27 +++++++-------- tests/test_markdown_editor_additional.py | 17 +++++----- tests/test_pomodoro_timer.py | 7 ++-- tests/test_reminders.py | 33 +++++++++--------- tests/test_settings.py | 6 +--- tests/test_settings_dialog.py | 10 +++--- tests/test_statistics_dialog.py | 10 +++--- tests/test_tabs.py | 11 +++--- tests/test_tags.py | 27 +++++++-------- tests/test_theme.py | 3 +- tests/test_time_log.py | 24 +++++-------- tests/test_toolbar.py | 4 +-- tests/test_version_check.py | 7 ++-- 56 files changed, 311 insertions(+), 360 deletions(-) diff --git a/bouquin/bug_report_dialog.py b/bouquin/bug_report_dialog.py index 9cc727c..0743985 100644 --- a/bouquin/bug_report_dialog.py +++ b/bouquin/bug_report_dialog.py @@ -3,19 +3,17 @@ from __future__ import annotations import importlib.metadata import requests - from PySide6.QtWidgets import ( QDialog, - QVBoxLayout, - QLabel, - QTextEdit, QDialogButtonBox, + QLabel, QMessageBox, + QTextEdit, + QVBoxLayout, ) from . import strings - BUG_REPORT_HOST = "https://nr.mig5.net" ROUTE = "forms/bouquin/bugs" diff --git a/bouquin/code_block_editor_dialog.py b/bouquin/code_block_editor_dialog.py index 59162c0..8df348d 100644 --- a/bouquin/code_block_editor_dialog.py +++ b/bouquin/code_block_editor_dialog.py @@ -1,15 +1,14 @@ from __future__ import annotations -from PySide6.QtCore import QSize, QRect, Qt -from PySide6.QtGui import QPainter, QPalette, QColor, QFont, QFontMetrics - +from PySide6.QtCore import QRect, QSize, Qt +from PySide6.QtGui import QColor, QFont, QFontMetrics, QPainter, QPalette from PySide6.QtWidgets import ( - QDialog, - QVBoxLayout, - QPlainTextEdit, - QDialogButtonBox, QComboBox, + QDialog, + QDialogButtonBox, QLabel, + QPlainTextEdit, + QVBoxLayout, QWidget, ) diff --git a/bouquin/code_highlighter.py b/bouquin/code_highlighter.py index 3e8d8da..74ef6d4 100644 --- a/bouquin/code_highlighter.py +++ b/bouquin/code_highlighter.py @@ -1,9 +1,9 @@ from __future__ import annotations import re -from typing import Optional, Dict +from typing import Dict, Optional -from PySide6.QtGui import QColor, QTextCharFormat, QFont +from PySide6.QtGui import QColor, QFont, QTextCharFormat class CodeHighlighter: diff --git a/bouquin/db.py b/bouquin/db.py index f92c68e..2b5cb44 100644 --- a/bouquin/db.py +++ b/bouquin/db.py @@ -5,16 +5,15 @@ import datetime as _dt import hashlib import html import json -import markdown import mimetypes import re - from dataclasses import dataclass from pathlib import Path -from sqlcipher3 import dbapi2 as sqlite -from sqlcipher3 import Binary -from typing import List, Sequence, Tuple, Dict +from typing import Dict, List, Sequence, Tuple +import markdown +from sqlcipher3 import Binary +from sqlcipher3 import dbapi2 as sqlite from . import strings diff --git a/bouquin/document_utils.py b/bouquin/document_utils.py index 550cfd4..fd7313e 100644 --- a/bouquin/document_utils.py +++ b/bouquin/document_utils.py @@ -8,8 +8,8 @@ and TagBrowserDialog). from __future__ import annotations -from pathlib import Path import tempfile +from pathlib import Path from typing import TYPE_CHECKING, Optional from PySide6.QtCore import QUrl diff --git a/bouquin/documents.py b/bouquin/documents.py index a554d0d..9f5a40f 100644 --- a/bouquin/documents.py +++ b/bouquin/documents.py @@ -5,32 +5,32 @@ from typing import Optional from PySide6.QtCore import Qt from PySide6.QtGui import QColor from PySide6.QtWidgets import ( - QDialog, - QVBoxLayout, - QHBoxLayout, - QFormLayout, - QComboBox, - QLineEdit, - QTableWidget, - QTableWidgetItem, QAbstractItemView, - QHeaderView, - QPushButton, + QComboBox, + QDialog, QFileDialog, - QMessageBox, - QWidget, + QFormLayout, QFrame, - QToolButton, + QHBoxLayout, + QHeaderView, + QLineEdit, QListWidget, QListWidgetItem, + QMessageBox, + QPushButton, QSizePolicy, QStyle, + QTableWidget, + QTableWidgetItem, + QToolButton, + QVBoxLayout, + QWidget, ) +from . import strings from .db import DBManager, DocumentRow from .settings import load_db_config from .time_log import TimeCodeManagerDialog -from . import strings class TodaysDocumentsWidget(QFrame): diff --git a/bouquin/find_bar.py b/bouquin/find_bar.py index ae0206b..99a1fcd 100644 --- a/bouquin/find_bar.py +++ b/bouquin/find_bar.py @@ -1,20 +1,15 @@ from __future__ import annotations from PySide6.QtCore import Qt, Signal -from PySide6.QtGui import ( - QShortcut, - QTextCursor, - QTextCharFormat, - QTextDocument, -) +from PySide6.QtGui import QShortcut, QTextCharFormat, QTextCursor, QTextDocument from PySide6.QtWidgets import ( - QWidget, - QHBoxLayout, - QLineEdit, - QLabel, - QPushButton, QCheckBox, + QHBoxLayout, + QLabel, + QLineEdit, + QPushButton, QTextEdit, + QWidget, ) from . import strings diff --git a/bouquin/history_dialog.py b/bouquin/history_dialog.py index f2cdc1c..5966470 100644 --- a/bouquin/history_dialog.py +++ b/bouquin/history_dialog.py @@ -1,19 +1,22 @@ from __future__ import annotations -import difflib, re, html as _html +import difflib +import html as _html +import re from datetime import datetime + from PySide6.QtCore import Qt, Slot from PySide6.QtWidgets import ( + QAbstractItemView, QDialog, - QVBoxLayout, QHBoxLayout, QListWidget, QListWidgetItem, - QPushButton, QMessageBox, - QTextBrowser, + QPushButton, QTabWidget, - QAbstractItemView, + QTextBrowser, + QVBoxLayout, ) from . import strings diff --git a/bouquin/invoices.py b/bouquin/invoices.py index 88a8475..18071d6 100644 --- a/bouquin/invoices.py +++ b/bouquin/invoices.py @@ -2,44 +2,39 @@ from __future__ import annotations from dataclasses import dataclass from enum import Enum -from sqlcipher3 import dbapi2 as sqlite3 -from PySide6.QtCore import Qt, QDate, QUrl, Signal -from PySide6.QtGui import ( - QImage, - QTextDocument, - QPageLayout, - QDesktopServices, -) +from PySide6.QtCore import QDate, Qt, QUrl, Signal +from PySide6.QtGui import QDesktopServices, QImage, QPageLayout, QTextDocument from PySide6.QtPrintSupport import QPrinter from PySide6.QtWidgets import ( - QDialog, - QVBoxLayout, - QHBoxLayout, - QFormLayout, - QLabel, - QLineEdit, + QAbstractItemView, + QButtonGroup, + QCheckBox, QComboBox, QDateEdit, - QCheckBox, - QTextEdit, - QTableWidget, - QTableWidgetItem, - QAbstractItemView, - QHeaderView, - QPushButton, - QRadioButton, - QButtonGroup, + QDialog, QDoubleSpinBox, QFileDialog, + QFormLayout, + QHBoxLayout, + QHeaderView, + QLabel, + QLineEdit, QMessageBox, + QPushButton, + QRadioButton, + QTableWidget, + QTableWidgetItem, + QTextEdit, + QVBoxLayout, QWidget, ) +from sqlcipher3 import dbapi2 as sqlite3 +from . import strings from .db import DBManager, TimeLogRow from .reminders import Reminder, ReminderType from .settings import load_db_config -from . import strings class InvoiceDetailMode(str, Enum): diff --git a/bouquin/key_prompt.py b/bouquin/key_prompt.py index 195599f..866f682 100644 --- a/bouquin/key_prompt.py +++ b/bouquin/key_prompt.py @@ -4,13 +4,13 @@ from pathlib import Path from PySide6.QtWidgets import ( QDialog, - QVBoxLayout, + QDialogButtonBox, + QFileDialog, QHBoxLayout, QLabel, QLineEdit, QPushButton, - QDialogButtonBox, - QFileDialog, + QVBoxLayout, ) from . import strings diff --git a/bouquin/lock_overlay.py b/bouquin/lock_overlay.py index 4a1a98e..90c12a8 100644 --- a/bouquin/lock_overlay.py +++ b/bouquin/lock_overlay.py @@ -1,7 +1,7 @@ from __future__ import annotations -from PySide6.QtCore import Qt, QEvent -from PySide6.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton +from PySide6.QtCore import QEvent, Qt +from PySide6.QtWidgets import QLabel, QPushButton, QVBoxLayout, QWidget from . import strings from .theme import ThemeManager diff --git a/bouquin/main.py b/bouquin/main.py index 958185d..6883755 100644 --- a/bouquin/main.py +++ b/bouquin/main.py @@ -2,13 +2,14 @@ from __future__ import annotations import sys from pathlib import Path -from PySide6.QtWidgets import QApplication -from PySide6.QtGui import QIcon -from .settings import APP_NAME, APP_ORG, get_settings -from .main_window import MainWindow -from .theme import Theme, ThemeConfig, ThemeManager +from PySide6.QtGui import QIcon +from PySide6.QtWidgets import QApplication + from . import strings +from .main_window import MainWindow +from .settings import APP_NAME, APP_ORG, get_settings +from .theme import Theme, ThemeConfig, ThemeManager def main(): diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 0a3cc9c..2def58e 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -2,21 +2,21 @@ from __future__ import annotations import datetime import os -import sys import re - +import sys from pathlib import Path + from PySide6.QtCore import ( QDate, - QTimer, - Qt, - QSettings, - Slot, - QUrl, - QEvent, - QSignalBlocker, QDateTime, + QEvent, + QSettings, + QSignalBlocker, + Qt, QTime, + QTimer, + QUrl, + Slot, ) from PySide6.QtGui import ( QAction, @@ -31,23 +31,24 @@ from PySide6.QtGui import ( QTextListFormat, ) from PySide6.QtWidgets import ( + QApplication, QCalendarWidget, QDialog, QFileDialog, + QLabel, QMainWindow, QMenu, QMessageBox, + QPushButton, QSizePolicy, QSplitter, QTableView, QTabWidget, QVBoxLayout, QWidget, - QLabel, - QPushButton, - QApplication, ) +from . import strings from .bug_report_dialog import BugReportDialog from .db import DBManager from .documents import DocumentsDialog, TodaysDocumentsWidget @@ -60,10 +61,9 @@ from .pomodoro_timer import PomodoroManager from .reminders import UpcomingRemindersWidget from .save_dialog import SaveDialog from .search import Search -from .settings import APP_ORG, APP_NAME, load_db_config, save_db_config +from .settings import APP_NAME, APP_ORG, load_db_config, save_db_config from .settings_dialog import SettingsDialog from .statistics_dialog import StatisticsDialog -from . import strings from .tags_widget import PageTagsWidget from .theme import ThemeManager from .time_log import TimeLogWidget diff --git a/bouquin/markdown_editor.py b/bouquin/markdown_editor.py index 838a037..831ce9b 100644 --- a/bouquin/markdown_editor.py +++ b/bouquin/markdown_editor.py @@ -5,28 +5,28 @@ import re from pathlib import Path from typing import Optional, Tuple +from PySide6.QtCore import QRect, Qt, QTimer, QUrl from PySide6.QtGui import ( + QDesktopServices, QFont, QFontDatabase, QFontMetrics, QImage, QMouseEvent, QTextBlock, + QTextBlockFormat, QTextCharFormat, QTextCursor, QTextDocument, QTextFormat, - QTextBlockFormat, QTextImageFormat, - QDesktopServices, ) -from PySide6.QtCore import Qt, QRect, QTimer, QUrl from PySide6.QtWidgets import QDialog, QTextEdit -from .theme import ThemeManager -from .markdown_highlighter import MarkdownHighlighter -from .code_block_editor_dialog import CodeBlockEditorDialog from . import strings +from .code_block_editor_dialog import CodeBlockEditorDialog +from .markdown_highlighter import MarkdownHighlighter +from .theme import ThemeManager class MarkdownEditor(QTextEdit): diff --git a/bouquin/markdown_highlighter.py b/bouquin/markdown_highlighter.py index 81b08b4..bb308d5 100644 --- a/bouquin/markdown_highlighter.py +++ b/bouquin/markdown_highlighter.py @@ -14,7 +14,7 @@ from PySide6.QtGui import ( QTextDocument, ) -from .theme import ThemeManager, Theme +from .theme import Theme, ThemeManager class MarkdownHighlighter(QSyntaxHighlighter): diff --git a/bouquin/pomodoro_timer.py b/bouquin/pomodoro_timer.py index 1c6588c..e66c1f4 100644 --- a/bouquin/pomodoro_timer.py +++ b/bouquin/pomodoro_timer.py @@ -6,10 +6,10 @@ from typing import Optional from PySide6.QtCore import Qt, QTimer, Signal, Slot from PySide6.QtWidgets import ( QFrame, - QVBoxLayout, QHBoxLayout, QLabel, QPushButton, + QVBoxLayout, QWidget, ) diff --git a/bouquin/reminders.py b/bouquin/reminders.py index 2c3a9c7..9fc096a 100644 --- a/bouquin/reminders.py +++ b/bouquin/reminders.py @@ -4,30 +4,30 @@ from dataclasses import dataclass from enum import Enum from typing import Optional -from PySide6.QtCore import Qt, QDate, QTime, QDateTime, QTimer, Slot, Signal +from PySide6.QtCore import QDate, QDateTime, Qt, QTime, QTimer, Signal, Slot from PySide6.QtWidgets import ( - QDialog, - QVBoxLayout, - QHBoxLayout, - QFormLayout, - QLineEdit, + QAbstractItemView, QComboBox, - QTimeEdit, - QPushButton, + QDateEdit, + QDialog, + QFormLayout, QFrame, - QWidget, - QToolButton, + QHBoxLayout, + QHeaderView, + QLineEdit, QListWidget, QListWidgetItem, - QStyle, - QSizePolicy, QMessageBox, + QPushButton, + QSizePolicy, + QSpinBox, + QStyle, QTableWidget, QTableWidgetItem, - QAbstractItemView, - QHeaderView, - QSpinBox, - QDateEdit, + QTimeEdit, + QToolButton, + QVBoxLayout, + QWidget, ) from . import strings @@ -566,8 +566,8 @@ class UpcomingRemindersWidget(QFrame): if not selected_items: return - from PySide6.QtWidgets import QMenu from PySide6.QtGui import QAction + from PySide6.QtWidgets import QMenu menu = QMenu(self) diff --git a/bouquin/save_dialog.py b/bouquin/save_dialog.py index 6b4e05d..528896b 100644 --- a/bouquin/save_dialog.py +++ b/bouquin/save_dialog.py @@ -3,13 +3,7 @@ from __future__ import annotations import datetime from PySide6.QtGui import QFontMetrics -from PySide6.QtWidgets import ( - QDialog, - QVBoxLayout, - QLabel, - QLineEdit, - QDialogButtonBox, -) +from PySide6.QtWidgets import QDialog, QDialogButtonBox, QLabel, QLineEdit, QVBoxLayout from . import strings diff --git a/bouquin/search.py b/bouquin/search.py index b2a885b..7dd7f7f 100644 --- a/bouquin/search.py +++ b/bouquin/search.py @@ -6,12 +6,12 @@ from typing import Iterable, Tuple from PySide6.QtCore import Qt, Signal from PySide6.QtWidgets import ( QFrame, + QHBoxLayout, QLabel, QLineEdit, QListWidget, QListWidgetItem, QSizePolicy, - QHBoxLayout, QVBoxLayout, QWidget, ) diff --git a/bouquin/settings.py b/bouquin/settings.py index 91a6074..5a14c07 100644 --- a/bouquin/settings.py +++ b/bouquin/settings.py @@ -1,6 +1,7 @@ from __future__ import annotations from pathlib import Path + from PySide6.QtCore import QSettings, QStandardPaths from .db import DBConfig diff --git a/bouquin/settings_dialog.py b/bouquin/settings_dialog.py index 2d0b1a4..6ce6255 100644 --- a/bouquin/settings_dialog.py +++ b/bouquin/settings_dialog.py @@ -2,38 +2,36 @@ from __future__ import annotations from pathlib import Path +from PySide6.QtCore import Qt, Slot +from PySide6.QtGui import QPalette from PySide6.QtWidgets import ( QCheckBox, QComboBox, QDialog, - QFrame, + QDialogButtonBox, QFileDialog, + QFormLayout, + QFrame, QGroupBox, + QHBoxLayout, QLabel, QLineEdit, - QFormLayout, - QHBoxLayout, - QVBoxLayout, + QMessageBox, QPushButton, - QDialogButtonBox, QRadioButton, QSizePolicy, QSpinBox, - QMessageBox, - QWidget, QTabWidget, QTextEdit, + QVBoxLayout, + QWidget, ) -from PySide6.QtCore import Qt, Slot -from PySide6.QtGui import QPalette - - -from .db import DBConfig, DBManager -from .settings import load_db_config, save_db_config -from .theme import Theme -from .key_prompt import KeyPrompt from . import strings +from .db import DBConfig, DBManager +from .key_prompt import KeyPrompt +from .settings import load_db_config, save_db_config +from .theme import Theme class SettingsDialog(QDialog): diff --git a/bouquin/statistics_dialog.py b/bouquin/statistics_dialog.py index 0a94126..77b83f6 100644 --- a/bouquin/statistics_dialog.py +++ b/bouquin/statistics_dialog.py @@ -3,26 +3,25 @@ from __future__ import annotations import datetime as _dt from typing import Dict -from PySide6.QtCore import Qt, QSize, Signal -from PySide6.QtGui import QColor, QPainter, QPen, QBrush +from PySide6.QtCore import QSize, Qt, Signal +from PySide6.QtGui import QBrush, QColor, QPainter, QPen from PySide6.QtWidgets import ( + QComboBox, QDialog, - QVBoxLayout, QFormLayout, - QLabel, QGroupBox, QHBoxLayout, - QComboBox, + QLabel, QScrollArea, - QWidget, QSizePolicy, + QVBoxLayout, + QWidget, ) from . import strings from .db import DBManager from .settings import load_db_config - # ---------- Activity heatmap ---------- diff --git a/bouquin/strings.py b/bouquin/strings.py index eff0e18..71e838b 100644 --- a/bouquin/strings.py +++ b/bouquin/strings.py @@ -1,5 +1,5 @@ -from importlib.resources import files import json +from importlib.resources import files # Get list of locales root = files("bouquin") / "locales" diff --git a/bouquin/tag_browser.py b/bouquin/tag_browser.py index 1e7cb01..210f7d3 100644 --- a/bouquin/tag_browser.py +++ b/bouquin/tag_browser.py @@ -1,22 +1,22 @@ from PySide6.QtCore import Qt, Signal from PySide6.QtGui import QColor from PySide6.QtWidgets import ( + QColorDialog, QDialog, - QVBoxLayout, QHBoxLayout, + QInputDialog, + QLabel, + QMessageBox, + QPushButton, QTreeWidget, QTreeWidgetItem, - QPushButton, - QLabel, - QColorDialog, - QMessageBox, - QInputDialog, + QVBoxLayout, ) +from sqlcipher3.dbapi2 import IntegrityError +from . import strings from .db import DBManager from .settings import load_db_config -from . import strings -from sqlcipher3.dbapi2 import IntegrityError class TagBrowserDialog(QDialog): diff --git a/bouquin/tags_widget.py b/bouquin/tags_widget.py index 423bd06..7ac4ad4 100644 --- a/bouquin/tags_widget.py +++ b/bouquin/tags_widget.py @@ -4,16 +4,16 @@ from typing import Optional from PySide6.QtCore import Qt, Signal from PySide6.QtWidgets import ( + QCompleter, QFrame, QHBoxLayout, - QVBoxLayout, - QWidget, - QToolButton, QLabel, QLineEdit, QSizePolicy, QStyle, - QCompleter, + QToolButton, + QVBoxLayout, + QWidget, ) from . import strings diff --git a/bouquin/theme.py b/bouquin/theme.py index 0f36d93..87b77f9 100644 --- a/bouquin/theme.py +++ b/bouquin/theme.py @@ -1,11 +1,13 @@ from __future__ import annotations + from dataclasses import dataclass from enum import Enum -from PySide6.QtGui import QPalette, QColor, QGuiApplication, QTextCharFormat -from PySide6.QtWidgets import QApplication, QCalendarWidget, QWidget -from PySide6.QtCore import QObject, Signal, Qt from weakref import WeakSet +from PySide6.QtCore import QObject, Qt, Signal +from PySide6.QtGui import QColor, QGuiApplication, QPalette, QTextCharFormat +from PySide6.QtWidgets import QApplication, QCalendarWidget, QWidget + class Theme(Enum): SYSTEM = "system" diff --git a/bouquin/time_log.py b/bouquin/time_log.py index e143d57..7ca4e09 100644 --- a/bouquin/time_log.py +++ b/bouquin/time_log.py @@ -2,50 +2,49 @@ from __future__ import annotations import csv import html - from collections import defaultdict from datetime import datetime -from sqlcipher3.dbapi2 import IntegrityError from typing import Optional -from PySide6.QtCore import Qt, QDate, QUrl, Signal -from PySide6.QtGui import QPainter, QColor, QImage, QTextDocument, QPageLayout +from PySide6.QtCore import QDate, Qt, QUrl, Signal +from PySide6.QtGui import QColor, QImage, QPageLayout, QPainter, QTextDocument from PySide6.QtPrintSupport import QPrinter from PySide6.QtWidgets import ( + QAbstractItemView, QCalendarWidget, + QComboBox, + QCompleter, + QDateEdit, QDialog, QDialogButtonBox, - QFrame, - QVBoxLayout, - QHBoxLayout, - QWidget, + QDoubleSpinBox, QFileDialog, QFormLayout, - QLabel, - QComboBox, - QLineEdit, - QDoubleSpinBox, - QPushButton, - QTableWidget, - QTableWidgetItem, - QAbstractItemView, + QFrame, + QHBoxLayout, QHeaderView, - QTabWidget, + QInputDialog, + QLabel, + QLineEdit, QListWidget, QListWidgetItem, - QDateEdit, QMessageBox, - QCompleter, - QToolButton, + QPushButton, QSizePolicy, QStyle, - QInputDialog, + QTableWidget, + QTableWidgetItem, + QTabWidget, + QToolButton, + QVBoxLayout, + QWidget, ) +from sqlcipher3.dbapi2 import IntegrityError +from . import strings from .db import DBManager from .settings import load_db_config from .theme import ThemeManager -from . import strings class TimeLogWidget(QFrame): diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index 8090fe7..92383e6 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -1,7 +1,7 @@ from __future__ import annotations -from PySide6.QtCore import Signal, Qt -from PySide6.QtGui import QAction, QKeySequence, QFont, QFontDatabase, QActionGroup +from PySide6.QtCore import Qt, Signal +from PySide6.QtGui import QAction, QActionGroup, QFont, QFontDatabase, QKeySequence from PySide6.QtWidgets import QToolBar from . import strings diff --git a/bouquin/version_check.py b/bouquin/version_check.py index b2010d5..5b62d02 100644 --- a/bouquin/version_check.py +++ b/bouquin/version_check.py @@ -5,23 +5,17 @@ import os import re import subprocess # nosec import tempfile +from importlib.resources import files from pathlib import Path import requests -from importlib.resources import files from PySide6.QtCore import QStandardPaths, Qt -from PySide6.QtWidgets import ( - QApplication, - QMessageBox, - QWidget, - QProgressDialog, -) -from PySide6.QtGui import QPixmap, QImage, QPainter, QGuiApplication +from PySide6.QtGui import QGuiApplication, QImage, QPainter, QPixmap from PySide6.QtSvg import QSvgRenderer +from PySide6.QtWidgets import QApplication, QMessageBox, QProgressDialog, QWidget -from .settings import APP_NAME from . import strings - +from .settings import APP_NAME # Where to fetch the latest version string from VERSION_URL = "https://mig5.net/bouquin/version.txt" diff --git a/tests/conftest.py b/tests/conftest.py index 878ccc7..4058d77 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -106,7 +106,7 @@ def freeze_qt_time(monkeypatch): QTime.currentTime().addSecs(3600) is still the same calendar day. """ import bouquin.main_window as _mwmod - from PySide6.QtCore import QDate, QTime, QDateTime + from PySide6.QtCore import QDate, QDateTime, QTime today = QDate.currentDate() fixed_time = QTime(12, 0) diff --git a/tests/test_bug_report_dialog.py b/tests/test_bug_report_dialog.py index 8d773e9..df839fd 100644 --- a/tests/test_bug_report_dialog.py +++ b/tests/test_bug_report_dialog.py @@ -1,8 +1,8 @@ import bouquin.bug_report_dialog as bugmod -from bouquin.bug_report_dialog import BugReportDialog from bouquin import strings -from PySide6.QtWidgets import QMessageBox +from bouquin.bug_report_dialog import BugReportDialog from PySide6.QtGui import QTextCursor +from PySide6.QtWidgets import QMessageBox def test_bug_report_truncates_text_to_max_chars(qtbot): diff --git a/tests/test_code_block_editor_dialog.py b/tests/test_code_block_editor_dialog.py index 6779bca..e64199b 100644 --- a/tests/test_code_block_editor_dialog.py +++ b/tests/test_code_block_editor_dialog.py @@ -1,13 +1,11 @@ -from PySide6.QtWidgets import QPushButton from bouquin import strings - -from PySide6.QtCore import QRect, QSize -from PySide6.QtGui import QPaintEvent, QFont - from bouquin.code_block_editor_dialog import ( CodeBlockEditorDialog, CodeEditorWithLineNumbers, ) +from PySide6.QtCore import QRect, QSize +from PySide6.QtGui import QFont, QPaintEvent +from PySide6.QtWidgets import QPushButton def _find_button_by_text(widget, text): diff --git a/tests/test_code_highlighter.py b/tests/test_code_highlighter.py index 145e156..57ab8e7 100644 --- a/tests/test_code_highlighter.py +++ b/tests/test_code_highlighter.py @@ -1,5 +1,5 @@ -from bouquin.code_highlighter import CodeHighlighter, CodeBlockMetadata -from PySide6.QtGui import QTextCharFormat, QFont +from bouquin.code_highlighter import CodeBlockMetadata, CodeHighlighter +from PySide6.QtGui import QFont, QTextCharFormat def test_get_language_patterns_python(app): diff --git a/tests/test_db.py b/tests/test_db.py index 19a4d6e..12585f7 100644 --- a/tests/test_db.py +++ b/tests/test_db.py @@ -1,10 +1,12 @@ -import pytest -import json, csv +import csv import datetime as dt -from sqlcipher3 import dbapi2 as sqlite -from bouquin.db import DBManager +import json from datetime import date, timedelta +import pytest +from bouquin.db import DBManager +from sqlcipher3 import dbapi2 as sqlite + def _today(): return dt.date.today().isoformat() diff --git a/tests/test_document_utils.py b/tests/test_document_utils.py index 6e91ba2..e1301df 100644 --- a/tests/test_document_utils.py +++ b/tests/test_document_utils.py @@ -1,10 +1,10 @@ -from unittest.mock import patch -from pathlib import Path import tempfile +from pathlib import Path +from unittest.mock import patch from PySide6.QtCore import QUrl -from PySide6.QtWidgets import QMessageBox, QWidget from PySide6.QtGui import QDesktopServices +from PySide6.QtWidgets import QMessageBox, QWidget def test_open_document_from_db_success(qtbot, app, fresh_db): diff --git a/tests/test_documents.py b/tests/test_documents.py index 8be5b83..0740b40 100644 --- a/tests/test_documents.py +++ b/tests/test_documents.py @@ -1,13 +1,12 @@ -from unittest.mock import patch, MagicMock -from pathlib import Path import tempfile +from pathlib import Path +from unittest.mock import MagicMock, patch from bouquin.db import DBConfig -from bouquin.documents import TodaysDocumentsWidget, DocumentsDialog +from bouquin.documents import DocumentsDialog, TodaysDocumentsWidget from PySide6.QtCore import Qt, QUrl -from PySide6.QtWidgets import QMessageBox, QDialog, QFileDialog from PySide6.QtGui import QDesktopServices - +from PySide6.QtWidgets import QDialog, QFileDialog, QMessageBox # ============================================================================= # TodaysDocumentsWidget Tests diff --git a/tests/test_find_bar.py b/tests/test_find_bar.py index c0ab938..de67c7e 100644 --- a/tests/test_find_bar.py +++ b/tests/test_find_bar.py @@ -1,10 +1,9 @@ import pytest - +from bouquin.find_bar import FindBar +from bouquin.markdown_editor import MarkdownEditor +from bouquin.theme import Theme, ThemeConfig, ThemeManager from PySide6.QtGui import QTextCursor from PySide6.QtWidgets import QTextEdit, QWidget -from bouquin.markdown_editor import MarkdownEditor -from bouquin.theme import ThemeManager, ThemeConfig, Theme -from bouquin.find_bar import FindBar @pytest.fixture diff --git a/tests/test_history_dialog.py b/tests/test_history_dialog.py index da97a5a..98ab9c8 100644 --- a/tests/test_history_dialog.py +++ b/tests/test_history_dialog.py @@ -1,7 +1,6 @@ -from PySide6.QtWidgets import QWidget, QMessageBox, QApplication -from PySide6.QtCore import Qt, QTimer - from bouquin.history_dialog import HistoryDialog +from PySide6.QtCore import Qt, QTimer +from PySide6.QtWidgets import QApplication, QMessageBox, QWidget def test_history_dialog_lists_and_revert(qtbot, fresh_db): diff --git a/tests/test_invoices.py b/tests/test_invoices.py index 80f1a90..89ef202 100644 --- a/tests/test_invoices.py +++ b/tests/test_invoices.py @@ -1,19 +1,17 @@ -import pytest from datetime import date, timedelta -from PySide6.QtCore import Qt, QDate -from PySide6.QtWidgets import QMessageBox - +import pytest from bouquin.invoices import ( - InvoiceDetailMode, - InvoiceLineItem, - _invoice_due_reminder_text, - InvoiceDialog, - InvoicesDialog, _INVOICE_REMINDER_TIME, + InvoiceDetailMode, + InvoiceDialog, + InvoiceLineItem, + InvoicesDialog, + _invoice_due_reminder_text, ) from bouquin.reminders import Reminder, ReminderType - +from PySide6.QtCore import QDate, Qt +from PySide6.QtWidgets import QMessageBox # ============================================================================ # Tests for InvoiceDetailMode enum diff --git a/tests/test_key_prompt.py b/tests/test_key_prompt.py index 70ad1da..9aedffb 100644 --- a/tests/test_key_prompt.py +++ b/tests/test_key_prompt.py @@ -1,5 +1,4 @@ from bouquin.key_prompt import KeyPrompt - from PySide6.QtCore import QTimer from PySide6.QtWidgets import QFileDialog, QLineEdit diff --git a/tests/test_lock_overlay.py b/tests/test_lock_overlay.py index 05de5f9..46b3cfd 100644 --- a/tests/test_lock_overlay.py +++ b/tests/test_lock_overlay.py @@ -1,7 +1,7 @@ +from bouquin.lock_overlay import LockOverlay +from bouquin.theme import Theme, ThemeConfig, ThemeManager from PySide6.QtCore import QEvent from PySide6.QtWidgets import QWidget -from bouquin.lock_overlay import LockOverlay -from bouquin.theme import ThemeManager, ThemeConfig, Theme def test_lock_overlay_reacts_to_theme(app, qtbot): diff --git a/tests/test_main.py b/tests/test_main.py index 2a357fb..5bfb774 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -1,5 +1,6 @@ import importlib import runpy + import pytest diff --git a/tests/test_main_window.py b/tests/test_main_window.py index 2cf787d..6c09e71 100644 --- a/tests/test_main_window.py +++ b/tests/test_main_window.py @@ -1,22 +1,19 @@ -import pytest import importlib.metadata - from datetime import date, timedelta from pathlib import Path - -import bouquin.main_window as mwmod -from bouquin.main_window import MainWindow -from bouquin.theme import Theme, ThemeConfig, ThemeManager -from bouquin.settings import get_settings -from bouquin.key_prompt import KeyPrompt -from bouquin.db import DBConfig, DBManager -from PySide6.QtCore import QEvent, QDate, QTimer, Qt, QPoint, QRect -from PySide6.QtWidgets import QTableView, QApplication, QWidget, QMessageBox, QDialog -from PySide6.QtGui import QMouseEvent, QKeyEvent, QTextCursor, QCloseEvent - from unittest.mock import Mock, patch +import bouquin.main_window as mwmod import bouquin.version_check as version_check +import pytest +from bouquin.db import DBConfig, DBManager +from bouquin.key_prompt import KeyPrompt +from bouquin.main_window import MainWindow +from bouquin.settings import get_settings +from bouquin.theme import Theme, ThemeConfig, ThemeManager +from PySide6.QtCore import QDate, QEvent, QPoint, QRect, Qt, QTimer +from PySide6.QtGui import QCloseEvent, QKeyEvent, QMouseEvent, QTextCursor +from PySide6.QtWidgets import QApplication, QDialog, QMessageBox, QTableView, QWidget def test_main_window_loads_and_saves(qtbot, app, tmp_db_cfg, fresh_db): diff --git a/tests/test_markdown_editor.py b/tests/test_markdown_editor.py index 8d869a9..73f58f4 100644 --- a/tests/test_markdown_editor.py +++ b/tests/test_markdown_editor.py @@ -1,21 +1,20 @@ import base64 + import pytest - -from PySide6.QtCore import Qt, QPoint, QMimeData, QUrl -from PySide6.QtGui import ( - QImage, - QColor, - QKeyEvent, - QTextCursor, - QTextDocument, - QFont, - QTextCharFormat, -) -from PySide6.QtWidgets import QApplication, QTextEdit - from bouquin.markdown_editor import MarkdownEditor from bouquin.markdown_highlighter import MarkdownHighlighter -from bouquin.theme import ThemeManager, ThemeConfig, Theme +from bouquin.theme import Theme, ThemeConfig, ThemeManager +from PySide6.QtCore import QMimeData, QPoint, Qt, QUrl +from PySide6.QtGui import ( + QColor, + QFont, + QImage, + QKeyEvent, + QTextCharFormat, + QTextCursor, + QTextDocument, +) +from PySide6.QtWidgets import QApplication, QTextEdit def _today(): diff --git a/tests/test_markdown_editor_additional.py b/tests/test_markdown_editor_additional.py index 2584baa..4037ed1 100644 --- a/tests/test_markdown_editor_additional.py +++ b/tests/test_markdown_editor_additional.py @@ -4,19 +4,18 @@ These tests should be added to test_markdown_editor.py. """ import pytest -from PySide6.QtCore import Qt, QPoint +from bouquin.markdown_editor import MarkdownEditor +from bouquin.theme import Theme, ThemeConfig, ThemeManager +from PySide6.QtCore import QPoint, Qt from PySide6.QtGui import ( - QImage, QColor, + QImage, QKeyEvent, + QMouseEvent, QTextCursor, QTextDocument, - QMouseEvent, ) -from bouquin.markdown_editor import MarkdownEditor -from bouquin.theme import ThemeManager, ThemeConfig, Theme - def text(editor) -> str: return editor.toPlainText() @@ -145,8 +144,8 @@ def test_edit_code_block_checks_document(app, qtbot): def test_edit_code_block_dialog_cancelled(editor, qtbot, monkeypatch): """Test _edit_code_block when dialog is cancelled.""" - from PySide6.QtWidgets import QDialog import bouquin.markdown_editor as markdown_editor + from PySide6.QtWidgets import QDialog class CancelledDialog: def __init__(self, code, language, parent=None, allow_delete=False): @@ -175,8 +174,8 @@ def test_edit_code_block_dialog_cancelled(editor, qtbot, monkeypatch): def test_edit_code_block_with_delete(editor, qtbot, monkeypatch): """Test _edit_code_block when user deletes the block.""" - from PySide6.QtWidgets import QDialog import bouquin.markdown_editor as markdown_editor + from PySide6.QtWidgets import QDialog class DeleteDialog: def __init__(self, code, language, parent=None, allow_delete=False): @@ -214,8 +213,8 @@ def test_edit_code_block_with_delete(editor, qtbot, monkeypatch): def test_edit_code_block_language_change(editor, qtbot, monkeypatch): """Test _edit_code_block with language change.""" - from PySide6.QtWidgets import QDialog import bouquin.markdown_editor as markdown_editor + from PySide6.QtWidgets import QDialog class LanguageChangeDialog: def __init__(self, code, language, parent=None, allow_delete=False): diff --git a/tests/test_pomodoro_timer.py b/tests/test_pomodoro_timer.py index 5ffeafd..1c2e450 100644 --- a/tests/test_pomodoro_timer.py +++ b/tests/test_pomodoro_timer.py @@ -1,8 +1,9 @@ from unittest.mock import Mock, patch -from bouquin.pomodoro_timer import PomodoroTimer, PomodoroManager -from bouquin.theme import ThemeManager, ThemeConfig, Theme -from PySide6.QtWidgets import QWidget, QVBoxLayout, QToolBar, QLabel + +from bouquin.pomodoro_timer import PomodoroManager, PomodoroTimer +from bouquin.theme import Theme, ThemeConfig, ThemeManager from PySide6.QtGui import QAction +from PySide6.QtWidgets import QLabel, QToolBar, QVBoxLayout, QWidget class DummyTimeLogWidget(QWidget): diff --git a/tests/test_reminders.py b/tests/test_reminders.py index 16e8dc9..b9e3bfc 100644 --- a/tests/test_reminders.py +++ b/tests/test_reminders.py @@ -1,17 +1,16 @@ -import pytest - -from unittest.mock import patch, MagicMock -from bouquin.reminders import ( - Reminder, - ReminderType, - ReminderDialog, - UpcomingRemindersWidget, - ManageRemindersDialog, -) -from PySide6.QtCore import QDateTime, QDate, QTime -from PySide6.QtWidgets import QDialog, QMessageBox, QWidget - from datetime import date, timedelta +from unittest.mock import MagicMock, patch + +import pytest +from bouquin.reminders import ( + ManageRemindersDialog, + Reminder, + ReminderDialog, + ReminderType, + UpcomingRemindersWidget, +) +from PySide6.QtCore import QDate, QDateTime, QTime +from PySide6.QtWidgets import QDialog, QMessageBox, QWidget @pytest.fixture @@ -851,9 +850,9 @@ def test_edit_reminder_dialog(qtbot, fresh_db): def test_upcoming_reminders_context_menu_shows( qtbot, app, fresh_db, freeze_reminders_time, monkeypatch ): - from PySide6 import QtWidgets, QtGui - from PySide6.QtCore import QPoint from bouquin.reminders import Reminder, ReminderType, UpcomingRemindersWidget + from PySide6 import QtGui, QtWidgets + from PySide6.QtCore import QPoint # Add a future reminder for today r = Reminder( @@ -909,9 +908,9 @@ def test_upcoming_reminders_context_menu_shows( def test_upcoming_reminders_delete_selected_dedupes( qtbot, app, fresh_db, freeze_reminders_time, monkeypatch ): - from PySide6.QtWidgets import QMessageBox - from PySide6.QtCore import QItemSelectionModel from bouquin.reminders import Reminder, ReminderType, UpcomingRemindersWidget + from PySide6.QtCore import QItemSelectionModel + from PySide6.QtWidgets import QMessageBox r = Reminder( id=None, diff --git a/tests/test_settings.py b/tests/test_settings.py index f272ab2..086d590 100644 --- a/tests/test_settings.py +++ b/tests/test_settings.py @@ -1,9 +1,5 @@ -from bouquin.settings import ( - get_settings, - load_db_config, - save_db_config, -) from bouquin.db import DBConfig +from bouquin.settings import get_settings, load_db_config, save_db_config def _clear_db_settings(): diff --git a/tests/test_settings_dialog.py b/tests/test_settings_dialog.py index ad53951..0b1dafd 100644 --- a/tests/test_settings_dialog.py +++ b/tests/test_settings_dialog.py @@ -1,11 +1,11 @@ -from bouquin.db import DBManager, DBConfig -from bouquin.key_prompt import KeyPrompt import bouquin.settings_dialog as sd -from bouquin.settings_dialog import SettingsDialog -from bouquin.theme import ThemeManager, ThemeConfig, Theme +from bouquin.db import DBConfig, DBManager +from bouquin.key_prompt import KeyPrompt from bouquin.settings import get_settings +from bouquin.settings_dialog import SettingsDialog +from bouquin.theme import Theme, ThemeConfig, ThemeManager from PySide6.QtCore import QTimer -from PySide6.QtWidgets import QApplication, QMessageBox, QWidget, QDialog +from PySide6.QtWidgets import QApplication, QDialog, QMessageBox, QWidget def test_settings_dialog_config_roundtrip(qtbot, tmp_db_cfg, fresh_db): diff --git a/tests/test_statistics_dialog.py b/tests/test_statistics_dialog.py index 12f96c5..46a6eb0 100644 --- a/tests/test_statistics_dialog.py +++ b/tests/test_statistics_dialog.py @@ -1,13 +1,11 @@ import datetime as _dt -from datetime import datetime, timedelta, date +from datetime import date, datetime, timedelta from bouquin import strings - -from PySide6.QtCore import Qt, QPoint, QDate -from PySide6.QtWidgets import QLabel, QWidget -from PySide6.QtTest import QTest - from bouquin.statistics_dialog import DateHeatmap, StatisticsDialog +from PySide6.QtCore import QDate, QPoint, Qt +from PySide6.QtTest import QTest +from PySide6.QtWidgets import QLabel, QWidget class FakeStatsDB: diff --git a/tests/test_tabs.py b/tests/test_tabs.py index fe73828..b495356 100644 --- a/tests/test_tabs.py +++ b/tests/test_tabs.py @@ -1,12 +1,11 @@ import types -from PySide6.QtWidgets import QFileDialog -from PySide6.QtGui import QTextCursor - -from bouquin.theme import ThemeManager, ThemeConfig, Theme -from bouquin.settings import get_settings -from bouquin.main_window import MainWindow from bouquin.history_dialog import HistoryDialog +from bouquin.main_window import MainWindow +from bouquin.settings import get_settings +from bouquin.theme import Theme, ThemeConfig, ThemeManager +from PySide6.QtGui import QTextCursor +from PySide6.QtWidgets import QFileDialog def test_tabs_open_and_deduplicate(qtbot, app, tmp_db_cfg, fresh_db): diff --git a/tests/test_tags.py b/tests/test_tags.py index 8564c6b..89e5fbd 100644 --- a/tests/test_tags.py +++ b/tests/test_tags.py @@ -1,24 +1,21 @@ +import bouquin.strings as strings import pytest - -from PySide6.QtCore import Qt, QPoint, QEvent, QDate -from PySide6.QtGui import QMouseEvent, QColor +from bouquin.db import DBManager +from bouquin.flow_layout import FlowLayout +from bouquin.strings import load_strings +from bouquin.tag_browser import TagBrowserDialog +from bouquin.tags_widget import PageTagsWidget, TagChip +from PySide6.QtCore import QDate, QEvent, QPoint, Qt +from PySide6.QtGui import QColor, QMouseEvent from PySide6.QtWidgets import ( QApplication, - QMessageBox, - QInputDialog, QColorDialog, QDialog, + QInputDialog, + QMessageBox, ) -from bouquin.db import DBManager -from bouquin.strings import load_strings -from bouquin.tags_widget import PageTagsWidget, TagChip -from bouquin.tag_browser import TagBrowserDialog -from bouquin.flow_layout import FlowLayout from sqlcipher3.dbapi2 import IntegrityError -import bouquin.strings as strings - - # ============================================================================ # DB Layer Tag Tests # ============================================================================ @@ -1649,7 +1646,7 @@ def test_default_tag_colour_none(fresh_db): def test_flow_layout_take_at_invalid_index(app): """Test FlowLayout.takeAt with out-of-bounds index""" - from PySide6.QtWidgets import QWidget, QLabel + from PySide6.QtWidgets import QLabel, QWidget widget = QWidget() layout = FlowLayout(widget) @@ -1673,7 +1670,7 @@ def test_flow_layout_take_at_invalid_index(app): def test_flow_layout_take_at_boundary(app): """Test FlowLayout.takeAt at exact boundary""" - from PySide6.QtWidgets import QWidget, QLabel + from PySide6.QtWidgets import QLabel, QWidget widget = QWidget() layout = FlowLayout(widget) diff --git a/tests/test_theme.py b/tests/test_theme.py index 6f19a62..a1dc283 100644 --- a/tests/test_theme.py +++ b/tests/test_theme.py @@ -1,8 +1,7 @@ +from bouquin.theme import Theme, ThemeConfig, ThemeManager from PySide6.QtGui import QPalette from PySide6.QtWidgets import QApplication, QCalendarWidget, QWidget -from bouquin.theme import Theme, ThemeConfig, ThemeManager - def test_theme_manager_apply_light_and_dark(app): cfg = ThemeConfig(theme=Theme.LIGHT) diff --git a/tests/test_time_log.py b/tests/test_time_log.py index 6a997ed..0a6797c 100644 --- a/tests/test_time_log.py +++ b/tests/test_time_log.py @@ -1,24 +1,18 @@ -import pytest from datetime import date, timedelta -from PySide6.QtCore import Qt, QDate -from PySide6.QtWidgets import ( - QMessageBox, - QInputDialog, - QFileDialog, - QDialog, -) -from sqlcipher3.dbapi2 import IntegrityError +from unittest.mock import MagicMock, patch -from bouquin.theme import ThemeManager, ThemeConfig, Theme +import bouquin.strings as strings +import pytest +from bouquin.theme import Theme, ThemeConfig, ThemeManager from bouquin.time_log import ( - TimeLogWidget, - TimeLogDialog, TimeCodeManagerDialog, + TimeLogDialog, + TimeLogWidget, TimeReportDialog, ) -import bouquin.strings as strings - -from unittest.mock import patch, MagicMock +from PySide6.QtCore import QDate, Qt +from PySide6.QtWidgets import QDialog, QFileDialog, QInputDialog, QMessageBox +from sqlcipher3.dbapi2 import IntegrityError @pytest.fixture diff --git a/tests/test_toolbar.py b/tests/test_toolbar.py index 3794760..fdc8829 100644 --- a/tests/test_toolbar.py +++ b/tests/test_toolbar.py @@ -1,8 +1,8 @@ import pytest -from PySide6.QtWidgets import QWidget from bouquin.markdown_editor import MarkdownEditor -from bouquin.theme import ThemeManager, ThemeConfig, Theme +from bouquin.theme import Theme, ThemeConfig, ThemeManager from bouquin.toolbar import ToolBar +from PySide6.QtWidgets import QWidget @pytest.fixture diff --git a/tests/test_version_check.py b/tests/test_version_check.py index b5afe12..01fac35 100644 --- a/tests/test_version_check.py +++ b/tests/test_version_check.py @@ -1,9 +1,10 @@ -import pytest -from unittest.mock import Mock, patch import subprocess +from unittest.mock import Mock, patch + +import pytest from bouquin.version_check import VersionChecker -from PySide6.QtWidgets import QMessageBox, QWidget from PySide6.QtGui import QPixmap +from PySide6.QtWidgets import QMessageBox, QWidget def test_version_checker_init(app):