У меня есть класс тестирования, в котором я устанавливаю свойство объектов как часть setUp()
, например:
myObj = model.MyModel.objects.filter(myfilters)
myObj.the_property = 1234
myObj.save()
Перед этими тремя строками setUp()
вызывает внешний метод, который создает объект, который я затем выбираю, используя указанный оператор filter
.
Все еще в setUp()
, я проверяю, что свойство было установлено правильно:
В обоих операторах печати я вижу, что myObj.the_property
было установлено на 1234
, как и ожидалось.
Затем, в test_
-методе, я делаю
obj = models.MyObj.objects.filter(myfilters)[0]
print(obj.the_property)
И на этот раз оператор print печатает None
.
Это должно быть сделано? Как я могу выполнить это задание один раз, непосредственно перед началом испытаний?
Я легко могу решить проблему, перенеся задание в тест, но тогда я повторюсь.
Я пытался найти проблему с моим кодом, но, похоже, эта проблема возникла где-то внутри Django. Я ...
... проверил значение id
. myfilters
каждый раз приноси мне один и тот же предмет. Я определенно смотрю на правильный объект.
... я использую только один test_
-метод. Никаких побочных эффектов от других тестов быть не может.
... переместил мои проверки внутри метода теста в самое начало теста, другого кода перед строками filter
и print
нет.
... вырезать / вставить назначение и save()
в начало моего test_
-метода (до строки filter
), и когда я это делаю, он работает как положено.