изменения django в tests.py не отражаются в models.py - PullRequest
0 голосов
/ 29 июля 2011

У меня повторяющаяся проблема при тестировании моего приложения. всякий раз, когда я изменяю или создаю () любой объект из tests.py, эти изменения не могут быть найдены в models.py - и это происходит в том же тесте .

псевдокод:

tests.py:
def test_something(self):
    ...
    Norm.objects.create(...)
    self.player_a.print_all_norms()
    ...


models.py:
def print_all_norms():
    a =  Norm.objects.all()
    print a 
    # prints [], the Norm object created in tests.py wasn't found
    return

EDIT: Уточнение - я не могу найти объект в тесте, который его создал. Внутри test_something () создается объект Norm, который вызывает функцию из models.py. Когда функция пытается найти ранее созданный объект с помощью Norm.objects.all (), происходит сбой, тест возобновляется, а затем тест завершается неудачей.

1 Ответ

1 голос
/ 29 июля 2011

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

Не обнаруживается ли объект в тесте или когда вы пытаетесь найти его после выполнения теста?

Если он не обнаружил его в тесте, попробуйте убедиться, что у вас есть необходимые разрешения (как указано в документации по тестам БД)

Если вы хотите загружать заранее определенные значения в базу данных на некоторой согласованной основе, вне тестирования вы можете использовать fixtures

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