示例#1
0
 def test_invalid_state(self):
     Einstellung.objects.create(name='bestellung_erlaubt', wert='0')
     c = login_veranstalter(self.v)
     self.v.status = Veranstaltung.STATUS_GEDRUCKT
     self.v.save()
     response = c.get('/veranstalter/bestellung')
     self.assertEqual(302, response.status_code)
 def test_post_kommentar(self):
     c = login_veranstalter(self.v)
     self.s.sichtbarkeit = 'VER'
     self.s.save()
     c.post('/veranstalter/', {'veranstaltung': self.v, 'autor': self.p.id, 'text': 'Toll!'})
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.kommentar.text, 'Toll!')
 def test_get_kommentar(self):
     self.s.sichtbarkeit = 'VER'
     self.s.save()
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertTrue(isinstance(ctx['comment_form'], KommentarModelForm))
 def test_get_kommentar(self):
     self.s.sichtbarkeit = 'VER'
     self.s.save()
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertTrue(isinstance(ctx['comment_form'], KommentarModelForm))
 def test_get_bestellung(self):
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertTrue(isinstance(ctx['order_form'], BestellungModelForm))
     self.assertNotContains(response, 'Information zur Vollerhebung')
     self.assertContains(response, 'Evaluieren:')
 def test_get_bestellung(self):
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertTrue(isinstance(ctx['order_form'], BestellungModelForm))
     self.assertNotContains(response,'Information zur Vollerhebung')
     self.assertContains(response,'Evaluieren:')
示例#7
0
 def test_missing_sessionid(self):
     c = login_veranstalter(self.v)
     del c.cookies['sessionid']
     response = c.post(
         '/veranstalter/bestellung', {
             'evaluation-evaluieren': True,
             "veranstalter_wizard-current_step": "evaluation"
         })
     self.assertEqual(response.status_code, 404)
 def test_nothing(self):
     Einstellung.objects.create(name='bestellung_erlaubt', wert='0')
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertEqual(ctx['veranstaltung'], self.v)
     with self.assertRaises(KeyError):
         ctx['order_form']
     with self.assertRaises(KeyError):
         ctx['comment_form']
示例#9
0
 def test_nothing(self):
     Einstellung.objects.create(name='bestellung_erlaubt', wert='0')
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertEqual(ctx['veranstaltung'], self.v)
     with self.assertRaises(KeyError):
         ctx['order_form']
     with self.assertRaises(KeyError):
         ctx['comment_form']
 def test_post_kommentar(self):
     c = login_veranstalter(self.v)
     self.s.sichtbarkeit = 'VER'
     self.s.save()
     c.post('/veranstalter/', {
         'veranstaltung': self.v,
         'autor': self.p.id,
         'text': 'Toll!'
     })
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.kommentar.text, 'Toll!')
 def test_get_bestellung_vollerhebung(self):
     """Teste ob der Hinweis zur Vollerhebung angezeigt wird und ein Austragen
     nicht möglich ist"""
     self.s.vollerhebung = True
     self.s.save()
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertTrue(isinstance(ctx['order_form'], BestellungModelForm))
     self.assertContains(response, 'Information zur Vollerhebung')
     self.assertNotContains(response, 'Evaluieren:')
示例#12
0
 def test_get_bestellung_vollerhebung(self):
     """Teste ob der Hinweis zur Vollerhebung angezeigt wird und ein Austragen
     nicht möglich ist"""
     self.s.vollerhebung = True
     self.s.save()
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     response = c.get('/veranstalter/')
     ctx = response.context
     self.assertTrue(isinstance(ctx['order_form'], BestellungModelForm))
     self.assertContains(response,'Information zur Vollerhebung')
     self.assertNotContains(response,'Evaluieren:')
 def test_post_bestellung(self):
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     c.post(
         '/veranstalter/', {
             'anzahl': 42,
             'sprache': 'de',
             'typ': 'vu',
             'verantwortlich': self.p.id
         })
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.anzahl, 42)
示例#14
0
    def test_post_bestellung_without_excercises(self):
        Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
        c = login_veranstalter(self.v_wo_excercises)
        c.post(
            '/veranstalter/bestellung', {
                'evaluation-evaluieren': True,
                "veranstalter_wizard-current_step": "evaluation"
            })

        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step": "basisdaten",
                "basisdaten-typ": "v",
                "basisdaten-anzahl": 11,
                "basisdaten-sprache": "de",
                "basisdaten-verantwortlich": self.p3.id,
                "basisdaten-ergebnis_empfaenger": self.p3.id,
                "save": "Speichern"
            })
        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step":
                "verantwortlicher_address",
                "verantwortlicher_address-email":
                "*****@*****.**",
                "verantwortlicher_address-anschrift":
                "Alexanderstrasse 8, 64287 Darmstadt"
            })
        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step": "freie_fragen",
                "freie_fragen-freifrage1": "Ist das die erste Frage?",
                "freie_fragen-freifrage2": "Ist das die zweite Frage?"
            })
        response_fourth_step = c.post(
            '/veranstalter/bestellung', {
                'veroeffentlichen-veroeffentlichen': True,
                "veranstalter_wizard-current_step": "veroeffentlichen"
            })
        self.assertEqual(Tutor.objects.count(), 0)

        self.v.refresh_from_db()
        self.p.refresh_from_db()

        self.assertTemplateUsed(response_fourth_step,
                                "formtools/wizard/zusammenfassung.html")
        self.assertEqual(Tutor.objects.count(), 0)
