Skip to content

Commit 7cfc7d3

Browse files
author
Fabian Peter Hammerle
committed
refactor mac test to attempt to fix ImportError in gitlab-ci
1 parent 8bef059 commit 7cfc7d3

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

tests/dlinfo_macosx_mock_test.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import builtins
12
import ctypes
23
import ctypes.util
34
import os
@@ -6,24 +7,29 @@
67

78
import pytest
89

10+
BUILTIN_IMPORT = builtins.__import__
11+
912

1013
def dyld_find_mock(name):
1114
# https://github.com/python/cpython/blob/master/Lib/ctypes/macholib/dyld.py#L116
1215
return os.path.join(os.sep, 'lib', name)
1316

1417

18+
def import_mock(name, *args):
19+
if name == 'ctypes.macholib.dyld':
20+
dyld_module = unittest.mock.MagicMock()
21+
dyld_module.dyld_find = dyld_find_mock
22+
return dyld_module
23+
return BUILTIN_IMPORT(name, *args)
24+
25+
1526
@pytest.fixture
1627
def dlinfo_module_mac() -> types.ModuleType:
1728
with unittest.mock.patch('sys.platform', 'darwin'):
18-
dyld_module = unittest.mock.MagicMock()
19-
dyld_module.dyld_find = dyld_find_mock
20-
with unittest.mock.patch.dict('sys.modules',
21-
{'ctypes': unittest.mock.MagicMock(),
22-
'ctypes.macholib': unittest.mock.MagicMock(),
23-
'ctypes.macholib.dyld': dyld_module}):
29+
with unittest.mock.patch('builtins.__import__', import_mock):
2430
dlinfo_module = __import__('dlinfo')
25-
assert dlinfo_module.DLInfo.__module__ == 'dlinfo._macosx'
26-
return dlinfo_module
31+
assert dlinfo_module.DLInfo.__module__ == 'dlinfo._macosx'
32+
return dlinfo_module
2733

2834

2935
@pytest.mark.parametrize('lib_name', [

0 commit comments

Comments
 (0)