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.