Example #1
0
 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
Example #2
0
    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"
Example #3
0
 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")
Example #4
0
 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")