From 124fe5676b37c255c6f97eae70da602c4bc0fcb2 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 12 Jan 2021 12:50:00 +0100 Subject: dataclasses: Fix ordering See #6023 --- qutebrowser/config/configdata.py | 2 +- qutebrowser/keyinput/keyutils.py | 2 +- tests/unit/keyinput/key_data.py | 4 ++-- tests/unit/scripts/test_dictcli.py | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 14e1c30ef..f10ebcd30 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -39,7 +39,7 @@ MIGRATIONS = cast('Migrations', None) _BackendDict = Mapping[str, Union[str, bool]] -@dataclasses.dataclass +@dataclasses.dataclass(order=True) class Option: """Description of an Option in the config. diff --git a/qutebrowser/keyinput/keyutils.py b/qutebrowser/keyinput/keyutils.py index f27703110..4d1a7e691 100644 --- a/qutebrowser/keyinput/keyutils.py +++ b/qutebrowser/keyinput/keyutils.py @@ -336,7 +336,7 @@ def _parse_single_key(keystr: str) -> str: return 'Shift+' + keystr if keystr.isupper() else keystr -@dataclasses.dataclass(frozen=True) +@dataclasses.dataclass(frozen=True, order=True) class KeyInfo: """A key with optional modifiers. diff --git a/tests/unit/keyinput/key_data.py b/tests/unit/keyinput/key_data.py index 016854ab5..4673290c4 100644 --- a/tests/unit/keyinput/key_data.py +++ b/tests/unit/keyinput/key_data.py @@ -29,7 +29,7 @@ from typing import Optional from PyQt5.QtCore import Qt -@dataclasses.dataclass +@dataclasses.dataclass(order=True) class Key: """A key with expected values. @@ -56,7 +56,7 @@ class Key: self.name = self.attribute -@dataclasses.dataclass +@dataclasses.dataclass(order=True) class Modifier: """A modifier with expected values. diff --git a/tests/unit/scripts/test_dictcli.py b/tests/unit/scripts/test_dictcli.py index 9add389d8..8ba0dc1cc 100644 --- a/tests/unit/scripts/test_dictcli.py +++ b/tests/unit/scripts/test_dictcli.py @@ -89,7 +89,8 @@ def test_available_languages(dict_tmp_path, monkeypatch): monkeypatch.setattr(dictcli, 'language_list_from_api', lambda: [ (lang.code, lang.remote_filename) for lang in langs() ]) - assert sorted(dictcli.available_languages()) == [ + languages = sorted(dictcli.available_languages(), key=lambda lang: lang.code) + assert languages == [ dictcli.Language( code='af-ZA', name='Afrikaans (South Africa)', -- cgit v1.2.3-54-g00ecf