summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2016-07-04 09:51:32 -0400
committerHynek Schlawack <hs@ox.cx>2016-07-04 15:51:32 +0200
commit37726111350e8b923a00cc0511b4cd903b5c522f (patch)
treec333bf49baf74a1f9f35793a3a213eba7faaca7b
parent7778e796de33dc6b582723698410de0047e97bb0 (diff)
downloadpyopenssl-37726111350e8b923a00cc0511b4cd903b5c522f.tar.gz
Write a few more tests (#503)
* Write a few more tests * pytestify this whole jam
-rw-r--r--src/OpenSSL/crypto.py4
-rw-r--r--tests/test_crypto.py47
2 files changed, 40 insertions, 11 deletions
diff --git a/src/OpenSSL/crypto.py b/src/OpenSSL/crypto.py
index 91cc8c8..4a379e8 100644
--- a/src/OpenSSL/crypto.py
+++ b/src/OpenSSL/crypto.py
@@ -1117,9 +1117,7 @@ class X509(object):
_raise_current_error()
asn1_serial = _ffi.gc(asn1_serial, _lib.ASN1_INTEGER_free)
set_result = _lib.X509_set_serialNumber(self._x509, asn1_serial)
- if not set_result:
- # TODO Not tested
- _raise_current_error()
+ _openssl_assert(set_result == 1)
def get_serial_number(self):
"""
diff --git a/tests/test_crypto.py b/tests/test_crypto.py
index 10d2427..81e0ae3 100644
--- a/tests/test_crypto.py
+++ b/tests/test_crypto.py
@@ -959,17 +959,22 @@ class X509NameTests(TestCase):
"""
name = self._x509name()
name.commonName = "foo"
- self.assertEqual(name.commonName, "foo")
- self.assertEqual(name.CN, "foo")
+ assert name.commonName == "foo"
+ assert name.CN == "foo"
+
name.CN = "baz"
- self.assertEqual(name.commonName, "baz")
- self.assertEqual(name.CN, "baz")
+ assert name.commonName == "baz"
+ assert name.CN == "baz"
+
name.commonName = "bar"
- self.assertEqual(name.commonName, "bar")
- self.assertEqual(name.CN, "bar")
+ assert name.commonName == "bar"
+ assert name.CN == "bar"
+
name.CN = "quux"
- self.assertEqual(name.commonName, "quux")
- self.assertEqual(name.CN, "quux")
+ assert name.commonName == "quux"
+ assert name.CN == "quux"
+
+ assert name.OU is None
with pytest.raises(AttributeError):
name.foobar
@@ -1922,6 +1927,15 @@ tgI5
cert = load_certificate(FILETYPE_PEM, certPEM)
self.assertRaises(ValueError, cert.get_signature_algorithm)
+ def test_sign_bad_pubkey_type(self):
+ """
+ :obj:`X509.sign` raises :obj:`TypeError` when called with the wrong
+ type.
+ """
+ cert = X509()
+ with pytest.raises(TypeError):
+ cert.sign(object(), b"sha256")
+
class X509StoreTests(TestCase):
"""
@@ -2695,6 +2709,15 @@ class FunctionTests(TestCase):
good_text = _runopenssl(dumped_pem, b"x509", b"-noout", b"-text")
self.assertEqual(dumped_text, good_text)
+ def test_dump_certificate_bad_type(self):
+ """
+ :obj:`dump_certificate` raises a :obj:`ValueError` if it's called with
+ a bad type.
+ """
+ cert = load_certificate(FILETYPE_PEM, cleartextCertificatePEM)
+ with pytest.raises(ValueError):
+ dump_certificate(object(), cert)
+
def test_dump_privatekey_pem(self):
"""
:py:obj:`dump_privatekey` writes a PEM
@@ -2869,6 +2892,14 @@ class LoadCertificateTests(TestCase):
with pytest.raises(ValueError):
load_certificate(object(), b"")
+ def test_bad_certificate(self):
+ """
+ If the bytes passed to :obj:`load_certificate` are not a valid
+ certificate, an exception is raised.
+ """
+ with pytest.raises(Error):
+ load_certificate(FILETYPE_ASN1, b"lol")
+
class PKCS7Tests(TestCase):
"""