def test_send_email_after_create_invoice(self, mock_save): mock_save.return_value = 'invoice.pdf' create_organizer_set() associate_events_organizers() create_sponsoring_set(auto_create_sponsors_set=True) event = Event.objects.filter(name='MyTest01').first() sponsoring = Sponsoring.objects.filter( sponsorcategory__event=event).first() # To complete the test we need, an event, an enabled sponsor, event_category self.client.login(username='******', password='******') data = { 'amount': '40000', 'document': StringIO('test'), } url = reverse('sponsoring_invoice_create', kwargs={'pk': sponsoring.pk}) response = self.client.post(url, data) redirect_url = reverse('sponsoring_detail', kwargs={'pk': sponsoring.pk}) self.assertRedirects(response, redirect_url) count = event.organizers.count() self.assertEqual(len(mail.outbox), count) self.assertEqual( mail.outbox[0].subject, render_to_string('mails/invoice_just_created_subject.txt'))
def test_sponsoring_state_to_invoiced_after_invoice_asscociation(self): create_sponsoring_set(auto_create_sponsors_set=True) event = Event.objects.filter(name='MyTest01').first() sponsoring = Sponsoring.objects.filter(sponsorcategory__event=event).first() self.assertEqual(sponsoring.state, SPONSOR_STATE_UNBILLED) create_sponsoring_invoice() sponsoring.refresh_from_db() self.assertEqual(sponsoring.state, SPONSOR_STATE_INVOICED)
def test_cant_access_sponsoring_list_if_not_event_organizer(self): create_sponsoring_set(auto_create_sponsors_set=True) event = Event.objects.filter(name='MyTest01').first() url = reverse('sponsoring_list', kwargs={'event_pk': event.pk}) self.client.login(username='******', password='******') response = self.client.get(url) self.assertContainsMessage(response, MUST_BE_EVENT_ORGANIZAER_MESSAGE)
def test_organizer_cant_close_sponsoring(self): create_sponsoring_set(auto_create_sponsors_set=True) event = Event.objects.filter(name='MyTest01').first() sponsoring = Sponsoring.objects.filter(sponsorcategory__event=event).first() self.assertFalse(sponsoring.close) url = reverse('sponsoring_set_close', kwargs={'pk': sponsoring.pk}) self.client.login(username='******', password='******') response = self.client.post(url) self.assertForbidden(response)
def test_organizer_cant_add_invoice(self): create_sponsoring_set(auto_create_sponsors_set=True) event = Event.objects.filter(name='MyTest01').first() sponsoring = Sponsoring.objects.filter(sponsorcategory__event=event).first() url = reverse('sponsoring_invoice_create', kwargs={'pk': sponsoring.pk}) self.client.login(username='******', password='******') data = { 'amount': '40000', 'document': StringIO('test'), } response = self.client.post(url, data) self.assertForbidden(response)
def test_super_user_can_add_invoice(self, mock_save): mock_save.return_value = 'invoice.pdf' create_sponsoring_set(auto_create_sponsors_set=True) event = Event.objects.filter(name='MyTest01').first() sponsoring = Sponsoring.objects.filter(sponsorcategory__event=event).first() url = reverse('sponsoring_invoice_create', kwargs={'pk': sponsoring.pk}) self.client.login(username='******', password='******') data = { 'amount': '40000', 'document': StringIO('test'), } response = self.client.post(url, data) redirect_url = reverse('sponsoring_detail', kwargs={'pk': sponsoring.pk}) self.assertRedirects(response, redirect_url) sponsoring.refresh_from_db() self.assertEqual(sponsoring.state, SPONSOR_STATE_INVOICED)
def test_super_organizer_can_close_sponsoring(self): # Test 'close' state from 'unbilled'. create_sponsoring_set(auto_create_sponsors_set=True) event = Event.objects.filter(name='MyTest01').first() sponsoring = Sponsoring.objects.filter(sponsorcategory__event=event).first() self.assertEqual(sponsoring.state, SPONSOR_STATE_UNBILLED) url = reverse('sponsoring_set_close', kwargs={'pk': sponsoring.pk}) self.client.login(username='******', password='******') response = self.client.post(url) redirect_url = reverse('sponsoring_detail', kwargs={'pk': sponsoring.pk}) self.assertRedirects(response, redirect_url, target_status_code=302) self.assertContainsMessage(response, SPONSORING_SUCCESSFULLY_CLOSE_MESSAGE) sponsoring.refresh_from_db() self.assertEqual(sponsoring.state, SPONSOR_STATE_CLOSED)