From 4e850be56f68dc29791e5c5da66e1ad39254cb17 Mon Sep 17 00:00:00 2001 From: Maksim Efimov Date: Sat, 9 May 2026 14:49:01 +0900 Subject: [PATCH] fix save settings --- CHANGELOG.md | 1 + src/torrt/utils.py | 5 ++--- tests/test_utils.py | 12 ++++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61a0de4..921b082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # torrt changelog ### Unreleased +* ** fix save settings. * ** qBittorrent: preserve torrent category on update. ### v1.1.0 [2026-03-30] diff --git a/src/torrt/utils.py b/src/torrt/utils.py index 8e641f9..33a893a 100644 --- a/src/torrt/utils.py +++ b/src/torrt/utils.py @@ -589,9 +589,8 @@ def save_settings(self): settings = {} try: - settings_names = getfullargspec(self.__init__)[0] - - del settings_names[0] # do not need `self` + spec = getfullargspec(self.__init__) + settings_names = spec.args[1:] + spec.kwonlyargs # skip 'self', add kw-only for name in settings_names: settings[name] = getattr(self, name) diff --git a/tests/test_utils.py b/tests/test_utils.py index a72aae6..d372e0e 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,4 +1,5 @@ import torrt.utils as utils +from torrt.trackers.rutracker import RuTrackerTracker def test_base64encode_str(): @@ -15,3 +16,14 @@ def test_base64encode_bytes(): assert isinstance(encoded_bytes, bytes) assert encoded_bytes == b'dGhpcyBpcyBieXRlcyB0byBlbmNvZGU=\n' + + +def test_save_settings(mock_config): + RuTrackerTracker(username='user', password='pass', query_string='qs').save_settings() + + assert mock_config['trackers']['rutracker.org'] == { + 'username': 'user', + 'password': 'pass', + 'cookies': {}, + 'query_string': 'qs', + }