示例#15
0
    def test_post_access_bestellung(self):
        Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
        self.v.status = Veranstaltung.STATUS_BESTELLUNG_LIEGT_VOR
        self.v.save()

        c = login_veranstalter(self.v)

        response_firststep = c.post(
            '/veranstalter/bestellung', {
                'evaluation-evaluieren': True,
                "veranstalter_wizard-current_step": "evaluation"
            })

        self.v.refresh_from_db()
        self.assertTrue(self.v.evaluieren)
        self.assertTemplateUsed(response_firststep,
                                "formtools/wizard/basisdaten.html")
示例#16
0
 def test_post_bestellung_vollerhebung(self):
     self.s.vollerhebung = True
     self.s.save()
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     # Post mit fehlenden Daten ist nicht valide
     c.post('/veranstalter/', {'anzahl': 42})
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.anzahl, None)
     # Post mit allen Daten ist valide
     c.post('/veranstalter/', {'anzahl': 42, 'sprache': 'de',
                               'typ': 'vu', 
                               'verantwortlich': self.p.id, 
                               'ergebnis_empfaenger': {self.p.id},
                               }
            )
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.anzahl, 42)
 def test_post_bestellung_vollerhebung(self):
     self.s.vollerhebung = True
     self.s.save()
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     # Post mit fehlenden Daten ist nicht valide
     c.post('/veranstalter/', {'anzahl': 42})
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.anzahl, None)
     # Post mit allen Daten ist valide
     c.post(
         '/veranstalter/', {
             'anzahl': 42,
             'sprache': 'de',
             'typ': 'vu',
             'verantwortlich': self.p.id,
             'ergebnis_empfaenger': {self.p.id},
         })
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.anzahl, 42)
示例#18
0
    def test_post_bestellung_vollerhebung(self):
        self.s.vollerhebung = True
        self.s.save()
        Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
        c = login_veranstalter(self.v)

        response_vollerhebung = c.get('/veranstalter/bestellung')

        self.assertContains(response_vollerhebung,
                            "<h2>Information zur Vollerhebung</h2>")

        response_firststep = c.post(
            '/veranstalter/bestellung', {
                "evaluation-evaluieren": True,
                "veranstalter_wizard-current_step": "evaluation"
            })

        self.v.refresh_from_db()
        self.assertTrue(self.v.evaluieren)
        self.assertTemplateUsed(response_firststep,
                                "formtools/wizard/basisdaten.html")
示例#19
0
    def test_post_keine_evaluation(self):
        Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
        c = login_veranstalter(self.v)
        response_firststep = c.post(
            '/veranstalter/bestellung', {
                "evaluation-evaluieren": False,
                "veranstalter_wizard-current_step": "evaluation"
            })
        self.assertTemplateUsed(response_firststep,
                                "formtools/wizard/zusammenfassung.html")
        response_second = c.post(
            '/veranstalter/bestellung',
            {"veranstalter_wizard-current_step": "zusammenfassung"})

        self.v.refresh_from_db()
        self.assertTemplateUsed(response_second,
                                "formtools/wizard/bestellung_done.html")
        self.assertFalse(self.v.evaluieren)
        self.assertEqual(self.v.status, Veranstaltung.STATUS_KEINE_EVALUATION)
        self.assertTemplateUsed(response_firststep,
                                "formtools/wizard/zusammenfassung.html")
