from django.test import TestCase from input.utils.testing import request class ViewTestCase(TestCase): def test_index(self): request(self, 'index') def test_extern(self): request(self, 'extern') @staticmethod def get_step_data(step, data): return {'extern_view-current_step': step, **data} @classmethod def get_first_step_data(cls, choice): return cls.get_step_data(0, { '0-realname': 'Test', '0-email': 'test@example.com', '0-choice': choice, '0-check': True, }) def helper_extern(self, choice, text, data): first_step_data = self.get_first_step_data(choice) response = request(self, 'extern', data=first_step_data) self.assertContains(response, text) second_step_data = self.get_step_data(1, data) response = request(self, 'extern', data=second_step_data) self.assertContains(response, 'Deine Anfrage wurde gesendet.') def test_extern_first_steps(self): types = [ ('BIB', 'Bibliotheksausweis'), ('ELIT', 'Online-Ressource'), ('MAIL', 'Mailadresse beantragen'), ('IFG', 'gewonnenen Informationen'), ('LIT', 'Literatur verwenden'), ('LIST', 'Mailingliste beantragen'), ('TRAV', 'Transportmittel'), ('SOFT', 'Lizenz'), ('VIS', 'DIN 5008'), ] for choice, text in types: with self.subTest(type=choice): self.client.session.clear() data = self.get_first_step_data(choice) response = request(self, 'extern', data=data) self.assertContains(response, text) def test_extern_travel(self): self.helper_extern('TRAV', 'Transportmittel', { 'project_name': 'Test', 'transport': 'BAHN', 'travelcost': 10, 'checkin': '2025-01-01', 'checkout': '2025-01-02', 'hotel': 'TRUE', 'notes': '', }) def test_extern_lit(self): self.helper_extern('LIT', 'Literatur verwenden', { 'cost': 20, 'info': 'Test', 'source': 'Test', 'notes': '', 'selfbuy': 'TRUE', 'selfbuy_data': 'NONE', 'selfbuy_give_data': True, 'check': True, }) def test_extern_bib(self): self.helper_extern('BIB', 'Bibliotheksausweis', { 'cost': 20, 'library': 'Test', 'duration': 'Test', 'notes': '', })