如何避免Django的tests dir中的循环导入?

2024-10-06 10:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解决Django测试中的循环导入问题。你知道吗

我的目录结构是:

app/tests:
  test_user_level01.py
  test_user_level02.py

在每个文件中,我都有要测试的类get200s和get403s(在其他类中)。级别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

但这似乎给出了一个循环导入错误(缺少类)。你知道吗

提前谢谢你的帮助。你知道吗

另外,以下情况不起作用:

import app.tests.test_user_level01 as level01

或:

import tests.test_user_level01 as level01

或:

import .test_user_level01 as level01

Tags: django用户frompytestimport目录app
1条回答
网友
1楼 · 发布于 2024-10-06 10:25:44

将公共代码,即在test_user_level01.pytest_user_level02.py中使用的代码,移动到一个单独的文件,例如app/tests/common.py,然后从那里导入。别忘了让app/tests成为一个包(即在dir中创建__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

相关问题 更多 >