Как исправить "функцию setUp () теста Django, не создающую пользователей django"? - PullRequest
0 голосов
/ 04 июля 2019

Я делаю тесты Django.Теперь у меня проблема в том, что пользователь, созданный в тесте django, не отображается в базе данных, созданной для теста.считать мою базу данных именем db.

from django.contrib.auth.models import User,AnonymousUser
from django.test import TestCase,LiveServerTestCase
from django.db import connection


class machinelist(TestCase):

    def setUp(self):

        self.user=User.objects.create_user(username="vishnu***",email="vishnu@clartrum.com",password="vishnu@12345")
        print self.user.username
        db_name = connection.settings_dict['NAME']
        print db_name

        t=raw_input("PAUSE")

    def tearDown(self):
        print 'd'

    def test1(self):#view function
        print "2"

На выходе будут напечатаны имя пользователя vishnu*** и db_name как test_db.Но когда вы наблюдаете за базой данных, данных нет.

В коде, когда выполняется raw_input, я войду на сервер mysql и проверим, что test_db создано успешно, а также djangoстолы.Но когда я проверил таблицу auth_user, в ней нет данных.

Я использую django 1.11.20 и mysql 5.6.33.

Почему пользователь не обновляет таблицу базы данных?

1 Ответ

0 голосов
/ 04 июля 2019

Тесты внутри классов TestCase выполняются в транзакции, которая откатывается в конце каждого теста.Поскольку уровень изоляции транзакции MySQL по умолчанию - REPEATABLE READ, данные, вставленные в транзакцию, не видны извне.

Однако я не уверен, почему вы хотите проверить данные извне теста.Вы можете распечатать или заявить об этом из самого теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...