--- src/M2Crypto/util.py | 4 ++++ tests/test_asn1.py | 11 +++++------ tests/test_x509.py | 9 ++++----- 3 files changed, 13 insertions(+), 11 deletions(-) --- a/src/M2Crypto/util.py +++ b/src/M2Crypto/util.py @@ -13,6 +13,7 @@ from __future__ import absolute_import import binascii import logging +import struct import sys from M2Crypto import m2, six @@ -29,6 +30,9 @@ class UtilError(Exception): m2.util_init(UtilError) +def is_32bit(): + # type: () -> bool + return (struct.calcsize("P") * 8) == 32 def pkcs5_pad(data, blklen=8): # type: (str, int) -> str --- a/tests/test_asn1.py +++ b/tests/test_asn1.py @@ -5,10 +5,9 @@ Copyright (c) 2005 Open Source Applications Foundation. All rights reserved.""" import datetime -import platform import time -from M2Crypto import ASN1, m2 +from M2Crypto import ASN1, m2, util from tests import unittest @@ -39,7 +38,7 @@ class ASN1TestCase(unittest.TestCase): def test_Object(self): pass # XXX Dunno how to test - @unittest.skipIf(platform.system() == 'Windows', 'Skip on Windows.') + @unittest.skipIf(util.is_32bit(), 'Skip on 32bit architectures.') def test_TIME(self): asn1 = ASN1.ASN1_TIME() self.assertEqual(str(asn1), 'Bad time value') @@ -66,7 +65,7 @@ class ASN1TestCase(unittest.TestCase): t2 = time.strftime(format, time.gmtime(t)) self.assertEqual(t1, t2) - @unittest.skipIf(platform.system() == 'Windows', 'Skip on Windows.') + @unittest.skipIf(util.is_32bit(), 'Skip on 32bit architectures.') def test_UTCTIME(self): asn1 = ASN1.ASN1_UTCTIME() self.assertEqual(str(asn1), 'Bad time value') @@ -93,7 +92,7 @@ class ASN1TestCase(unittest.TestCase): t2 = time.strftime(format, time.gmtime(t)) self.assertEqual(t1, t2) - @unittest.skipIf(platform.system() == 'Windows', 'Skip on Windows.') + @unittest.skipIf(util.is_32bit(), 'Skip on 32bit architectures.') def test_TIME_datetime(self): asn1 = ASN1.ASN1_TIME() # Test get_datetime and set_datetime @@ -119,7 +118,7 @@ class ASN1TestCase(unittest.TestCase): self.assertEqual(t1, t2) self.assertEqual(str(udt), str(asn1.get_datetime())) - @unittest.skipIf(platform.system() == 'Windows', 'Skip on Windows.') + @unittest.skipIf(util.is_32bit(), 'Skip on 32bit architectures.') def test_UTCTIME_datetime(self): asn1 = ASN1.ASN1_UTCTIME() # Test get_datetime and set_datetime --- a/tests/test_x509.py +++ b/tests/test_x509.py @@ -12,11 +12,10 @@ Author: Heikki Toivonen import base64 import logging import os -import platform import time import warnings -from M2Crypto import ASN1, BIO, EVP, RSA, Rand, X509, m2, six # noqa +from M2Crypto import ASN1, BIO, EVP, RSA, Rand, X509, m2, six, util # noqa from tests import unittest log = logging.getLogger(__name__) @@ -244,7 +243,7 @@ class X509TestCase(unittest.TestCase): req.set_version(0) self.assertEqual(req.get_version(), 0) - @unittest.skipIf(platform.system() == 'Windows', 'Skip on Windows.') + @unittest.skipIf(util.is_32bit(), 'Skip on 32bit architectures.') def test_mkcert(self): for utc in (True, False): req, pk = self.mkreq(1024) @@ -588,12 +587,12 @@ class X509TestCase(unittest.TestCase): self.assertEqual(cert.get_serial_number(), 127614157056681299805556476275995414779) - @unittest.skipIf(platform.system() == 'Windows', 'Skip on Windows.') + @unittest.skipIf(util.is_32bit(), 'Skip on 32bit architectures.') def test_date_after_2050_working(self): cert = X509.load_cert('tests/bad_date_cert.crt') self.assertEqual(str(cert.get_not_after()), 'Feb 9 14:57:46 2116 GMT') - @unittest.skipIf(platform.system() == 'Windows', 'Skip on Windows.') + @unittest.skipIf(util.is_32bit(), 'Skip on 32bit architectures.') def test_date_reference_counting(self): """x509_get_not_before() and x509_get_not_after() return internal pointers into X509. As the returned ASN1_TIME objects do not store any