Skip to content

Commit 08b2828

Browse files
fix(python3): replace six shims and fix deprecation warnings (#206)
1 parent e207f9f commit 08b2828

8 files changed

Lines changed: 25 additions & 29 deletions

File tree

tests/test_env.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#
1717
from os import environ
1818

19-
from six import text_type
2019

2120
FAKE = environ.get('FAKE')
2221
RANDOM_DOMAIN = environ.get('RANDOM_DOMAIN')
@@ -49,5 +48,5 @@
4948
NGTS_SCOPE = environ.get('NGTS_SCOPE')
5049
NGTS_ZONE = environ.get('NGTS_ZONE')
5150

52-
if RANDOM_DOMAIN and not isinstance(RANDOM_DOMAIN, text_type):
51+
if RANDOM_DOMAIN and not isinstance(RANDOM_DOMAIN, str):
5352
RANDOM_DOMAIN = RANDOM_DOMAIN.decode()

tests/test_tpp_token.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import binascii
1818
import time
1919
import unittest
20-
from datetime import datetime, timedelta
20+
from datetime import datetime, timedelta, timezone
2121

2222
from cryptography import x509
2323
from cryptography.hazmat.backends import default_backend
@@ -48,7 +48,7 @@ def test_tpp_token_enroll(self):
4848
cert_config = self.tpp_conn._get_certificate_details(cert_guid)
4949
self.assertEqual(cert_config['Origin'], "Venafi VCert-Python")
5050
except Exception as err:
51-
self.fail(f"Error in test: {err.message}")
51+
self.fail(f"Error in test: {str(err)}")
5252

5353
def test_tpp_token_enroll_with_service_generated_csr(self):
5454
cn = f"{random_word(10)}.venafi.example.com"
@@ -58,7 +58,7 @@ def test_tpp_token_enroll_with_service_generated_csr(self):
5858
cert_config = self.tpp_conn._get_certificate_details(cert_guid)
5959
self.assertEqual(cert_config['Origin'], "Venafi VCert-Python")
6060
except Exception as err:
61-
self.fail(f"Error in test: {err.message}")
61+
self.fail(f"Error in test: {str(err)}")
6262

6363
def test_tpp_token_enroll_with_custom_fields(self):
6464
cn = f"{random_word(10)}.venafi.example.com"
@@ -213,14 +213,14 @@ def test_tpp_token_enroll_valid_hours(self):
213213
request.custom_fields = custom_fields
214214
request.validity_hours = 144
215215
request.issuer_hint = IssuerHint.MICROSOFT
216-
expected_date = datetime.utcnow() + timedelta(hours=request.validity_hours)
216+
expected_date = datetime.now(timezone.utc) + timedelta(hours=request.validity_hours)
217217

218218
self.tpp_conn.request_cert(request, self.tpp_zone)
219219
cert = self.tpp_conn.retrieve_cert(request)
220220

221221
cert = x509.load_pem_x509_certificate(cert.cert.encode(), default_backend())
222222
assert isinstance(cert, x509.Certificate)
223-
expiration_date = cert.not_valid_after
223+
expiration_date = cert.not_valid_after_utc
224224
# Due to some roundings and delays in operations on the server side, the certificate expiration date
225225
# is not exactly the same as the one used in the request. A gap is allowed in this scenario to compensate
226226
# this delays and roundings.

tests/test_utils.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from cryptography.hazmat.backends import default_backend
2525
from cryptography.hazmat.primitives import serialization, hashes
2626
from cryptography.x509.oid import NameOID
27-
from six import string_types
2827

2928
from test_env import RANDOM_DOMAIN
3029
from vcert import CertificateRequest, FakeConnection, TPPConnection, TPPTokenConnection, CSR_ORIGIN_SERVICE
@@ -141,7 +140,7 @@ def enroll(conn, zone, cn=None, private_key=None, public_key=None, password=None
141140
encoding=serialization.Encoding.PEM,
142141
format=serialization.PublicFormat.SubjectPublicKeyInfo
143142
).decode()
144-
if isinstance(public_key, string_types):
143+
if isinstance(public_key, str):
145144
public_key = public_key.encode()
146145
if public_key:
147146
source_public_key_pem = serialization.load_pem_public_key(

tests/test_vaas.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import binascii
1818
import time
1919
import unittest
20-
from datetime import datetime, timedelta
20+
from datetime import datetime, timedelta, timezone
2121

2222
from cryptography import x509
2323
from cryptography.hazmat.backends import default_backend
@@ -123,14 +123,14 @@ def test_cloud_enroll_valid_hours(self):
123123
]
124124
request.custom_fields = custom_fields
125125
request.validity_hours = 144
126-
expected_date = datetime.utcnow() + timedelta(hours=request.validity_hours)
126+
expected_date = datetime.now(timezone.utc) + timedelta(hours=request.validity_hours)
127127

128128
self.cloud_conn.request_cert(request, self.cloud_zone)
129129
cert = self.cloud_conn.retrieve_cert(request)
130130

131131
cert = x509.load_pem_x509_certificate(cert.cert.encode(), default_backend())
132132
assert isinstance(cert, x509.Certificate)
133-
expiration_date = cert.not_valid_after
133+
expiration_date = cert.not_valid_after_utc
134134
# Due to some roundings and delays in operations on the server side, the certificate expiration date
135135
# is not exactly the same as the one used in the request. A gap is allowed in this scenario to compensate
136136
# this delays and roundings.
@@ -196,7 +196,7 @@ def test_enroll_ec_key_certificate(self):
196196
p_key = serialization.load_pem_private_key(data=cert.key.encode(), password=password.encode(),
197197
backend=default_backend())
198198
except Exception as e:
199-
log.error(msg=f"Error parsing Private Key: {e.message}")
199+
log.error(msg=f"Error parsing Private Key: {str(e)}")
200200

201201
if p_key:
202202
self.assertIsInstance(p_key, EllipticCurvePrivateKey, "returned private key is not of type Elliptic Curve")
@@ -212,4 +212,4 @@ def test_cloud_retire_by_thumbprint(self):
212212
ret_data = self.cloud_conn.retire_cert(ret_request)
213213
assert ret_data is True
214214
except Exception as e:
215-
log.error(msg=f"Error retiring certificate by thumbprint: {e.message}")
215+
log.error(msg=f"Error retiring certificate by thumbprint: {str(e)}")

vcert/common.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
from cryptography.hazmat.primitives.asymmetric import ec
2929
from cryptography.hazmat.primitives.asymmetric import rsa
3030
from cryptography.x509.oid import NameOID, ExtensionOID
31-
from six import string_types, binary_type
3231

3332
from .errors import VenafiConnectionError, ServerUnexptedBehavior, BadData, ClientBadData
3433
from .http_status import HTTPStatus
@@ -346,16 +345,16 @@ def __init__(self, cert_id=None,
346345

347346
def __setattr__(self, key, value):
348347
if key == "key_password":
349-
if isinstance(value, string_types):
348+
if isinstance(value, str):
350349
value = value.encode()
351350
elif key == "common_name":
352-
if isinstance(value, binary_type):
351+
if isinstance(value, bytes):
353352
value = value.decode()
354353
elif key == "key_type":
355354
if value is not None and not isinstance(value, KeyType):
356355
raise ClientBadData("key_type should be instance of vcert.KeyType")
357356
elif key == "private_key":
358-
if isinstance(value, string_types):
357+
if isinstance(value, str):
359358
value = serialization.load_pem_private_key(value.encode(),
360359
password=self.key_password, backend=default_backend())
361360
if isinstance(value, rsa.RSAPrivateKey):
@@ -368,9 +367,9 @@ def __setattr__(self, key, value):
368367
raise ClientBadData(f"invalid private key type {type(value)}")
369368
elif key == "csr":
370369
self.csr_origin = CSR_ORIGIN_PROVIDED
371-
if isinstance(value, binary_type):
370+
if isinstance(value, bytes):
372371
value = value.decode()
373-
elif not (isinstance(value, string_types) or value is None):
372+
elif not (isinstance(value, str) or value is None):
374373
raise ClientBadData(f"invalid csr type {type(value)}")
375374
if value:
376375
csr = x509.load_pem_x509_csr(value.encode(), default_backend())
@@ -433,7 +432,7 @@ def build_csr(self):
433432
if self.organization:
434433
subject.append(x509.NameAttribute(NameOID.ORGANIZATION_NAME, self.organization))
435434
if self.organizational_unit:
436-
if isinstance(self.organizational_unit, string_types):
435+
if isinstance(self.organizational_unit, str):
437436
subject.append(x509.NameAttribute(NameOID.ORGANIZATIONAL_UNIT_NAME, self.organizational_unit))
438437
elif isinstance(self.organizational_unit, list):
439438
for u in self.organizational_unit:

vcert/connection_cloud.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@
1818
import time
1919

2020
import requests
21-
import six.moves.urllib.parse as urlparse
21+
import urllib.parse as urlparse
2222
from nacl.public import SealedBox
23-
from six import string_types
2423

2524
from .common import (ZoneConfig, CertificateRequest, CommonConnection, Policy, get_ip_address, log_errors, MIME_JSON,
2625
MIME_TEXT, MIME_ANY, CertField, KeyType, DEFAULT_TIMEOUT,
@@ -934,7 +933,7 @@ def _get_service_generated_csr_attr(self, request, zone):
934933
csr_attr_map[CSR_ATTR_ORG] = ps.defaults.subject.org
935934

936935
if request.organizational_unit:
937-
if isinstance(request.organizational_unit, string_types):
936+
if isinstance(request.organizational_unit, str):
938937
org_units = [request.organizational_unit]
939938
else:
940939
org_units = request.organizational_unit

vcert/connection_fake.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,10 @@ def retrieve_cert(self, certificate_request):
165165
).serial_number(
166166
x509.random_serial_number()
167167
).not_valid_before(
168-
datetime.datetime.utcnow()
168+
datetime.datetime.now(datetime.timezone.utc)
169169
).not_valid_after(
170170
# Our certificate will be valid for 10 days
171-
datetime.datetime.utcnow() + datetime.timedelta(days=10)
171+
datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(days=10)
172172
).add_extension(
173173
# csr_builder.extensions,
174174
x509.SubjectAlternativeName([x509.DNSName(u"localhost")]),

vcert/connection_tpp_abstract.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
import logging as log
1818
import re
1919
import time
20-
from datetime import datetime, timedelta
20+
from datetime import datetime, timedelta, timezone
2121

2222
from cryptography import x509
2323
from cryptography.hazmat.backends import default_backend
2424
from cryptography.x509 import SignatureAlgorithmOID as AlgOID
25-
from six.moves.urllib import parse as url_parse
25+
from urllib import parse as url_parse
2626

2727
from .common import CertField, CommonConnection, CertificateRequest, CSR_ORIGIN_LOCAL, CSR_ORIGIN_PROVIDED, \
2828
CSR_ORIGIN_SERVICE, KeyType, CHAIN_OPTION_LAST, CHAIN_OPTION_FIRST, CHAIN_OPTION_IGNORE, Policy, ZoneConfig
@@ -147,7 +147,7 @@ def request_cert(self, request, zone):
147147
else:
148148
exp_date_attr = IssuerHint.DEFAULT.json_value
149149

150-
expiration_date = datetime.utcnow() + timedelta(hours=request.validity_hours)
150+
expiration_date = datetime.now(timezone.utc) + timedelta(hours=request.validity_hours)
151151
formatted_expiration_date = expiration_date.strftime("%Y-%m-%d %H:%M:%S")
152152

153153
expiration_date = {'Name': exp_date_attr, 'Value': formatted_expiration_date}

0 commit comments

Comments
 (0)