Я очень новичок в тестировании модулей и, вероятно, что-то не так, но когда я имитирую пост для обновления модели через бэкэнд администратора, похоже, мой метод save_model
в моей AdminForm не является называется. Я пытаюсь проверить этот метод - что я делаю неправильно?Django - Unit Testing AdminForm
Мой второй, менее актуальный вопрос в целом, как я могу убедиться, что метод вызывается, когда я использую модульное тестирование? Есть ли способ перечислить все методы, которые были удалены?
Ниже приведено мое тестовое задание. В моем методе save_model
в моей AdminForm для этой модели я установил атрибут foobar
этой модели для имени пользователя текущего пользователя. Ниже мой тест:
self.client = Client()
self.client.login(username='username',password='password')
# self.dict is a dictionary of field names and values for mymodel to be updated
response = self.client.post('/admin/myapp/mymodel/%d/' % self.mymodel.id, self.dict)
self.assertEqual(response.status_code,200) # passes
self.assertEqual(self.mymodel.foobar,'username') # fails
self.client.logout()
Это терпит неудачу, потому что он говорит, что self.mymodel.foobar
пустая строка. Это было то, что должно было быть до обновления. В self.dict
не передается значение foobar, но мой метод save_model
предназначен для установки его самостоятельно, когда происходит обновление. Также стоит отметить, что мой код работает правильно, и save_model
, похоже, работает нормально, просто мой тест не работает. Поскольку я являюсь полным noob в TDD, я уверен, что проблема связана с моим тестом, а не с моим кодом. Мысли?
имеет смысл. Я в конечном итоге пошел на другой подход, поэтому вопрос немного спорный, но спасибо за вход в любом случае. – Kvass