Subject: [bug#75464][PATCH] Remove broken tests from "thefuck"

From: Andrew Stubbs <[email-masked]>
Date: Fri, 24 Jan 2025 15:34:12 +0000

These tests are reported broken upstream, but nothing has been done about it.
See https://github.com/nvbn/thefuck/issues/1438

* gnu/packages/admin.scm (thefuck): Add patch.
* gnu/packages/patches/thefuck-remove-broken-tests.patch: New file.

Change-Id: Ib6bbda92b29cd2a26b9c08d79e309e2c78602b71
---
 gnu/packages/admin.scm                        |  3 +-
 .../patches/thefuck-remove-broken-tests.patch | 48 +++++++++++++++++++
 2 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/thefuck-remove-broken-tests.patch

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 89879bf486..6290ecc72d 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -3749,7 +3749,8 @@ (define-public thefuck
        (file-name (git-file-name name version))
        (sha256
         (base32 "18ipa1bm6q1n5drbi8i65726hhqhl1g41390lfqrc11hkbvv443d"))
-       (patches (search-patches "thefuck-test-environ.patch"))))
+       (patches (search-patches "thefuck-test-environ.patch"
+                                "thefuck-remove-broken-tests.patch"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/patches/thefuck-remove-broken-tests.patch b/gnu/packages/patches/thefuck-remove-broken-tests.patch
new file mode 100644
index 0000000000..1d494c060c
--- /dev/null
+++ b/gnu/packages/patches/thefuck-remove-broken-tests.patch
@@ -0,0 +1,48 @@
+diff -ruN a/tests/test_utils.py b/tests/test_utils.py
+--- a/tests/test_utils.py	1970-01-01 00:00:01.000000000 +0000
++++ b/tests/test_utils.py	2025-01-22 12:21:07.045281481 +0000
+@@ -233,44 +233,3 @@
+         assert fn() == 'test'
+         assert shelve == {key: {'etag': '0', 'value': 'test'}}
+ 
+-
+-class TestGetValidHistoryWithoutCurrent(object):
+-    @pytest.fixture(autouse=True)
+-    def fail_on_warning(self):
+-        warnings.simplefilter('error')
+-        yield
+-        warnings.resetwarnings()
+-
+-    @pytest.fixture(autouse=True)
+-    def history(self, mocker):
+-        mock = mocker.patch('thefuck.shells.shell.get_history')
+-        #  Passing as an argument causes `UnicodeDecodeError`
+-        #  with newer py.test and python 2.7
+-        mock.return_value = ['le cat', 'fuck', 'ls cat',
+-                             'diff x', 'nocommand x', u'café ô']
+-        return mock
+-
+-    @pytest.fixture(autouse=True)
+-    def alias(self, mocker):
+-        return mocker.patch('thefuck.utils.get_alias',
+-                            return_value='fuck')
+-
+-    @pytest.fixture(autouse=True)
+-    def bins(self, mocker):
+-        callables = list()
+-        for name in ['diff', 'ls', 'café']:
+-            bin_mock = mocker.Mock(name=name)
+-            bin_mock.configure_mock(name=name, is_dir=lambda: False)
+-            callables.append(bin_mock)
+-        path_mock = mocker.Mock(iterdir=mocker.Mock(return_value=callables))
+-        return mocker.patch('thefuck.utils.Path', return_value=path_mock)
+-
+-    @pytest.mark.parametrize('script, result', [
+-        ('le cat', ['ls cat', 'diff x', u'café ô']),
+-        ('diff x', ['ls cat', u'café ô']),
+-        ('fuck', ['ls cat', 'diff x', u'café ô']),
+-        (u'cafe ô', ['ls cat', 'diff x', u'café ô']),
+-    ])
+-    def test_get_valid_history_without_current(self, script, result):
+-        command = Command(script, '')
+-        assert get_valid_history_without_current(command) == result

base-commit: e3066fe7dab3d4fcd22884ce55555ac1f16e583f
-- 
2.47.1