Is there a way to mock a .NET library loaded with clr.AddReference(), without the presence of the actual dll?
My code:
import clr
clr.AddReference("lib/MyDeviceDriver")
import MyDeviceDriver
class MyClass:
def __init__(self):
self.__deviceAPI = MyDeviceDriver.Create()
.
.
.
My Unittest code:
def test_func(self):
my_object = MyClass()
Failure:
> self.__deviceAPI = MyDeviceDriver.Create()
E System.Runtime.SomeLibrary.COMException: Retrieving the COM class factory for component with CLSID {9F8D4F16-0F61-4A38-98B3-1F6F80F11C87} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
I'd like to unittest MyClass without needing the library in the path or any classes registered in the registry.
Is there a way to do that? I tried patching with various types of errors. I tried patching AddReference, MyDeviceDriver with no success. Essentially from python's unittest docs it appears that "patch" needs the original library available.
Since it is Python, can't you do
import MyCode
import unittest
class DriverMock(): pass
MyCode.MyDeviceDriver = DriverMock
def test_func():
my_object = MyClass()
User contributions licensed under CC BY-SA 3.0