Вы определенно не можете найти A, потому что python нужно посмотреть из sys.path
, PYTHONPATH
, чтобы найти модуль.
И python автоматически добавит текущие значения top level script
к sys.path
, а не currently directory
к sys.path
. Поэтому, если вы добавите print(sys.path)
в testFoo.py
, вы увидите, что это только добавит project/TestA
к sys.path
.
Другое слово, project
не было включено в sys.path
, тогда как python может найти модуль A
?
Таким образом, вам пришлось добавить папку project
в sys.path
самостоятельно, и это просто необходимо в top script
, примерно так:
import unittest
import sys
import os
file_path = os.path.abspath(os.path.dirname(__file__)).replace('\\', '/')
lib_path = os.path.abspath(os.path.join(file_path, '..')).replace('\\', '/')
sys.path.append(lib_path)