ich einen Komponententest für die folgende Funktion zu schreiben:Python: Zurückgeben Tupel für os.walk in Unittest
def create_zip(path,zipf):
#Create zip files
for root, dirs, files in os.walk(path):
for file in files:
#write all json files to a zip file
for name in glob.glob('*.json'):
os.chdir(root)
#write files to zip file
zipf.write(name)
#Remove files after creating zip file
os.remove(name)
Dies ist, was ich im Moment haben:
tmpfilepath = os.path.join(tempfile.gettempdir(), "tmp-testfile")
@mock.patch('my_script.os.walk')
def test_create_basic_zip(self,mock_os_walk):
mock_os_walk.return_value = ('test1','test2','test3')
zipf = zipfile.ZipFile(self.tmpfilepath, 'w', zipfile.ZIP_DEFLATED)
files = my_script.create_zip('.',zipf)
aber ich behalte immer den Fehler:
for root, dirs, files in os.walk(path):
ValueError: too many values to unpack
oder wenn ich ändern es:
mock_os_walk.return_value = (['test1'],['test2'],['test3'])
ich den Fehler:
ValueError: need more than 1 value to unpack
Wohin gehe ich falsch?