Структура папок на картинке. Тест сам по себе проходит.
Исходник:
from kits_config import Kit from kits_config import Kits import unittest as _t class TestKit(_t.TestCase): def setUp(self) -> None: Kit.kit_ids = list() Kit.kit_names = list() self.kit = Kit('TestKit', 'testdata/TestKitSamples', -5) self.kit._nka_path = 'testdata/' def tearDown(self) -> None: del self.kit def test_errors(self) -> None: """test for proper raising errors""" self.kit._samples_path = 'testdata/TestKitWrongSamples' with self.subTest(): with self.assertRaises(Kit.Error) as e: self.kit.zones self.assertEqual(str(e.exception), 'length of zones and names lists is not equal.' ' Probably, zones have to be updated for ' f'{self.kit.name}') def test_lists(self) -> None: """test contents of arrays""" print(__file__) print(__name__) with self.subTest(): self.assertEqual(len(self.kit.zones), len(self.kit.names)) self.assertEqual(self.kit.zones, [1, 2, 3]) self.assertEqual(self.kit.names, ['TestKit_sample_1', 'TestKit_sample_2', 'TestKit_sample_3']) class TestKits(_t.TestCase): def runTest(self) -> None: self.kits = Kits() Kit1 = Kit('Kit1', '.', -1) Kit2 = Kit('Kit2', '.', -2) self.kits.append(Kit1) self.kits.append(Kit2) with self.assertRaises(NameError): Kit('Kit2', '.', -3) with self.assertRaises(IndexError): Kit('Kit3', '.', -2) self.assertEqual(self.kits.Kit1, Kit1) self.assertEqual(self.kits[0], Kit1) self.assertEqual(self.kits.Kit2, Kit2) self.assertEqual(self.kits[1], Kit2) if __name__ == '__main__': _t.main()
test_project_path выставлен в {PROJECT_DIR}/source
вывод:
EE. ====================================================================== ERROR: test for proper raising errors ---------------------------------------------------------------------- Traceback (most recent call last): File "F:\Leo Percussion\source\test_kits_config.py", line 23, in test_errors self.kit.zones File "F:\Leo Percussion\source\kits_config.py", line 62, in zones self._check_actuality() File "F:\Leo Percussion\source\kits_config.py", line 51, in _check_actuality self.update_sample_zones() File "F:\Leo Percussion\source\kits_config.py", line 38, in update_sample_zones with open(self._nka_path + self.name + '.nka') as f: FileNotFoundError: [Errno 2] No such file or directory: 'testdata/TestKit.nka' ====================================================================== ERROR: test contents of arrays ---------------------------------------------------------------------- Traceback (most recent call last): File "F:\Leo Percussion\source\test_kits_config.py", line 33, in test_lists self.assertEqual(len(self.kit.zones), len(self.kit.names)) File "F:\Leo Percussion\source\kits_config.py", line 62, in zones self._check_actuality() File "F:\Leo Percussion\source\kits_config.py", line 51, in _check_actuality self.update_sample_zones() File "F:\Leo Percussion\source\kits_config.py", line 38, in update_sample_zones with open(self._nka_path + self.name + '.nka') as f: FileNotFoundError: [Errno 2] No such file or directory: 'testdata/TestKit.nka' -------------------- >> begin captured stdout << --------------------- F:\Leo Percussion\source\test_kits_config.py --------------------- >> end captured stdout << ---------------------- ---------------------------------------------------------------------- Ran 3 tests in 0.054s FAILED (errors=2) [Finished in 0.4s with exit code 1] [shell_cmd: nosetests ./source] [dir: F:\Leo Percussion]
Простите, чего-то башка не варит, куда прописать, чтоб пути были правильные?
Пробовал доставать абсолютный путь через path.dirname(path.abspath(__file__)), но там вообще какие-то черти с кодировкой полезли….