LINUX.ORG.RU

Проблема с import в python при написании unittest'ов

 


0

1

Заранее прошу прощение за какие-то пробелы в знаниях по Python. Мне достался в “наследство” некоторый немалый по размерам проект. Я не могу оценить качество кода в нём (хотя пишу уже на python около 3х месяцев) и насколько он соответствует pythonic way, но это и не суть сейчас. Структура папок проекта примерно такая (не ругайте сильно если что не так):

projectname
—somefolder1
—somefolder2
——somesubfolder
———__init__.py
———module1.py
———module2.py
—tests
——testsomesubfolder1
———__init__.py
———recipy1.py
—project.py
Я использую среду разработки PyCharm. Для запуска у меня создана конфигурация python в которой задано:

Script: D:\project\projectname\project.py … Working directory: D:\project\projectname

Я хочу покрыть некоторые части этого проекта unittest'ами. Например, мне необходимо написать тест в recipy1.py для некоторого класса из somefolder1/somesubfolder/module1.py Как мне правильно сделать import для module1 в recipy1:

# recipy1.py
# как написать import для module1?
import unittest
    class Test1(unittest.TestCase):
        def test_testtest(self):
            self.assertEquals(100,100)
        def test_fakeclass(self):
            obj = module1.SomeClass( 10 )
            self.assertEquals(10, obj.GetValue() )
    if __name__ == '__main__':
        unittest.main()

чтобы у меня в recipy1.py был доступен некоторый класс SomeClass из module1.py:

# module1.py
class SomeClass():
        def __init__(self, value):
            self.value = value
        def GetValue(self):
            return self.value

Вообще правильно ли я делаю, что пишу тесты в отдельной папке? Во многих статья и литературе это видел? Имеет ли значение Working directory, указанная в конфигурации python для запуска проекта (запуска project.py). Какой Working directory мне необхождимо указать для тестов?

from projectname.somefolder.subfolder.module import SomeClass
power
()

D:\project\projectname

на винфак ещё не предлагали?

lazyklimm ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.