diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-06-21 23:10:43 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-06-21 23:10:43 -0400 |
commit | 4117aa7ad1ac32f1e98560cafa06783eeb78b41b (patch) | |
tree | 6cd81b5ef950337acf1630f54c94a7d6cf070053 | |
parent | 9fd9c0c791b5418a919456dd4183a7fd9cdbc919 (diff) | |
parent | 318942867e04bc1401d8957a51072a4a79a24957 (diff) | |
download | cryptography-4117aa7ad1ac32f1e98560cafa06783eeb78b41b.tar.gz cryptography-4117aa7ad1ac32f1e98560cafa06783eeb78b41b.tar.bz2 cryptography-4117aa7ad1ac32f1e98560cafa06783eeb78b41b.zip |
Merge pull request #2053 from reaperhulk/name-constraints-eq
add eq/ne support to NameConstraints
-rw-r--r-- | src/cryptography/x509.py | 12 | ||||
-rw-r--r-- | tests/test_x509_ext.py | 29 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py index 4dbe3da1..1d705e70 100644 --- a/src/cryptography/x509.py +++ b/src/cryptography/x509.py @@ -709,6 +709,18 @@ class NameConstraints(object): self._permitted_subtrees = permitted_subtrees self._excluded_subtrees = excluded_subtrees + def __eq__(self, other): + if not isinstance(other, NameConstraints): + return NotImplemented + + return ( + self.excluded_subtrees == other.excluded_subtrees and + self.permitted_subtrees == other.permitted_subtrees + ) + + def __ne__(self, other): + return not self == other + def _validate_ip_name(self, tree): if any(isinstance(name, IPAddress) and not isinstance( name.value, (ipaddress.IPv4Network, ipaddress.IPv6Network) diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py index a5747c37..cacc0573 100644 --- a/tests/test_x509_ext.py +++ b/tests/test_x509_ext.py @@ -1972,6 +1972,35 @@ class TestNameConstraints(object): ", <DNSName(value=name2.local)>], excluded_subtrees=None)>" ) + def test_eq(self): + nc = x509.NameConstraints( + permitted_subtrees=[x509.DNSName(u"name.local")], + excluded_subtrees=[x509.DNSName(u"name2.local")] + ) + nc2 = x509.NameConstraints( + permitted_subtrees=[x509.DNSName(u"name.local")], + excluded_subtrees=[x509.DNSName(u"name2.local")] + ) + assert nc == nc2 + + def test_ne(self): + nc = x509.NameConstraints( + permitted_subtrees=[x509.DNSName(u"name.local")], + excluded_subtrees=[x509.DNSName(u"name2.local")] + ) + nc2 = x509.NameConstraints( + permitted_subtrees=[x509.DNSName(u"name.local")], + excluded_subtrees=None + ) + nc3 = x509.NameConstraints( + permitted_subtrees=None, + excluded_subtrees=[x509.DNSName(u"name2.local")] + ) + + assert nc != nc2 + assert nc != nc3 + assert nc != object() + class TestDistributionPoint(object): def test_distribution_point_full_name_not_general_names(self): |