Django TestCase не может редактировать объект
Я хочу протестировать мое представление объекта редактирования в Django.
Это мое мнение
class EditRoomView(View):
def get(self, request, room_id):
room = ConferenceRoom.objects.get(id=room_id)
return render(request, "edit_room.html", context={"room": room})
def post(self, request, room_id):
room = ConferenceRoom.objects.get(id=room_id)
name = request.POST.get("room-name")
capacity = request.POST.get("capacity")
capacity = int(capacity) if capacity else 0
projector = request.POST.get("projector") == "on"
if not name:
return render(
request,
"edit_room.html",
context={"error": "Podaj nazwę sali"},
)
if capacity <= 0:
return render(
request,
"edit_room.html",
context={"error": "Podaj dodatnią pojemność sali"},
)
try:
room.name = name
room.capacity = capacity
room.has_projector = projector
room.save()
except:
return render(
request,
"edit_room.html",
context={"error": "Sala o podanej nazwie już istnieje"},
)
return redirect("/")
и вот мой тест:
def test_edit_room_POST(self):
response = self.client.post(self.edit_room_url, {
'room_name': "test3",
'capacity': 5000,
'projector': False,
})
self.room1.refresh_from_db()
self.assertEquals(self.room1.name, "test3")
Я создал свой объект следующим образом:
@classmethod
def setUpTestData(cls):
cls.room1 = ConferenceRoom.objects.create(name="test", capacity = 1000, has_projector = True)
Я пытался сделать с refresh_from_db и без refresh_from_db, но я не могу редактировать свой объект в тесте. Редактирование объекта в представлении работает корректно.