Subject: [bug#63486] [PATCH 3/3] gnu: python-txtorcon: Update to 23.0.0.

From: Juliana Sims <[email-masked]>
Date: Sat, 13 May 2023 12:59:48 -0400

* gnu/packages/python-crypto.scm (python-txtorcon): Update to 23.0.0.
---
 gnu/packages/python-crypto.scm | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 8e94d54336..712590ef4f 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -1246,22 +1246,33 @@ (define-public python-spake2
 (define-public python-txtorcon
   (package
     (name "python-txtorcon")
-    (version "19.0.0")
+    (version "23.0.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "txtorcon" version))
               (sha256
                (base32
-                "0fxzhsc62bhmr730vj9pzallmw56gz6iykvl28a5agrycm0bfc9p"))
-              (modules '((guix build utils)))
-              (snippet #~(substitute* "txtorcon/controller.py"
-                           (("from collections import Sequence")
-                            "from collections.abc import Sequence")))))
+                "09a3k4g90pvs0q006ighka7xic39nnnk9bfrka23g4b8cynzy982"))))
     (build-system python-build-system)
     (arguments
-     ;; The tests fail immediately due to a missing file. Reported upstream:
-     ;; <https://github.com/meejah/txtorcon/issues/330>
-     (list #:tests? #f))
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-before 'check 'disable-failing-tests
+                          (lambda _
+                            ;; These tests fail
+                            (substitute* "test/test_router.py"
+                              (("\\W+def test_countrycode\\(self\\):" all)
+                               (string-append
+                                "    from unittest import skip as _skip\n"
+                                "    @_skip('Fails during Guix build')\n" all))
+                              (("\\W+def test_get_location_private\\(self\\):"
+                                all)
+                               (string-append
+                                "    @_skip('Fails during Guix build')\n" all)))
+                            ;; This test errors out
+                            (substitute* "test/test_util.py"
+                              (("\\W+def test_real_addr\\(self\\):" all)
+                               (string-append
+                                "    @_skip('Fails during Guix build')\n" all))))))))
     (propagated-inputs (list python-automat
                              python-idna
                              python-incremental
@@ -1269,6 +1280,7 @@ (define-public python-txtorcon
                              python-service-identity
                              python-twisted
                              python-zope-interface))
+    (native-inputs (list python-mock))
     (home-page "https://github.com/meejah/txtorcon")
     (synopsis "Twisted-based Tor controller client")
     (description "This package provides a Twisted-based Tor controller client,
-- 
2.40.1