如何避免在Django的测试目录中循环导入?

时间:2019-01-17 22:00:07

标签: python django testing import

我正在尝试解决Django测试遇到的循环导入问题。

我的目录结构是:

app/tests:
  test_user_level01.py
  test_user_level02.py

在每个文件中,我都有要测试的类,分别为200s和403s(以及其他类)。级别2的用户应具有级别1用户拥有的所有get 200,级别1的用户应具有级别2用户拥有的所有get 403。因此,我有一个循环导入。

通常,我会通过绝对导入来解决此问题,但我不知道那会是什么。

我尝试过:

"""test_user_level01.py"""
from . import test_user_level02


"""test_user_level02.py"""
from . import test_user_level01

但这似乎会导致循环导入错误(缺少类)。

提前感谢您的帮助。

PS。以下内容无效:

import app.tests.test_user_level01 as level01

OR:

import tests.test_user_level01 as level01

OR:

import .test_user_level01 as level01

1 个答案:

答案 0 :(得分:0)

将通用代码(即在test_user_level01.pytest_user_level02.py中使用的代码)移动到单独的文件中,例如app/tests/common.py,然后从那里导入。别忘了将app/tests打包成一个包(即在目录中创建__init__.py文件)。

"""test_user_level01.py"""
from app.tests.common import some_common_class_name


"""test_user_level02.py"""
from app.tests.common import some_common_class_name