aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cryptography/x509/name.py5
-rw-r--r--tests/x509/test_x509.py23
2 files changed, 23 insertions, 5 deletions
diff --git a/src/cryptography/x509/name.py b/src/cryptography/x509/name.py
index dac5639e..ca2a1754 100644
--- a/src/cryptography/x509/name.py
+++ b/src/cryptography/x509/name.py
@@ -253,4 +253,7 @@ class Name(object):
return sum(len(rdn) for rdn in self._attributes)
def __repr__(self):
- return "<Name({})>".format(self.rfc4514_string())
+ if six.PY2:
+ return "<Name({})>".format(self.rfc4514_string().encode('utf8'))
+ else:
+ return "<Name({})>".format(self.rfc4514_string())
diff --git a/tests/x509/test_x509.py b/tests/x509/test_x509.py
index afca9c5b..a4cd70bc 100644
--- a/tests/x509/test_x509.py
+++ b/tests/x509/test_x509.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
# This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
@@ -4128,13 +4129,27 @@ class TestName(object):
name2 = x509.Name([x509.RelativeDistinguishedName([rdn1, rdn2])])
assert name2.rdns == [x509.RelativeDistinguishedName([rdn1, rdn2])]
- def test_repr(self):
+ @pytest.mark.parametrize(
+ ("common_name", "org_name", "expected_repr"),
+ [
+ (
+ u'cryptography.io',
+ u'PyCA',
+ "<Name(CN=cryptography.io,O=PyCA)>",
+ ),
+ (
+ u'Certificación',
+ u'Certificación',
+ "<Name(CN=Certificación,O=Certificación)>",
+ ),
+ ])
+ def test_repr(self, common_name, org_name, expected_repr):
name = x509.Name([
- x509.NameAttribute(NameOID.COMMON_NAME, u'cryptography.io'),
- x509.NameAttribute(NameOID.ORGANIZATION_NAME, u'PyCA'),
+ x509.NameAttribute(NameOID.COMMON_NAME, common_name),
+ x509.NameAttribute(NameOID.ORGANIZATION_NAME, org_name),
])
- assert repr(name) == "<Name(CN=cryptography.io,O=PyCA)>"
+ assert repr(name) == expected_repr
def test_rfc4514_string(self):
n = x509.Name([