示例#20
0
    def test_status_changes(self):
        Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
        c = login_veranstalter(self.v)

        c.post(
            '/veranstalter/bestellung', {
                "evaluation-evaluieren": False,
                "veranstalter_wizard-current_step": "evaluation"
            })

        c.post('/veranstalter/bestellung',
               {"veranstalter_wizard-current_step": "zusammenfassung"})

        self.v.refresh_from_db()
        self.assertFalse(self.v.evaluieren)
        self.assertEqual(self.v.status, Veranstaltung.STATUS_KEINE_EVALUATION)

        c.post(
            '/veranstalter/bestellung', {
                'evaluation-evaluieren': True,
                "veranstalter_wizard-current_step": "evaluation"
            })

        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step": "basisdaten",
                "basisdaten-typ": "vu",
                "basisdaten-anzahl": 22,
                "basisdaten-sprache": "de",
                "basisdaten-verantwortlich": self.p.id,
                "basisdaten-ergebnis_empfaenger": [self.p.id, self.p2.id],
                "basisdaten-auswertungstermin": '2011-01-01',
                "save": "Speichern"
            })

        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step": "primaerdozent",
                "primaerdozent-primaerdozent": self.p.id
            })

        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step":
                "verantwortlicher_address",
                "verantwortlicher_address-email":
                "*****@*****.**",
                "verantwortlicher_address-anschrift":
                "Alexanderstrasse 8, 64287 Darmstadt"
            })

        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step": "freie_fragen",
                "freie_fragen-freifrage1": "Ist das die erste Frage?",
                "freie_fragen-freifrage2": "Ist das die zweite Frage?"
            })

        c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step":
                "tutoren",
                "tutoren-csv_tutoren":
                "Müller,Max,[email protected],Bemerkung1\nMustermann,Erika,[email protected]"
            })

        c.post(
            '/veranstalter/bestellung', {
                'veroeffentlichen-veroeffentlichen': True,
                "veranstalter_wizard-current_step": "veroeffentlichen"
            })

        c.post('/veranstalter/bestellung',
               {"veranstalter_wizard-current_step": "zusammenfassung"})

        self.v.refresh_from_db()
        self.p.refresh_from_db()

        self.assertTrue(self.v.evaluieren)
        self.assertEqual(self.v.status,
                         Veranstaltung.STATUS_BESTELLUNG_LIEGT_VOR)

        c.post(
            '/veranstalter/bestellung', {
                "evaluation-evaluieren": False,
                "veranstalter_wizard-current_step": "evaluation"
            })

        c.post('/veranstalter/bestellung',
               {"veranstalter_wizard-current_step": "zusammenfassung"})

        self.v.refresh_from_db()
        self.assertFalse(self.v.evaluieren)
        self.assertEqual(self.v.status, Veranstaltung.STATUS_KEINE_EVALUATION)
示例#21
0
    def test_post_bestellung_ein_ergebnis_empfaenger(self):
        Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
        c = login_veranstalter(self.v)
        response_firststep = c.post(
            '/veranstalter/bestellung', {
                'evaluation-evaluieren': True,
                "veranstalter_wizard-current_step": "evaluation"
            })

        self.assertTemplateUsed(response_firststep,
                                "formtools/wizard/basisdaten.html")

        response_secondstep = c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step": "basisdaten",
                "basisdaten-typ": "vu",
                "basisdaten-anzahl": 22,
                "basisdaten-sprache": "de",
                "basisdaten-verantwortlich": self.p.id,
                "basisdaten-ergebnis_empfaenger": self.p2.id,
                "basisdaten-auswertungstermin": '2011-01-01',
                "save": "Speichern"
            })

        self.assertTemplateUsed(response_secondstep,
                                "formtools/wizard/address.html")

        response_fourth_step = c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step":
                "verantwortlicher_address",
                "verantwortlicher_address-email":
                "*****@*****.**",
                "verantwortlicher_address-anschrift":
                "Alexanderstrasse 8, 64287 Darmstadt"
            })

        self.assertTemplateUsed(response_fourth_step,
                                "formtools/wizard/freiefragen.html")

        response_fifth_step = c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step": "freie_fragen",
                "freie_fragen-freifrage1": "Ist das die erste Frage?",
                "freie_fragen-freifrage2": "Ist das die zweite Frage?"
            })

        self.assertTemplateUsed(response_fifth_step,
                                "formtools/wizard/tutoren.html")

        self.assertEqual(Tutor.objects.count(), 0)
        response_sixth_step = c.post(
            '/veranstalter/bestellung', {
                "veranstalter_wizard-current_step":
                "tutoren",
                "tutoren-csv_tutoren":
                "Müller,Max,[email protected],Bemerkung1\nMustermann,Erika,[email protected]"
            })
        self.assertTemplateUsed(response_sixth_step,
                                "formtools/wizard/veroeffentlichen.html")

        response_seventh_step = c.post(
            '/veranstalter/bestellung', {
                'veroeffentlichen-veroeffentlichen': True,
                "veranstalter_wizard-current_step": "veroeffentlichen"
            })

        self.assertTemplateUsed(response_seventh_step,
                                "formtools/wizard/zusammenfassung.html")

        response_eight_step = c.post(
            '/veranstalter/bestellung',
            {"veranstalter_wizard-current_step": "zusammenfassung"})

        self.v.refresh_from_db()
        self.p.refresh_from_db()

        self.assertTemplateUsed(response_eight_step,
                                "formtools/wizard/bestellung_done.html")
        self.assertTrue(self.v.evaluieren)
        self.assertEqual(self.v.primaerdozent, self.p2)
        self.assertEqual(Tutor.objects.count(), 2)
        self.assertEqual(self.p.email, "*****@*****.**")
示例#22
0
 def test_post_bestellung(self):
     Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
     c = login_veranstalter(self.v)
     c.post('/veranstalter/', {'anzahl': 42, 'sprache': 'de', 'typ': 'vu', 'verantwortlich': self.p.id})
     self.v = Veranstaltung.objects.get(id=self.v.id)
     self.assertEqual(self.v.anzahl, 42)