43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
#-*- coding:utf-8 -*-
|
|
"""
|
|
source : https://medium.com/@george.shuklin/mocking-complicated-init-in-python-6ef9850dd202
|
|
"""
|
|
|
|
|
|
class Compl(object):
|
|
def __init__(self, arg1, arg2):
|
|
self.var1 = complicated_to_mock(arg1)
|
|
self.var2 = self.var2.complicated_to_mocK2(arg2)
|
|
|
|
if self.var1 in self.var2 and self.var1 != self.var2:
|
|
self.var3 = self.var2 - self.var1 + ctm3(ctm4())
|
|
|
|
self.foo = {
|
|
"1": {"price": "2.7", "quantity": "10"},
|
|
"2": {"price": "8.0", "quantity": "2"},
|
|
}
|
|
|
|
def simple(self, arg3):
|
|
if arg3 > self.var1:
|
|
return None
|
|
else:
|
|
return arg3 - self.var1
|
|
|
|
|
|
from unittest.mock import patch
|
|
|
|
def test_simple_none():
|
|
with patch.object(Compl, "__init__", lambda x, y, z: None):
|
|
c = Compl(None, None)
|
|
c.var1 = 0
|
|
c.foo = {"foo":"bar", "FOO":"BAR"}
|
|
assert c.simple(1) is None
|
|
assert [i for i in c.foo.keys()] == ["foo", "FOO"]
|
|
|
|
def test_simple_substraction():
|
|
with patch.object(Compl, "__init__", lambda x, y, z: None):
|
|
c = Compl(None, None)
|
|
c.var1 = 1
|
|
assert c.simple(1) == 0
|