2015-12-01 2 views
1

Я бегу тестовый пример для этого methon в моем views.pyТестовый пример для просмотров питона

views.py

69 def delete(request, activityId): 
70  """Delete activity form database 
71   Return to templates if the owner does not match the user 
72   otherwise, return to actuser:activity 
73  """ 
74 
75  activity = ActivityViewModel() 
76  activity.get_by_id(activityId) 
77  userName = activity.db.owner 
78 
79  deleteThisActivity = activity.delete_from_actinbox(activity.db.owner, request.user.username) 
80 
81  if deleteThisActivity == True: 
82   return HttpResponseRedirect(reverse('actuser:activity', args=(userName,))) 
83  else: 
84   activityForm = ActivityForm(instance=activity.db) 
85   return render(request, 'activity/profile.html', { 
86    'message': "You Are Not Allowed To Delete This Activity", 
87    'activity': activity.db, 
88    'form': activityForm, 
89   })    

и это мое испытание, но я не уверен, как это будет работать ,

tests.py

def test_activity_delete(self): 
"""test activity that delete from database 
""" 
    delete_activity = create_activity(name="New Activity", userName="esutek") 
    response = self.client.get(reverse('activity:delete', args=(delete_activity.pk,))) 
    self.assertEqual(0, delete_activity) 

Я очень ценю вашу помощь.

+0

Что ваш вопрос? – DilithiumMatrix

+0

Привет, я просто хочу знать, как правильно пройти тест. Это то, что я сделал правильно? –

ответ

0

Что происходит, когда вы ваши тесты, с помощью:

self.assertIsInstance(response, HttpResponseRedirect)

как ваше утверждение?

Кроме того, вы хотите, чтобы проверить, что деятельность была фактически удалена:

val = Activity.get(delete_activity.pk) 
self.assertEqual(val, None) 
0

Постарайтесь, чтобы увидеть, когда эта вещь сломается; а затем напишите соответствующие утверждения.

  1. Если в базе данных нет записей, что это будет делать?
  2. Если запись не соответствует, пользователь, что он должен делать?
  3. Если запрашивается url и пользователь не вошел в систему, каков ожидаемый результат? и т.д.

Позволяет взять второй корпус; в этом сценарии вводятся следующие испытания:

  1. activity_id и пользователь, который не соответствует действию.
  2. Правильный результат должен быть ответом, который содержит слова «Вы не можете удалить эту операцию».

Опытный образец может быть:

def test_delete_with_invalid_user_for_activity(self): 
    c = self.client.login(username='another_user', password='sekret') 
    u = User.objects.get(username='another_user') 
    activity = Activity.objects.exclude(db.owner=u)[0] 

    response = c.get(reverse('activity:delete', args=(activity.pk,))) 
    self.assertEqual(response.status_code, 200) 
    self.assertEqual(response.context['message'], 
         'You Are Not Allowed To Delete This Activity') 
    c.logout() 
Смежные вопросы