Hello everyone, so I have a class method that I'm trying to test, which requires two fixed methods: "ConfigB. Init " and "listdir":
from os import listdir
from config.ConfigB import ConfigB
class FileRunner(object):
def runProcess(self, cfgA)
cfgB = ConfigB(cfgA)
print(listdir())
I have the following test installed:
import unittest
import unittest.mock imort MagicMock
import mock
from FileRunner import FileRunner
class TestFileRunner(unittest.TestCase):
@mock.patch('ConfigB.ConfigB.__init__')
@mock.patch('os.listdir')
def test_methodscalled(self, osListDir, cfgB):
cfgA = MagicMock()
fileRunner = FileRunner()
cfgB.return_value = None
osListDir.return_value = None
fileRunner.runProcess(cfgA)
Now the corrected mock and return value work for "ConfigB.ConfigB", but it does not work for "os.listdir". When the print (listdir ()) method is executed, I get a list of files in the current directory, and not the value "No", as I indicated in the corrected return value. Any idea what is going wrong?
source
share