diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2016-07-04 09:51:32 -0400 |
---|---|---|
committer | Hynek Schlawack <hs@ox.cx> | 2016-07-04 15:51:32 +0200 |
commit | 37726111350e8b923a00cc0511b4cd903b5c522f (patch) | |
tree | c333bf49baf74a1f9f35793a3a213eba7faaca7b | |
parent | 7778e796de33dc6b582723698410de0047e97bb0 (diff) | |
download | pyopenssl-37726111350e8b923a00cc0511b4cd903b5c522f.tar.gz |
Write a few more tests (#503)
* Write a few more tests
* pytestify this whole jam
-rw-r--r-- | src/OpenSSL/crypto.py | 4 | ||||
-rw-r--r-- | tests/test_crypto.py | 47 |
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): """ |