現在の作業ディレクトリの内容を調べて、各拡張子 (".txt"、".doc" など) を持つファイルの数を出力する関数を含むモジュールを作成する必要があるプロジェクトがあります。
次に、別のモジュールを作成して、関数が正しい結果を返すことをテストして検証する必要があります。
import os
from collections import Counter
filenames = {}
extensions = []
file_counts = {}
extensions2 = {}
def examine():
for filename in filenames:
f = open(filename, "w")
f.write("Some text\n")
f.close()
name, extension = filename.split('.')
extensions.append(extension)
extensions2 = dict(Counter(extensions))
return extensions2
そして、これはテストです:
import unittest
import tempfile
import os
import shutil
import examine_directory as examdir
class TestExamine(unittest.TestCase):
def setUp(self):
self.origdir = os.getcwd()
self.dirname = tempfile.mkdtemp("testdir")
os.chdir(self.dirname)
examdir.filenames = {"this.txt", "that.txt", "the_other.txt","this.doc","that.doc","this.pdf","first.txt","that.pdf"}
def test_dirs(self):
expected = {'pdf': 2, 'txt': 4, 'doc': 2}
self.assertEqual(examdir.extensions2, expected, "Creation of files not possible")
def tearDown(self):
os.chdir(self.origdir)
shutil.rmtree(self.dirname)
if __name__ == "__main__":
unittest.main()
立ち往生していて、助けが必要です。assertEqual エラーが発生します。
前もって感謝します。