pytest discovery crashes when calling clr.AddReference

Environment

  • Pythonnet version: 2.4.0
  • Python version: Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
  • Operating System: Windows 10 (1803)
  • pytest: 5.3.1

Details

  • Describe what you were trying to get done.

I'm trying to discover and run tests that include calls to clr.AddReference in their module level imports.

  1. Create a pytest test file that looks like this:
import clr

clr.AddReference(r"c:\some_net_dll.dll")

def test_just_a_dummy():
    assert 1 == 1
  1. Replace the reference to a DLL above to a real .net DLL that loads fine when the above file is just run using regular python.exe.
  2. Use VS Code test discovery, or just call pytest --collect-only
  • If there was a crash, please include the traceback here.
============================================================= test session starts =============================================================
platform win32 -- Python 3.6.0, pytest-5.3.1, py-1.8.0, pluggy-0.13.1
rootdir: C:\Users\me\source\repos\utils-tester
collecting ... Windows fatal exception: code 1073807366

Current thread 0x0000468c (most recent call first):
  File "c:\Users\me\source\repos\utils-tester\tests\plypost_test.py", line 3 in <module>
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\assertion\rewrite.py", line 143 in exec_module
  File "<frozen importlib._bootstrap>", line 655 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 950 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 961 in _find_and_load
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\py\_path\local.py", line 701 in pyimport
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\python.py", line 492 in _importtestmodule
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\python.py", line 424 in _getobj
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\python.py", line 248 in obj
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\python.py", line 440 in _inject_setup_module_fixture
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\python.py", line 427 in collect
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\runner.py", line 254 in <lambda>
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\runner.py", line 234 in from_call
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\runner.py", line 254 in pytest_make_collect_report
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\callers.py", line 187 in _multicall
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\manager.py", line 87 in <lambda>
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\manager.py", line 93 in _hookexec
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\hooks.py", line 286 in __call__
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\runner.py", line 373 in collect_one_node
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 717 in genitems
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 720 in genitems
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 492 in _perform_collect
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 454 in perform_collect
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 255 in pytest_collection
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\callers.py", line 187 in _multicall
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\manager.py", line 87 in <lambda>
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\manager.py", line 93 in _hookexec
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\hooks.py", line 286 in __call__
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 245 in _main
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 196 in wrap_session
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\main.py", line 239 in pytest_cmdline_main
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\callers.py", line 187 in _multicall
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\manager.py", line 87 in <lambda>
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\manager.py", line 93 in _hookexec
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\pluggy\hooks.py", line 286 in __call__
  File "c:\users\me\source\repos\utils-tester\.venv\lib\site-packages\_pytest\config\__init__.py", line 92 in main
  File "C:\Users\me\source\repos\utils-tester\.venv\Scripts\pytest.exe\__main__.py", line 9 in <module>
  File "C:\ProgramData\Anaconda3\Lib\runpy.py", line 85 in _run_code
  File "C:\ProgramData\Anaconda3\Lib\runpy.py", line 193 in _run_module_as_main
Windows fatal exception: code 1073807366