commit:     12923d672c0285744ae3cf1f47e955581be1c214
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 12 03:47:09 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Apr 12 03:47:09 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12923d67

dev-python/uvicorn: improve optional Rust test deps patch

Followup to 5de4c34f3962d77d3cb9a53a5d50c5ff75bdd2fa, thanks to mgorny
for the suggestion. This lets us make it much smaller.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/uvicorn-0.21.1-optional-rust.patch       | 152 ++++++---------------
 1 file changed, 44 insertions(+), 108 deletions(-)

diff --git a/dev-python/uvicorn/files/uvicorn-0.21.1-optional-rust.patch 
b/dev-python/uvicorn/files/uvicorn-0.21.1-optional-rust.patch
index 405eb5325ad9..dddeda158252 100644
--- a/dev-python/uvicorn/files/uvicorn-0.21.1-optional-rust.patch
+++ b/dev-python/uvicorn/files/uvicorn-0.21.1-optional-rust.patch
@@ -1,6 +1,6 @@
 --- a/tests/conftest.py
 +++ b/tests/conftest.py
-@@ -11,9 +11,15 @@ from time import sleep
+@@ -11,9 +11,13 @@ from time import sleep
  from uuid import uuid4
  
  import pytest
@@ -8,137 +8,73 @@
 -from cryptography.hazmat.backends import default_backend
 -from cryptography.hazmat.primitives import serialization
 +
-+gentoo_got_rust_deps = True
-+
 +try:
 +    import trustme
 +    from cryptography.hazmat.backends import default_backend
 +    from cryptography.hazmat.primitives import serialization
 +except ImportError:
-+    gentoo_got_rust_deps = False
++    pass
  
  from uvicorn.config import LOGGING_CONFIG
  
-@@ -28,72 +34,72 @@ from uvicorn.config import LOGGING_CONFIG
- # See also: https://github.com/pytest-dev/pytest/issues/3697
- LOGGING_CONFIG["loggers"]["uvicorn"]["propagate"] = True
+@@ -30,12 +34,12 @@ LOGGING_CONFIG["loggers"]["uvicorn"]["propagate"] = True
+ 
  
--
[email protected]
+ @pytest.fixture
 -def tls_certificate_authority() -> trustme.CA:
--    return trustme.CA()
-+if gentoo_got_rust_deps:
-+    @pytest.fixture
-+    def tls_certificate_authority() -> trustme.CA:
-+        return trustme.CA()
++def tls_certificate_authority() -> "trustme.CA":
+     return trustme.CA()
  
  
[email protected]
+ @pytest.fixture
 -def tls_certificate(tls_certificate_authority: trustme.CA) -> 
