local_sms.buf[:len(binary_data)] = binary_data
local_sms.close()
+ @unittest.skipIf(sys.platform == "win32", "test is broken on Windows")
def test_shared_memory_basics(self):
sms = shared_memory.SharedMemory('test01_tsmb', create=True, size=512)
self.addCleanup(sms.unlink)
ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS
ValueError: unsupported hash type md4
"""
- def decorator(func):
- @functools.wraps(func)
+ def decorator(func_or_class):
+ if isinstance(func_or_class, type):
+ setUpClass = func_or_class.__dict__.get('setUpClass')
+ if setUpClass is None:
+ def setUpClass(cls):
+ super(func_or_class, cls).setUpClass()
+ setUpClass.__qualname__ = func_or_class.__qualname__ + '.setUpClass'
+ setUpClass.__module__ = func_or_class.__module__
+ else:
+ setUpClass = setUpClass.__func__
+ setUpClass = classmethod(decorator(setUpClass))
+ func_or_class.setUpClass = setUpClass
+ return func_or_class
+
+ @functools.wraps(func_or_class)
def wrapper(*args, **kwargs):
try:
if openssl and _hashlib is not None:
raise unittest.SkipTest(
f"hash digest '{digestname}' is not available."
)
- return func(*args, **kwargs)
+ return func_or_class(*args, **kwargs)
return wrapper
return decorator
"""Tests for the md5sum script in the Tools directory."""
+import sys
import os
import unittest
from test import support
@classmethod
def setUpClass(cls):
cls.script = os.path.join(scriptsdir, 'md5sum.py')
- os.mkdir(support.TESTFN)
- cls.fodder = os.path.join(support.TESTFN, 'md5sum.fodder')
+ os.mkdir(support.TESTFN_ASCII)
+ cls.fodder = os.path.join(support.TESTFN_ASCII, 'md5sum.fodder')
with open(cls.fodder, 'wb') as f:
f.write(b'md5sum\r\ntest file\r\n')
cls.fodder_md5 = b'd38dae2eb1ab346a292ef6850f9e1a0d'
@classmethod
def tearDownClass(cls):
- support.rmtree(support.TESTFN)
+ support.rmtree(support.TESTFN_ASCII)
def test_noargs(self):
rc, out, err = assert_python_ok(self.script)
--- /dev/null
+Fixes that test classes decorated with ``@hashlib_helper.requires_hashdigest`` were skipped all the time.
\ No newline at end of file