小编Mac*_*iek的帖子

在 pytest-django 中每次测试后都会清理数据库

我正在努力实现什么目标。
我正在 Django 项目中测试 REST API。我想创建具有相关测试函数的测试类(以下每个测试函数都依赖于前一个测试函数) - 第一次失败意味着全部失败。在第一个测试函数中,我使用“post”请求创建了一个对象。在下一个测试用例中,我想使用“get”请求检查该对象是否确实存在。

它是如何工作的
看起来 Django-pytest 在每次测试后都会清除数据库中的所有记录。
pytest文档中提到:https://pytest-django.readthedocs.io/en/latest/helpers.html#pytest-mark-django-db-request-database-access
有什么办法可以改变这个吗?

我的代码:
我的conftest.py

import pytest


@pytest.fixture(scope='session')
def django_db_setup():
    from django.conf import settings
    settings.DATABASES['default'] = {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'db_name.sqlite3',
    }


@pytest.fixture
def object_data():
    return {"some keys": "some values"}


@pytest.fixture
def object_name():
    return "some name"
Run Code Online (Sandbox Code Playgroud)

我的tests.py

import pytest

from rest_framework.test import APIClient
from rest_framework import status


@pytest.mark.django_db
class TestAPI:
    def setup(self):
        self.client = APIClient()

    def test_create_object(self, object_data, object_name):
        post_response = self.client.post("/api/object/", data=object_data, format="json") …
Run Code Online (Sandbox Code Playgroud)

python django-rest-framework pytest-django

2
推荐指数
2
解决办法
8012
查看次数

Python 3.7 - Windows 10 上的 PIP 升级错误

我尝试使用以下命令在控制台中更新 PIP(Windows 10,Python 3.7.1):

python37 -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

这是我每次尝试更新时遇到的错误:

>Exception:
Traceback (most recent call last):
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\req\req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\req\req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\wheel.py", line 462, in move_wheel_files
    generated.extend(maker.make(spec))
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\_vendor\distlib\scripts.py", line 372, in make
    self._make_script(entry, filenames, options=options)
  File "C:\Users\5gyblo\AppData\Roaming\Python\Python37\site-packages\pip\_vendor\distlib\scripts.py", line 276, in _make_script
    self._write_script(scriptnames, …
Run Code Online (Sandbox Code Playgroud)

python windows installation pip python-3.x

1
推荐指数
1
解决办法
4943
查看次数