trustme.LeafCert:
--    return tls_certificate_authority.issue_cert(
--        "localhost",
--        "127.0.0.1",
--        "::1",
--    )
-+    @pytest.fixture
-+    def tls_certificate(tls_certificate_authority: trustme.CA) -> 
trustme.LeafCert:
-+        return tls_certificate_authority.issue_cert(
-+            "localhost",
-+            "127.0.0.1",
-+            "::1",
-+        )
- 
- 
[email protected]
++def tls_certificate(tls_certificate_authority: "trustme.CA") -> 
"trustme.LeafCert":
+     return tls_certificate_authority.issue_cert(
+         "localhost",
+         "127.0.0.1",
+@@ -44,13 +48,13 @@ def tls_certificate(tls_certificate_authority: trustme.CA) 
-> trustme.LeafCert:
+ 
+ 
+ @pytest.fixture
 -def tls_ca_certificate_pem_path(tls_certificate_authority: trustme.CA):
--    with tls_certificate_authority.cert_pem.tempfile() as ca_cert_pem:
--        yield ca_cert_pem
-+    @pytest.fixture
-+    def tls_ca_certificate_pem_path(tls_certificate_authority: trustme.CA):
-+        with tls_certificate_authority.cert_pem.tempfile() as ca_cert_pem:
-+            yield ca_cert_pem
++def tls_ca_certificate_pem_path(tls_certificate_authority: "trustme.CA"):
+     with tls_certificate_authority.cert_pem.tempfile() as ca_cert_pem:
+         yield ca_cert_pem
  
  
[email protected]
+ @pytest.fixture
 -def tls_ca_certificate_private_key_path(tls_certificate_authority: 
trustme.CA):
--    with tls_certificate_authority.private_key_pem.tempfile() as private_key:
--        yield private_key
-+    @pytest.fixture
-+    def tls_ca_certificate_private_key_path(tls_certificate_authority: 
trustme.CA):
-+        with tls_certificate_authority.private_key_pem.tempfile() as 
private_key:
-+            yield private_key
- 
- 
[email protected]
--def tls_certificate_private_key_encrypted_path(tls_certificate):
--    private_key = serialization.load_pem_private_key(
--        tls_certificate.private_key_pem.bytes(),
--        password=None,
--        backend=default_backend(),
--    )
--    encrypted_key = private_key.private_bytes(
--        serialization.Encoding.PEM,
--        serialization.PrivateFormat.TraditionalOpenSSL,
--        serialization.BestAvailableEncryption(b"uvicorn password for the 
win"),
--    )
--    with trustme.Blob(encrypted_key).tempfile() as private_encrypted_key:
--        yield private_encrypted_key
-+    @pytest.fixture
-+    def tls_certificate_private_key_encrypted_path(tls_certificate):
-+        private_key = serialization.load_pem_private_key(
-+            tls_certificate.private_key_pem.bytes(),
-+            password=None,
-+            backend=default_backend(),
-+        )
-+        encrypted_key = private_key.private_bytes(
-+            serialization.Encoding.PEM,
-+            serialization.PrivateFormat.TraditionalOpenSSL,
-+            serialization.BestAvailableEncryption(b"uvicorn password for the 
win"),
-+        )
-+        with trustme.Blob(encrypted_key).tempfile() as private_encrypted_key:
-+            yield private_encrypted_key
- 
- 
[email protected]
++def tls_ca_certificate_private_key_path(tls_certificate_authority: 
"trustme.CA"):
+     with tls_certificate_authority.private_key_pem.tempfile() as private_key:
+         yield private_key
+ 
+@@ -72,25 +76,25 @@ def 
tls_certificate_private_key_encrypted_path(tls_certificate):
+ 
+ 
+ @pytest.fixture
 -def tls_certificate_private_key_path(tls_certificate: trustme.CA):
--    with tls_certificate.private_key_pem.tempfile() as private_key:
--        yield private_key
-+    @pytest.fixture
-+    def tls_certificate_private_key_path(tls_certificate: trustme.CA):
-+        with tls_certificate.private_key_pem.tempfile() as private_key:
-+            yield private_key
++def tls_certificate_private_key_path(tls_certificate: "trustme.CA"):
+     with tls_certificate.private_key_pem.tempfile() as private_key:
+         yield private_key
  
  
[email protected]
+ @pytest.fixture
 -def tls_certificate_key_and_chain_path(tls_certificate: trustme.LeafCert):
--    with tls_certificate.private_key_and_cert_chain_pem.tempfile() as 
cert_pem:
--        yield cert_pem
-+    @pytest.fixture
-+    def tls_certificate_key_and_chain_path(tls_certificate: trustme.LeafCert):
-+        with tls_certificate.private_key_and_cert_chain_pem.tempfile() as 
cert_pem:
-+            yield cert_pem
++def tls_certificate_key_and_chain_path(tls_certificate: "trustme.LeafCert"):
+     with tls_certificate.private_key_and_cert_chain_pem.tempfile() as 
cert_pem:
+         yield cert_pem
  
  
[email protected]
+ @pytest.fixture
 -def tls_certificate_server_cert_path(tls_certificate: trustme.LeafCert):
--    with tls_certificate.cert_chain_pems[0].tempfile() as cert_pem:
--        yield cert_pem
-+    @pytest.fixture
-+    def tls_certificate_server_cert_path(tls_certificate: trustme.LeafCert):
-+        with tls_certificate.cert_chain_pems[0].tempfile() as cert_pem:
-+            yield cert_pem
++def tls_certificate_server_cert_path(tls_certificate: "trustme.LeafCert"):
+     with tls_certificate.cert_chain_pems[0].tempfile() as cert_pem:
+         yield cert_pem
  
  
[email protected]
+ @pytest.fixture
 -def tls_ca_ssl_context(tls_certificate_authority: trustme.CA) -> 
ssl.SSLContext:
--    ssl_ctx = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
--    tls_certificate_authority.configure_trust(ssl_ctx)
--    return ssl_ctx
-+    @pytest.fixture
-+    def tls_ca_ssl_context(tls_certificate_authority: trustme.CA) -> 
ssl.SSLContext:
-+        ssl_ctx = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
-+        tls_certificate_authority.configure_trust(ssl_ctx)
-+        return ssl_ctx
- 
- 
- @pytest.fixture(scope="package")
++def tls_ca_ssl_context(tls_certificate_authority: "trustme.CA") -> 
ssl.SSLContext:
+     ssl_ctx = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
+     tls_certificate_authority.configure_trust(ssl_ctx)
+     return ssl_ctx

Reply via email to