From 99911f75f110409742eaf710a178ff0201f9b4a9 Mon Sep 17 00:00:00 2001 From: whiteowl3 <71030468+whiteowl3@users.noreply.github.com> Date: Tue, 1 Mar 2022 22:23:38 -0500 Subject: flake8-import-order (#1099) * flake8-import-order * make sure bad import orders fail * flake8-import-order * add application name to flake8 section * correct import order for openssl as application --- setup.py | 2 +- src/OpenSSL/SSL.py | 13 ++-- src/OpenSSL/__init__.py | 2 +- src/OpenSSL/crypto.py | 11 ++-- src/OpenSSL/debug.py | 4 +- tests/memdbg.py | 1 - tests/test_crypto.py | 68 +++++++++++--------- tests/test_debug.py | 2 +- tests/test_ssl.py | 166 +++++++++++++++++++++++------------------------- tox.ini | 2 + 10 files changed, 140 insertions(+), 131 deletions(-) diff --git a/setup.py b/setup.py index b7eb6d3..6cbc259 100755 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ import codecs import os import re -from setuptools import setup, find_packages +from setuptools import find_packages, setup HERE = os.path.abspath(os.path.dirname(__file__)) diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py index 6064233..97eee20 100644 --- a/src/OpenSSL/SSL.py +++ b/src/OpenSSL/SSL.py @@ -1,10 +1,10 @@ import os import socket +from errno import errorcode +from functools import partial, wraps +from itertools import chain, count from sys import platform -from functools import wraps, partial -from itertools import count, chain from weakref import WeakValueDictionary -from errno import errorcode from OpenSSL._util import ( UNSPECIFIED as _UNSPECIFIED, @@ -12,18 +12,17 @@ from OpenSSL._util import ( ffi as _ffi, lib as _lib, make_assert as _make_assert, + no_zero_allocator as _no_zero_allocator, path_bytes as _path_bytes, text_to_bytes_and_warn as _text_to_bytes_and_warn, - no_zero_allocator as _no_zero_allocator, ) - from OpenSSL.crypto import ( FILETYPE_PEM, - _PassphraseHelper, PKey, - X509Name, X509, + X509Name, X509Store, + _PassphraseHelper, ) __all__ = [ diff --git a/src/OpenSSL/__init__.py b/src/OpenSSL/__init__.py index 11e896a..0af3acd 100644 --- a/src/OpenSSL/__init__.py +++ b/src/OpenSSL/__init__.py @@ -5,7 +5,7 @@ pyOpenSSL - A simple wrapper around the OpenSSL library """ -from OpenSSL import crypto, SSL +from OpenSSL import SSL, crypto from OpenSSL.version import ( __author__, __copyright__, diff --git a/src/OpenSSL/crypto.py b/src/OpenSSL/crypto.py index 79f7f4b..5b09d10 100644 --- a/src/OpenSSL/crypto.py +++ b/src/OpenSSL/crypto.py @@ -1,7 +1,7 @@ import calendar import datetime -from base64 import b16encode import functools +from base64 import b16encode from functools import partial from cryptography import utils, x509 @@ -14,16 +14,17 @@ from cryptography.hazmat.primitives.asymmetric import ( ) from OpenSSL._util import ( + UNSPECIFIED as _UNSPECIFIED, + byte_string as _byte_string, + exception_from_error_queue as _exception_from_error_queue, ffi as _ffi, lib as _lib, - exception_from_error_queue as _exception_from_error_queue, - byte_string as _byte_string, + make_assert as _make_assert, path_bytes as _path_bytes, - UNSPECIFIED as _UNSPECIFIED, text_to_bytes_and_warn as _text_to_bytes_and_warn, - make_assert as _make_assert, ) + __all__ = [ "FILETYPE_PEM", "FILETYPE_ASN1", diff --git a/src/OpenSSL/debug.py b/src/OpenSSL/debug.py index 988b92a..e39b128 100644 --- a/src/OpenSSL/debug.py +++ b/src/OpenSSL/debug.py @@ -3,10 +3,12 @@ from __future__ import print_function import ssl import sys -import OpenSSL.SSL import cffi + import cryptography +import OpenSSL.SSL + from . import version diff --git a/tests/memdbg.py b/tests/memdbg.py index 590b72d..0dd8c31 100644 --- a/tests/memdbg.py +++ b/tests/memdbg.py @@ -1,5 +1,4 @@ import sys - import traceback from cffi import api as _api diff --git a/tests/test_crypto.py b/tests/test_crypto.py index 19b2ae6..8e8484c 100644 --- a/tests/test_crypto.py +++ b/tests/test_crypto.py @@ -4,15 +4,11 @@ """ Unit tests for :py:mod:`OpenSSL.crypto`. """ - -from warnings import simplefilter - import base64 -from subprocess import PIPE, Popen -from datetime import datetime, timedelta import sys - -import pytest +from datetime import datetime, timedelta +from subprocess import PIPE, Popen +from warnings import simplefilter from cryptography import x509 from cryptography.hazmat.primitives import serialization @@ -20,39 +16,53 @@ from cryptography.hazmat.primitives.asymmetric import ec, ed25519, ed448, rsa import flaky -from OpenSSL.crypto import TYPE_RSA, TYPE_DSA, Error, PKey -from OpenSSL.crypto import X509, X509Name +import pytest + +from OpenSSL._util import ffi as _ffi, lib as _lib from OpenSSL.crypto import ( + CRL, + Error, + FILETYPE_ASN1, + FILETYPE_PEM, + FILETYPE_TEXT, + NetscapeSPKI, + PKCS12, + PKCS7, + PKey, + Revoked, + TYPE_DSA, + TYPE_RSA, + X509, + X509Extension, + X509Name, + X509Req, X509Store, - X509StoreFlags, X509StoreContext, X509StoreContextError, -) -from OpenSSL.crypto import X509Req -from OpenSSL.crypto import X509Extension -from OpenSSL.crypto import load_certificate, load_privatekey -from OpenSSL.crypto import load_publickey, dump_publickey -from OpenSSL.crypto import FILETYPE_PEM, FILETYPE_ASN1, FILETYPE_TEXT -from OpenSSL.crypto import dump_certificate, load_certificate_request -from OpenSSL.crypto import dump_certificate_request, dump_privatekey -from OpenSSL.crypto import PKCS7, load_pkcs7_data -from OpenSSL.crypto import PKCS12, load_pkcs12 -from OpenSSL.crypto import CRL, Revoked, dump_crl, load_crl -from OpenSSL.crypto import NetscapeSPKI -from OpenSSL.crypto import ( - sign, - verify, + X509StoreFlags, + dump_certificate, + dump_certificate_request, + dump_crl, + dump_privatekey, + dump_publickey, get_elliptic_curve, get_elliptic_curves, + load_certificate, + load_certificate_request, + load_crl, + load_pkcs12, + load_pkcs7_data, + load_privatekey, + load_publickey, + sign, + verify, ) -from OpenSSL._util import ffi as _ffi, lib as _lib - from .util import ( EqualityTestsMixin, - is_consistent_type, - WARNING_TYPE_EXPECTED, NON_ASCII, + WARNING_TYPE_EXPECTED, + is_consistent_type, ) diff --git a/tests/test_debug.py b/tests/test_debug.py index 2d62a3a..4eeb3d0 100644 --- a/tests/test_debug.py +++ b/tests/test_debug.py @@ -1,5 +1,5 @@ -from OpenSSL.debug import _env_info from OpenSSL import version +from OpenSSL.debug import _env_info def test_debug_info(): diff --git a/tests/test_ssl.py b/tests/test_ssl.py index 8685ebc..63f5147 100644 --- a/tests/test_ssl.py +++ b/tests/test_ssl.py @@ -9,17 +9,17 @@ import datetime import gc import sys import uuid - -from gc import collect, get_referrers from errno import ( EAFNOSUPPORT, ECONNREFUSED, EINPROGRESS, - EWOULDBLOCK, EPIPE, ESHUTDOWN, + EWOULDBLOCK, ) -from sys import platform, getfilesystemencoding +from gc import collect, get_referrers +from os import makedirs +from os.path import join from socket import ( AF_INET, AF_INET6, @@ -28,16 +28,9 @@ from socket import ( error, socket, ) -from os import makedirs -from os.path import join -from weakref import ref +from sys import getfilesystemencoding, platform from warnings import simplefilter - -import flaky - -import pytest - -from pretend import raiser +from weakref import ref from cryptography import x509 from cryptography.hazmat.primitives import hashes @@ -45,91 +38,94 @@ from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.x509.oid import NameOID +import flaky + +from pretend import raiser -from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM -from OpenSSL.crypto import PKey, X509, X509Extension, X509Store -from OpenSSL.crypto import dump_privatekey, load_privatekey -from OpenSSL.crypto import dump_certificate, load_certificate -from OpenSSL.crypto import get_elliptic_curves +import pytest +from OpenSSL import SSL from OpenSSL.SSL import ( + Connection, + Context, + DTLS_METHOD, + Error, + MODE_RELEASE_BUFFERS, + NO_OVERLAPPING_PROTOCOLS, OPENSSL_VERSION_NUMBER, - SSLEAY_VERSION, + OP_COOKIE_EXCHANGE, + OP_NO_COMPRESSION, + OP_NO_QUERY_MTU, + OP_NO_SSLv2, + OP_NO_SSLv3, + OP_NO_TICKET, + OP_SINGLE_DH_USE, + RECEIVED_SHUTDOWN, + SENT_SHUTDOWN, + SESS_CACHE_BOTH, + SESS_CACHE_CLIENT, + SESS_CACHE_NO_AUTO_CLEAR, + SESS_CACHE_NO_INTERNAL, + SESS_CACHE_NO_INTERNAL_LOOKUP, + SESS_CACHE_NO_INTERNAL_STORE, + SESS_CACHE_OFF, + SESS_CACHE_SERVER, + SSLEAY_BUILT_ON, SSLEAY_CFLAGS, - TLS_METHOD, - TLS1_3_VERSION, - TLS1_2_VERSION, - TLS1_1_VERSION, - DTLS_METHOD, -) -from OpenSSL.SSL import SSLEAY_PLATFORM, SSLEAY_DIR, SSLEAY_BUILT_ON -from OpenSSL.SSL import SENT_SHUTDOWN, RECEIVED_SHUTDOWN -from OpenSSL.SSL import ( + SSLEAY_DIR, + SSLEAY_PLATFORM, + SSLEAY_VERSION, + SSL_CB_ACCEPT_EXIT, + SSL_CB_ACCEPT_LOOP, + SSL_CB_ALERT, + SSL_CB_CONNECT_EXIT, + SSL_CB_CONNECT_LOOP, + SSL_CB_EXIT, + SSL_CB_HANDSHAKE_DONE, + SSL_CB_HANDSHAKE_START, + SSL_CB_LOOP, + SSL_CB_READ, + SSL_CB_READ_ALERT, + SSL_CB_WRITE, + SSL_CB_WRITE_ALERT, + SSL_ST_ACCEPT, + SSL_ST_CONNECT, + SSL_ST_MASK, + SSLeay_version, + SSLv23_METHOD, SSLv2_METHOD, SSLv3_METHOD, - SSLv23_METHOD, - TLSv1_METHOD, + Session, + SysCallError, + TLS1_1_VERSION, + TLS1_2_VERSION, + TLS1_3_VERSION, + TLS_METHOD, TLSv1_1_METHOD, TLSv1_2_METHOD, -) -from OpenSSL.SSL import OP_SINGLE_DH_USE, OP_NO_SSLv2, OP_NO_SSLv3 -from OpenSSL.SSL import ( - VERIFY_PEER, - VERIFY_FAIL_IF_NO_PEER_CERT, + TLSv1_METHOD, VERIFY_CLIENT_ONCE, + VERIFY_FAIL_IF_NO_PEER_CERT, VERIFY_NONE, -) - -from OpenSSL import SSL -from OpenSSL.SSL import ( - SESS_CACHE_OFF, - SESS_CACHE_CLIENT, - SESS_CACHE_SERVER, - SESS_CACHE_BOTH, - SESS_CACHE_NO_AUTO_CLEAR, - SESS_CACHE_NO_INTERNAL_LOOKUP, - SESS_CACHE_NO_INTERNAL_STORE, - SESS_CACHE_NO_INTERNAL, -) - -from OpenSSL.SSL import ( - Error, - SysCallError, + VERIFY_PEER, WantReadError, WantWriteError, ZeroReturnError, + _make_requires, ) -from OpenSSL.SSL import Context, Session, Connection, SSLeay_version -from OpenSSL.SSL import _make_requires - from OpenSSL._util import ffi as _ffi, lib as _lib - -from OpenSSL.SSL import ( - OP_NO_QUERY_MTU, - OP_COOKIE_EXCHANGE, - OP_NO_TICKET, - OP_NO_COMPRESSION, - MODE_RELEASE_BUFFERS, - NO_OVERLAPPING_PROTOCOLS, -) - -from OpenSSL.SSL import ( - SSL_ST_CONNECT, - SSL_ST_ACCEPT, - SSL_ST_MASK, - SSL_CB_LOOP, - SSL_CB_EXIT, - SSL_CB_READ, - SSL_CB_WRITE, - SSL_CB_ALERT, - SSL_CB_READ_ALERT, - SSL_CB_WRITE_ALERT, - SSL_CB_ACCEPT_LOOP, - SSL_CB_ACCEPT_EXIT, - SSL_CB_CONNECT_LOOP, - SSL_CB_CONNECT_EXIT, - SSL_CB_HANDSHAKE_START, - SSL_CB_HANDSHAKE_DONE, +from OpenSSL.crypto import ( + FILETYPE_PEM, + PKey, + TYPE_RSA, + X509, + X509Extension, + X509Store, + dump_certificate, + dump_privatekey, + get_elliptic_curves, + load_certificate, + load_privatekey, ) try: @@ -147,15 +143,15 @@ try: except ImportError: OP_NO_TLSv1_3 = None -from .util import WARNING_TYPE_EXPECTED, NON_ASCII, is_consistent_type from .test_crypto import ( client_cert_pem, client_key_pem, - server_cert_pem, - server_key_pem, root_cert_pem, root_key_pem, + server_cert_pem, + server_key_pem, ) +from .util import NON_ASCII, WARNING_TYPE_EXPECTED, is_consistent_type # openssl dhparam 2048 -out dh-2048.pem diff --git a/tox.ini b/tox.ini index 5883e7a..93432dc 100644 --- a/tox.ini +++ b/tox.ini @@ -38,6 +38,7 @@ basepython = python3 deps = black flake8 + flake8-import-order skip_install = true commands = black --check . @@ -71,4 +72,5 @@ commands = coverage report [flake8] +application-import-names = OpenSSL ignore = E203,W503,W504 -- cgit v1.2.1