def test_voucher_set_detail_view(self, rf): voucher.VoucherSetFactory(count=10) vs2 = voucher.VoucherSetFactory(count=15) request = rf.get('/') response = views.VoucherSetDetailView.as_view()(request, pk=vs2.pk) # The view should only list vouchers for vs2 assert len(response.context_data['vouchers']) == 15 assert response.status_code == 200
def test_voucher_update_view_for_voucher_in_set(self): vs = voucher.VoucherSetFactory(count=10) v = vs.vouchers.first() view = views.VoucherUpdateView.as_view() request = RequestFactory().get('/') response = view(request, pk=v.pk) assert response.status_code == 302 assert response.url == reverse('dashboard:voucher-set-update', kwargs={'pk': vs.pk}) assert [(m.level_tag, str(m.message)) for m in get_messages(request)][0] == ( 'warning', "The voucher can only be edited as part of its set") data = { 'code': v.code, 'name': "New name", 'start_datetime': v.start_datetime, 'end_datetime': v.end_datetime, 'usage': v.usage, 'offers': [v.offers], } request = RequestFactory().post('/', data=data) response = view(request, pk=v.pk) assert response.status_code == 302 assert response.url == reverse('dashboard:voucher-set-update', kwargs={'pk': vs.pk}) assert [(m.level_tag, str(m.message)) for m in get_messages(request)][0] == ( 'warning', "The voucher can only be edited as part of its set") v.refresh_from_db() assert v.name != "New name"
def test_voucher_delete_view_for_voucher_in_set(self): vs = voucher.VoucherSetFactory(count=10) assert Voucher.objects.count() == 10 request = RequestFactory().post('/') response = views.VoucherDeleteView.as_view()(request, pk=vs.vouchers.first().pk) vs.refresh_from_db() assert vs.count == 9 # "count" is updated assert Voucher.objects.count() == 9 assert response.status_code == 302 assert response.url == reverse('dashboard:voucher-set-detail', kwargs={'pk': vs.pk}) assert [(m.level_tag, str(m.message)) for m in get_messages(request)][0] == ('warning', "Voucher deleted")
def test_voucher_set_delete_view(self): vs = voucher.VoucherSetFactory(count=10) assert VoucherSet.objects.count() == 1 assert Voucher.objects.count() == 10 request = RequestFactory().post('/') response = views.VoucherSetDeleteView.as_view()(request, pk=vs.pk) assert VoucherSet.objects.count() == 0 assert Voucher.objects.count() == 0 assert response.status_code == 302 assert response.url == reverse('dashboard:voucher-set-list') assert [(m.level_tag, str(m.message)) for m in get_messages(request)][0] == ('warning', "Voucher set deleted")