def test_post(self): self.client.login(username="******", password="******") get_veranstaltung("v") s, v1 = get_veranstaltung("vu") v1.anzahl = 42 v1.sprache = "de" v1.save() v1.veranstalter.add(Person.objects.create(vorname="Pe", nachname="Ter", email="*****@*****.**")) v1.veranstalter.add(Person.objects.create(vorname="Pa", nachname="Ul", email="*****@*****.**")) mv = Mailvorlage.objects.create(subject="Testmail", body="Dies ist eine Testmail.") Einstellung.objects.create(name="bestellung_erlaubt", wert="0") params = {"uebernehmen": "x", "recipient": "cur_sem_missing_order", "subject": "abc", "body": "xyz"} # kein Semester angegeben response = self.client.post(self.path, params, **{"REMOTE_USER": "******"}) self.assertEqual(response.status_code, 302) self.assertTrue(response["Location"].endswith("/intern/sendmail/")) # Vorlage übernehmen; Vorlage nicht angegeben params["semester"] = s.semester response = self.client.post(self.path, params, **{"REMOTE_USER": "******"}) self.assertEqual(response.status_code, 302) self.assertTrue(response["Location"].endswith("/intern/sendmail/")) # Vorlage übernehmen; Vorlage ist angegeben params["vorlage"] = mv.id response = self.client.post(self.path, params, **{"REMOTE_USER": "******"}) self.assertEqual(response.templates[0].name, "intern/sendmail.html") self.assertEqual(response.context["subject"], mv.subject) self.assertEqual(response.context["body"], mv.body) # Vorschau; Empfänger ist auf Veranstalter mit fehlenden Bestellungen eingestellt del params["uebernehmen"] params["vorschau"] = "x" response = self.client.post(self.path, params, **{"REMOTE_USER": "******"}) self.assertIn("intern/sendmail_preview.html", (t.name for t in response.templates)) self.assertTrue(response.context["vorschau"]) # Vorschau; Empfänger ist auf Veranstaltungen mit Ergebnissen eingestellt params["recipient"] = "cur_sem_results" response = self.client.post(self.path, params, **{"REMOTE_USER": "******"}) self.assertIn("intern/sendmail_preview.html", (t.name for t in response.templates)) self.assertTrue(response.context["vorschau"]) # Senden del params["vorschau"] params["senden"] = "x" params["recipient"] = "cur_sem_all" del params["vorlage"] response = self.client.post(self.path, params, **{"REMOTE_USER": "******"}) self.assertEqual(response.status_code, 302) self.assertTrue(response["Location"], tests.LOGIN_URL) # Hier wird in Eclipse ein Fehler angezeigt; mail.outbox gibt es während der Testläufe # aber wirklich (siehe https://docs.djangoproject.com/en/1.4/topics/testing/#email-services) self.assertEqual(len(mail.outbox), 2)
def setUp(self): self.s, self.vu = get_veranstaltung('vu') self.s, self.v = get_veranstaltung('v') self.eu = Ergebnis2009.objects.create(veranstaltung=self.vu, anzahl=5, v_gesamt=1, v_gesamt_count=2, ue_gesamt=2, ue_gesamt_count=3, v_feedbackpreis=3, v_feedbackpreis_count=4) self.e = Ergebnis2009.objects.create(veranstaltung=self.v, anzahl=5, v_gesamt=1, v_gesamt_count=2, ue_gesamt=2, ue_gesamt_count=3, v_feedbackpreis=3, v_feedbackpreis_count=4) self.parts_vl = [[None, 0], [1, 2]] + [[None, 0]] * 3 self.parts_ue = [[2, 3]] + [[None, 0]] * 3 self.parts_ue_empty = [[None, 0]] * 4 self.parts_hidden = [[3, 4], [None, 0]]
def setUp(self): self.p1 = Person.objects.create(vorname='Brian', nachname='Cohen') self.p2 = Person.objects.create(vorname='Bud', nachname='Spencer', email='[email protected]') self.p3 = Person.objects.create(vorname='Test', nachname='Tester', email='[email protected]', geschlecht='m') self.p4 = Person.objects.create(vorname='Test Zweitname', nachname='Tester') self.s1, self.v1 = get_veranstaltung('v') self.v1.veranstalter = [self.p1] self.s2 = Semester.objects.get_or_create(semester=20115, fragebogen='2009', sichtbarkeit='ADM')[0] default_params = { 'semester': self.s2, 'grundstudium': False, 'evaluieren': True, 'lv_nr': '321' + 'v' } self.v2 = Veranstaltung.objects.create(typ='v', name='CMS', **default_params) self.v2.veranstalter = [self.p4]
def setUp(self): self.s, self.v = get_veranstaltung('vu') self.f = [] self.f.append(Fragebogen2009.objects.create(veranstaltung=self.v)) self.f.append(Fragebogen2009.objects.create(veranstaltung=self.v)) self.f.append( Fragebogen2009.objects.create(veranstaltung=self.v, ue_gesamt=1, ue_e=2, ue_f=3, ue_a=4, ue_b=5, ue_c=1, ue_d=2, ue_g=3, ue_i=4, ue_j=5, ue_k=1)) self.f.append( Fragebogen2009.objects.create(veranstaltung=self.v, ue_gesamt=2, ue_e=3, ue_f=4, ue_a=5, ue_b=1, ue_c=2, ue_d=3, ue_g=4, ue_i=5, ue_j=1, ue_k=2)) # Evasys gibt auch den Wert int(0) zurück # siehe: https://www.fachschaft.informatik.tu-darmstadt.de/trac/fs/ticket/1192 self.f2012 = [] self.f2012.append( Fragebogen2012.objects.create(veranstaltung=self.v, ue_7=1, ue_9=1, ue_10=1)) self.f2012.append( Fragebogen2012.objects.create(veranstaltung=self.v, ue_7=2, ue_9=2, ue_10=2)) self.f2012.append( Fragebogen2012.objects.create(veranstaltung=self.v, ue_7=0, ue_9=2, ue_10=2)) self.f2012.append( Fragebogen2012.objects.create(veranstaltung=self.v, ue_7=2, ue_9=0, ue_10=3)) self.f2012.append( Fragebogen2012.objects.create(veranstaltung=self.v, ue_7=3, ue_9=3, ue_10=0))
def setUp(self): self.s, self.v = get_veranstaltung('vu') self.f = [] self.f.append(Fragebogen2009.objects.create(veranstaltung=self.v)) self.f.append(Fragebogen2009.objects.create(veranstaltung=self.v)) self.f.append(Fragebogen2009.objects.create(veranstaltung=self.v, ue_gesamt=1, ue_e=2, ue_f=3, ue_a=4, ue_b=5, ue_c=1, ue_d=2, ue_g=3, ue_i=4, ue_j=5, ue_k=1)) self.f.append(Fragebogen2009.objects.create(veranstaltung=self.v, ue_gesamt=2, ue_e=3, ue_f=4, ue_a=5, ue_b=1, ue_c=2, ue_d=3, ue_g=4, ue_i=5, ue_j=1, ue_k=2)) # Evasys gibt auch den Wert int(0) zurück # siehe: https://www.fachschaft.informatik.tu-darmstadt.de/trac/fs/ticket/1192 self.f2012 = [] self.f2012.append(Fragebogen2012.objects.create(veranstaltung=self.v, ue_7= 1, ue_9=1, ue_10=1)) self.f2012.append(Fragebogen2012.objects.create(veranstaltung=self.v, ue_7= 2, ue_9=2, ue_10=2)) self.f2012.append(Fragebogen2012.objects.create(veranstaltung=self.v, ue_7= 0, ue_9=2, ue_10=2)) self.f2012.append(Fragebogen2012.objects.create(veranstaltung=self.v, ue_7= 2, ue_9=0, ue_10=3)) self.f2012.append(Fragebogen2012.objects.create(veranstaltung=self.v, ue_7= 3, ue_9=3, ue_10=0))
def setUp(self): self.b = VeranstalterBackend() self.u = User.objects.create_user(username=settings.USERNAME_VERANSTALTER) self.p = Person.objects.create(vorname='Brian', nachname='Cohen') self.s, self.v = get_veranstaltung('v') self.v.access_token = '0123456789abcdef' self.v.veranstalter.add(self.p) self.v.save()
def setUp(self): self.s, self.v = get_veranstaltung('v') self.p = [] self.p.append(Person.objects.create(vorname='Brian', nachname='Cohen')) self.p.append(Person.objects.create(vorname='The', nachname='Crowd')) self.k = Kommentar.objects.create(veranstaltung=self.v, autor=self.p[0], text='You are all individuals!')
def setUp(self): self.time = now() self.s, self.v = get_veranstaltung('v') self.log = Log.objects.create(veranstaltung=self.v, timestamp=self.time, status=Veranstaltung.STATUS_GEDRUCKT, verursacher='Person', interface='Django Admin')
def setUp(self): self.b = VeranstalterBackend() self.u = User.objects.create_user( username=settings.USERNAME_VERANSTALTER) self.p = Person.objects.create(vorname='Brian', nachname='Cohen') self.s, self.v = get_veranstaltung('v') self.v.access_token = '0123456789abcdef' self.v.veranstalter.add(self.p) self.v.save()
def setUp(self): super(InternVvEditUsersTest, self).setUp() self.path = '/intern/import_vv_edit_users/' self.p0 = Person.objects.create(vorname='Je', nachname='Mand') self.p1 = Person.objects.create(vorname='Auch Je', nachname='Mand') Person.objects.create(vorname='Je', nachname='Mand Anderes') Person.objects.create(vorname='Noch Je', nachname='Mand', geschlecht='m', email='*****@*****.**') _, self.v = get_veranstaltung('vu') self.v.veranstalter.add(self.p0) self.v.veranstalter.add(self.p1)
def setUp(self): User.objects.create_user(settings.USERNAME_VERANSTALTER) self.s, self.v = get_veranstaltung('vu') self.p = Person.objects.create(vorname="v1", nachname="n1", email="*****@*****.**", anschrift="Strasse") self.p2 = Person.objects.create(vorname="v2", nachname="n2") self.p3 = Person.objects.create(vorname="v3", nachname="n3") self.v.veranstalter.add(self.p) self.v.veranstalter.add(self.p2) self.v.ergebnis_empfaenger.add(self.p) self.v.ergebnis_empfaenger.add(self.p2) self.v.primaerdozent = self.p self.v.verantwortlich = self.p self.v.save() self.s2, self.v_wo_excercises = get_veranstaltung('v') self.v_wo_excercises.veranstalter.add(self.p3)
def setUp(self): super(InternVvEditUsersTest, self).setUp() self.path = '/intern/import_vv_edit_users/' self.p0 = Person.objects.create(vorname='Je', nachname='Mand') self.p1 = Person.objects.create(vorname='Auch Je', nachname='Mand') self.path_save_p0 = self.path + str(self.p0.id) + '/' self.path_save_p1 = self.path + str(self.p1.id) + '/' self.path_save_p2 = self.path + str(self.p0.id) + '/namecheck/' _, self.v = get_veranstaltung('vu') self.v.veranstalter.add(self.p0) self.v.veranstalter.add(self.p1)
def setUp(self): User.objects.create_superuser('supers', None, 'pw') self.p1 = Person.objects.create(vorname='Brian', nachname='Cohen') self.p2 = Person.objects.create(vorname='Bud', nachname='Spencer', email='[email protected]') self.p3 = Person.objects.create(vorname='Test', nachname='Tester', email='[email protected]', geschlecht='m') self.p4 = Person.objects.create(vorname='Test Zweitname', nachname='Tester') self.s1, self.v1 = get_veranstaltung('v') self.v1.veranstalter.add(self.p1) self.s2 = Semester.objects.get_or_create(semester=20115, fragebogen='2009', sichtbarkeit='ADM')[0] default_params = {'semester': self.s2, 'grundstudium': False, 'evaluieren': True, 'lv_nr': '321' + 'v'} self.v2 = Veranstaltung.objects.create(typ='v', name='CMS', **default_params) self.v2.veranstalter.add(self.p4) self.fachgebiet1 = Fachgebiet.objects.create(name="Fachgebiet1", kuerzel="FB1") FachgebietEmail.objects.create(fachgebiet=self.fachgebiet1) self.fb_p1 = Person.objects.create(vorname="Max1", nachname="Mustername", email="*****@*****.**")
def setUp(self): super(SyncErgebnisseTest, self).setUp() self.path = '/intern/sync_ergebnisse/' self.s, self.v = get_veranstaltung('v')
def test_export_veranstaltungen_post_primaerdozent(self): path = '/intern/export_veranstaltungen/' self.client.login(username='******', password='******') s, v = get_veranstaltung('v') p1 = Person.objects.create(vorname='Je', nachname='Mand', email='*****@*****.**', geschlecht='w') p2 = Person.objects.create(vorname='Prim', nachname='Ardozent', email='*****@*****.**', geschlecht='m') p3 = Person.objects.create(vorname='Je1', nachname='Mand1', email='*****@*****.**', geschlecht='m') v.veranstalter.add(p1) v.veranstalter.add(p2) v.veranstalter.add(p3) v.ergebnis_empfaenger.add(p1) v.ergebnis_empfaenger.add(p2) v.ergebnis_empfaenger.add(p3) v.grundstudium = True v.sprache = 'en' v.verantwortlich = p1 v.primaerdozent = p2 v.anzahl = 42 v.auswertungstermin = date(2011, 1, 1) v.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertRegex(response['Content-Disposition'], r'^attachment; filename="[a-zA-Z0-9_-]+\.xml"$') test_xml = '''<?xml version="1.0" encoding="UTF-8"?> <EvaSys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://evaluation.tu-darmstadt.de/evasys/doc/xml-import.xsd"> <Lecture key="lv-1"> <dozs> <doz> <EvaSysRef type="Person" key="pe-2" /> </doz> <doz> <EvaSysRef type="Person" key="pe-1" /> </doz> <doz> <EvaSysRef type="Person" key="pe-3" /> </doz> </dozs> <name>Stoning I</name> <orgroot>FB 20</orgroot> <short>123v-SS11</short> <period>SS11</period> <type>Vorlesung</type> <turnout>42</turnout> <p_o_study>Informatik</p_o_study> <survey> <EvaSysRef type="Survey" key="su-1" /> </survey> <external_id>lv-1</external_id> </Lecture> <Task key="close-su-1"> <type>close_survey</type> <datetime>2011-01-01 08:00</datetime> <dispatch_report>1</dispatch_report> </Task> <Survey key="su-1"> <survey_form>FB20Vv3e</survey_form> <survey_period>SS11</survey_period> <survey_type>coversheet</survey_type> <survey_verify>0</survey_verify> <survey_tasks> <survey_task> <EvaSysRef type="Task" key="close-su-1"/> </survey_task> </survey_tasks> </Survey> <Person key="pe-1"> <firstname>Je</firstname> <lastname>Mand</lastname> <email>[email protected]</email> <gender>f</gender> <external_id>pe-1</external_id> </Person> <Person key="pe-2"> <firstname>Prim</firstname> <lastname>Ardozent</lastname> <email>[email protected]</email> <gender>m</gender> <external_id>pe-2</external_id> </Person> <Person key="pe-3"> <firstname>Je1</firstname> <lastname>Mand1</lastname> <email>[email protected]</email> <gender>m</gender> <external_id>pe-3</external_id> </Person> </EvaSys>''' self.checkXMLEqual(test_xml, response.content.decode('utf-8'))
def setUp(self): _, self.v = get_veranstaltung('vu') User.objects.create_user(settings.USERNAME_VERANSTALTER)
def setUp(self): self.time = now() self.s, self.v = get_veranstaltung('v') self.scanner = BarcodeScanner.objects.create(token="aa", description="description") self.log = Log.objects.create(veranstaltung=self.v, timestamp=self.time, status=Veranstaltung.STATUS_GEDRUCKT, user=None, scanner=self.scanner, interface=Log.ADMIN)
def test_post(self): self.client.login(username='******', password='******') s, v1 = get_veranstaltung('vu') v1.anzahl = 42 v1.sprache = 'de' v1.save() default_params = { 'semester': s, 'status': Veranstaltung.STATUS_BESTELLUNG_LIEGT_VOR, 'grundstudium': False, 'evaluieren': True, 'sprache': 'de', 'anzahl': 44, 'lv_nr': '234vu' } v2 = Veranstaltung.objects.create(typ='vu', name='Stoning III', **default_params) v2.save() fg1 = Fachgebiet.objects.create(name="Fachgebiet1", kuerzel="FB1") fg2 = Fachgebiet.objects.create(name="Fachgebiet2", kuerzel="FB2") suf1 = EmailEndung.objects.create(fachgebiet=fg1, domain="fg1.com") suf2 = EmailEndung.objects.create(fachgebiet=fg2, domain="fg2.com") FachgebietEmail.objects.create(fachgebiet=fg1, email_sekretaerin="*****@*****.**") FachgebietEmail.objects.create(fachgebiet=fg2, email_sekretaerin="*****@*****.**") p1 = Person.objects.create(vorname='Peter', nachname='Pan', email='*****@*****.**', fachgebiet=fg1) p2 = Person.objects.create(vorname='Pan', nachname='Peter', email='*****@*****.**', fachgebiet=fg2) v1.veranstalter.add(p1) v2.veranstalter.add(p2) mv = Mailvorlage.objects.create(subject='Testmail', body='Dies ist eine Testmail.') Einstellung.objects.create(name='bestellung_erlaubt', wert='0') Tutor.objects.create(nummer=1, vorname='Max', nachname='Mux', email='*****@*****.**', anmerkung='', veranstaltung=v1) post_data = { 'uebernehmen': 'x', 'recipient': [Veranstaltung.STATUS_BESTELLUNG_GEOEFFNET], 'tutoren': 'False', 'subject': 'abc', 'body': 'xyz' } # ----- kein Semester angegeben ----- # response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'].endswith('/intern/sendmail/')) # ----- Vorlage übernehmen; Vorlage nicht angegeben ----- # post_data['semester'] = s.semester response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'].endswith('/intern/sendmail/')) # ----- Vorlage übernehmen; Vorlage ist angegeben, Empfanger nicht angegeben ----- # post_data['vorlage'] = mv.id recipient = post_data.pop('recipient', None) response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 200) # ----- Vorlage übernehmen; Vorlage ist angegeben ----- # post_data['recipient'] = recipient response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertEqual(response.templates[0].name, 'intern/sendmail.html') self.assertEqual(response.context['subject'], mv.subject) self.assertEqual(response.context['body'], mv.body) # ----- Vorschau; Empfänger ist auf Veranstalter mit fehlenden Bestellungen eingestellt ----- # del post_data['uebernehmen'] post_data['vorschau'] = 'x' response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertIn('intern/sendmail_preview.html', (t.name for t in response.templates)) self.assertTrue(response.context['vorschau']) # ----- Vorschau; Empfänger ist auf Veranstaltungen mit Ergebnissen eingestellt ----- # post_data['recipient'] = [Veranstaltung.STATUS_ERGEBNISSE_VERSANDT] response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertIn('intern/sendmail_preview.html', (t.name for t in response.templates)) self.assertTrue(response.context['vorschau']) # ----- Vorschau: Check if the replacements are highlighted ----- # color_span = '<span style="color:blue">{}</span>' self.assertEqual( color_span.format('Grundlagen der Agrarphilosophie I'), response.context['veranstaltung']) link_veranstalter = 'https://www.fachschaft.informatik.tu-darmstadt.de%s' % reverse( 'veranstalter-login') link_suffix_format = '?vid=%d&token=%s' self.assertEqual( color_span.format(link_veranstalter + (link_suffix_format % (1337, '0123456789abcdef'))), response.context['link_veranstalter']) # ----- Senden an alle Veranstaltungen ohne Tutoren ----- # del post_data['vorschau'] post_data['senden'] = 'x' post_data['recipient'] = [ 0 ] # 0 ist hierbei der Code für alle Veranstaltungen del post_data['vorlage'] response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'], tests.LOGIN_URL) # Hier wird in Eclipse ein Fehler angezeigt; mail.outbox gibt es während der Testläufe # aber wirklich (siehe https://docs.djangoproject.com/en/1.4/topics/testing/#email-services) self.assertEqual(len(mail.outbox), 3) # an 2 Veranstalter und Kopie an Feedback-Team self.assertEqual(len(mail.outbox[0].to), 2) # an Veranstalter und Sekretaerin self.assertEqual(len(mail.outbox[1].to), 2) # ----- Senden an eine bestimmte Veranstaltung ohne Tutoren ----- # del mail.outbox[:] post_data['recipient'] = Veranstaltung.STATUS_BESTELLUNG_GEOEFFNET response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'], tests.LOGIN_URL) self.assertEqual(len(mail.outbox), 2) # an 1 Veranstalter und Kopie an Feedback-Team self.assertEqual(len(mail.outbox[0].to), 2) # an Veranstalter und Sekretaerin # ----- Senden an eine bestimmte Veranstaltung mit Tutoren ==> ohne Sekretaerin ----- # del mail.outbox[:] post_data['recipient'] = Veranstaltung.STATUS_BESTELLUNG_GEOEFFNET post_data['tutoren'] = 'True' response = self.client.post(self.path, post_data, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'], tests.LOGIN_URL) self.assertEqual(len(mail.outbox), 2) # an 1 Veranstalter und Kopie an Feedback-Team self.assertEqual(len(mail.outbox[0].to), 2) # an Veranstalter und Tutor self.assertEqual(mail.outbox[0].to[1], '*****@*****.**') # E-Mail Adresse des Tutors
def setUp(self): self.s, self.v = get_veranstaltung('v') self.f = Fragebogen2009.objects.create(veranstaltung=self.v, v_gesamt=1)
def setUp(self): User.objects.create_user(settings.USERNAME_VERANSTALTER) self.s, self.v = get_veranstaltung('vu') self.p = Person.objects.create() self.v.veranstalter.add(self.p)
def setUp(self): super(SyncErgebnisseTest, self).setUp() self.path = "/intern/sync_ergebnisse/" self.s, self.v = get_veranstaltung("v")
def test_export_veranstaltungen_post(self): path = "/intern/export_veranstaltungen/" self.client.login(username="******", password="******") self.client.login(username="******", password="******") _, v1 = get_veranstaltung("v") s, v2 = get_veranstaltung("vu") p = Person.objects.create(vorname="Je", nachname="Mand", email="*****@*****.**", geschlecht="w") v1.veranstalter.add(p) v2.veranstalter.add(p) v1.grundstudium = True v1.sprache = "en" v1.verantwortlich = p v1.save() # kein Semester angegeben response = self.client.post(path, **{"REMOTE_USER": "******"}) self.assertEqual(response.status_code, 302) self.assertTrue(response["Location"].endswith("/intern/export_veranstaltungen/")) # keine Bestellung vorhanden response = self.client.post(path, {"semester": s.semester}, **{"REMOTE_USER": "******"}) self.assertEqual(response.status_code, 302) self.assertTrue(response["Location"].endswith("/intern/export_veranstaltungen/")) # niemand als Verantwortlicher eingetragen v1.anzahl = 42 v1.save() v2.anzahl = 23 v2.save() response = self.client.post(path, {"semester": s.semester}, **{"REMOTE_USER": "******"}) self.assertEqual(response.status_code, 302) self.assertTrue(response["Location"].endswith("/intern/export_veranstaltungen/")) # keine Sprache angegeben v2.verantwortlich = p v2.save() response = self.client.post(path, {"semester": s.semester}, **{"REMOTE_USER": "******"}) self.assertEqual(response.status_code, 302) self.assertTrue(response["Location"].endswith("/intern/export_veranstaltungen/")) # alles OK v2.sprache = "de" v2.save() response = self.client.post(path, {"semester": s.semester}, **{"REMOTE_USER": "******"}) self.assertRegexpMatches(response["Content-Disposition"], r'^attachment; filename="[a-zA-Z0-9_-]+\.xml"$') # TODO: Use SimpleTestCase.assertXMLEqual when Django is on newer version self.assertEqual( response.content, """<?xml version="1.0" encoding="UTF-8"?> <EvaSys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \txsi:noNamespaceSchemaLocation="http://evaluation.tu-darmstadt.de/evasys/doc/xml-import.xsd"> \t<Lecture key="lv-1"> \t\t<dozs> \t\t\t \t\t</dozs> \t\t<name>Stoning I</name> \t\t<orgroot>FB 20</orgroot> \t\t<short>123v-SS11</short> \t\t<period>SS11</period> \t\t<type>Vorlesung</type> \t\t<turnout>42</turnout> \t\t<p_o_study>Informatik</p_o_study> \t\t<survey> \t\t\t<EvaSysRef type="Survey" key="su-1" /> \t\t\t \t\t</survey> \t\t<external_id>lv-1</external_id> \t</Lecture> \t<Survey key="su-1"> \t\t<survey_form>FB20Vv1e</survey_form> \t\t<survey_period>SS11</survey_period> \t\t<survey_type>coversheet</survey_type> \t\t<survey_verify>0</survey_verify> \t</Survey> \t \t<Lecture key="lv-2"> \t\t<dozs> \t\t\t \t\t</dozs> \t\t<name>Stoning I</name> \t\t<orgroot>FB 20</orgroot> \t\t<short>123vu-SS11</short> \t\t<period>SS11</period> \t\t<type>Vorlesung + Übung</type> \t\t<turnout>23</turnout> \t\t<p_o_study>Informatik</p_o_study> \t\t<survey> \t\t\t<EvaSysRef type="Survey" key="su-2" /> \t\t\t<EvaSysRef type="Survey" key="su-2-u" /> \t\t</survey> \t\t<external_id>lv-2</external_id> \t</Lecture> \t<Survey key="su-2"> \t\t<survey_form>FB20Vv1</survey_form> \t\t<survey_period>SS11</survey_period> \t\t<survey_type>coversheet</survey_type> \t\t<survey_verify>0</survey_verify> \t</Survey> \t \t<Survey key="su-2-u"> \t\t<survey_form>FB20Üv1</survey_form> \t\t<survey_period>SS11</survey_period> \t\t<survey_type>coversheet</survey_type> \t\t<survey_verify>0</survey_verify> \t</Survey> \t \t \t </EvaSys> """, )
def setUp(self): self.client.login(username='******', password='******') self.s, self.v = get_veranstaltung('vu')
def test_post(self): self.client.login(username='******', password='******') s, v = get_veranstaltung('v') p0 = Person.objects.create(vorname='Je', nachname='Mand', email='*****@*****.**', geschlecht='w', anschrift='S202 D120') p1 = Person.objects.create(vorname='Noch Je', nachname='Mand', email='*****@*****.**', geschlecht='m') v.veranstalter.add(p0) v.veranstalter.add(p1) v.verantwortlich = p0 # kein Semester angegeben response = self.client.post(self.path, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/generate_letters/')) # kein Abgabedatum angegeben response = self.client.post(self.path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/generate_letters/')) # keine zu evaluierenden Veranstaltungen ad = '10. - 11. November 2011' response = self.client.post(self.path, { 'semester': s.semester, 'erhebungswoche': ad }, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/generate_letters/')) # alles OK v.anzahl = 42 v.sprache = 'en' v.save() self._delete_erhebungswoche_file() response = self.client.post( self.path, { 'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Anschreiben' }, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 200) self.assertRegexpMatches( response['Content-Disposition'], r'^attachment; filename=[a-zA-Z0-9_-]+\.pdf$') self.assertEqual(ad, self._get_erhebungswoche()) with open(settings.LATEX_PATH + 'veranstalter.adr', 'r') as f: self.assertEqual( f.readline().strip(), '\\adrentry{Je Mand}{S202 D120}{Stoning I}{42}{en}{Vorlesung}{2000000001005}{}{}' ) # test Aufkleber response = self.client.post( self.path, { 'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Aufkleber' }, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 200) self.assertRegexpMatches( response['Content-Disposition'], r'^attachment; filename=[a-zA-Z0-9_-]+\.pdf$') self.assertEqual(ad, self._get_erhebungswoche()) with open(settings.LATEX_PATH + '../aufkleber/' + 'veranstalter.adr', 'r') as f: self.assertEqual( f.readline().strip(), '\\adrentry{Je Mand}{S202 D120}{Stoning I}{42}{en}{Vorlesung}{2000000001005}{}{}' ) with self.settings(TEST_LATEX_ERROR=True): response = self.client.post( self.path, { 'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Anschreiben' }, **{'REMOTE_USER': '******'}) self.assertEqual(response.templates[0].name, 'intern/generate_letters.html') # test Aufkleber fuer grosse Veranstaltungen response = self.client.post( self.path, { 'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Grossaufkleber' }, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) v.anzahl = 86 v.save() response = self.client.post( self.path, { 'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Grossaufkleber' }, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 200) self.assertRegexpMatches( response['Content-Disposition'], r'^attachment; filename=[a-zA-Z0-9_-]+\.pdf$') self.assertEqual(ad, self._get_erhebungswoche()) with open(settings.LATEX_PATH + '../aufkleber/' + 'veranstalter.adr', 'r') as f: self.assertEqual( f.readline().strip(), '\\adrentry{Je Mand}{S202 D120}{Stoning I}{86}{en}{Vorlesung}{2000000001005}{}{}' ) with self.settings(TEST_LATEX_ERROR=True): response = self.client.post( self.path, { 'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Anschreiben' }, **{'REMOTE_USER': '******'}) self.assertEqual(response.templates[0].name, 'intern/generate_letters.html')
def setUp(self): super(InternAuthTest, self).setUp() _, self.v = get_veranstaltung('vu')
def test_post(self): self.client.login(username='******', password='******') get_veranstaltung('v') s, v1 = get_veranstaltung('vu') v1.anzahl = 42 v1.sprache = 'de' v1.save() v1.veranstalter.add( Person.objects.create(vorname='Pe', nachname='Ter', email='*****@*****.**')) v1.veranstalter.add( Person.objects.create(vorname='Pa', nachname='Ul', email='*****@*****.**')) mv = Mailvorlage.objects.create(subject='Testmail', body='Dies ist eine Testmail.') Einstellung.objects.create(name='bestellung_erlaubt', wert='0') params = { 'uebernehmen': 'x', 'recipient': 'cur_sem_missing_order', 'subject': 'abc', 'body': 'xyz' } # kein Semester angegeben response = self.client.post(self.path, params, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'].endswith('/intern/sendmail/')) # Vorlage übernehmen; Vorlage nicht angegeben params['semester'] = s.semester response = self.client.post(self.path, params, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'].endswith('/intern/sendmail/')) # Vorlage übernehmen; Vorlage ist angegeben params['vorlage'] = mv.id response = self.client.post(self.path, params, **{'REMOTE_USER': '******'}) self.assertEqual(response.templates[0].name, 'intern/sendmail.html') self.assertEqual(response.context['subject'], mv.subject) self.assertEqual(response.context['body'], mv.body) # Vorschau; Empfänger ist auf Veranstalter mit fehlenden Bestellungen eingestellt del params['uebernehmen'] params['vorschau'] = 'x' response = self.client.post(self.path, params, **{'REMOTE_USER': '******'}) self.assertIn('intern/sendmail_preview.html', (t.name for t in response.templates)) self.assertTrue(response.context['vorschau']) # Vorschau; Empfänger ist auf Veranstaltungen mit Ergebnissen eingestellt params['recipient'] = 'cur_sem_results' response = self.client.post(self.path, params, **{'REMOTE_USER': '******'}) self.assertIn('intern/sendmail_preview.html', (t.name for t in response.templates)) self.assertTrue(response.context['vorschau']) # Senden del params['vorschau'] params['senden'] = 'x' params['recipient'] = 'cur_sem_all' del params['vorlage'] response = self.client.post(self.path, params, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'], tests.LOGIN_URL) # Hier wird in Eclipse ein Fehler angezeigt; mail.outbox gibt es während der Testläufe # aber wirklich (siehe https://docs.djangoproject.com/en/1.4/topics/testing/#email-services) self.assertEqual(len(mail.outbox), 2)
def test_export_veranstaltungen_post(self): path = '/intern/export_veranstaltungen/' self.client.login(username='******', password='******') self.client.login(username='******', password='******') _, v1 = get_veranstaltung('v') s, v2 = get_veranstaltung('vu') p = Person.objects.create(vorname='Je', nachname='Mand', email='*****@*****.**', geschlecht='w') v1.veranstalter.add(p) v2.veranstalter.add(p) v1.grundstudium = True v1.sprache = 'en' v1.verantwortlich = p v1.save() # kein Semester angegeben response = self.client.post(path, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # keine Bestellung vorhanden response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # niemand als Verantwortlicher eingetragen v1.anzahl = 42 v1.save() v2.anzahl = 23 v2.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # keine Sprache angegeben v2.verantwortlich = p v2.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # alles OK v2.sprache = 'de' v2.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertRegexpMatches( response['Content-Disposition'], r'^attachment; filename="[a-zA-Z0-9_-]+\.xml"$') # TODO: Use SimpleTestCase.assertXMLEqual when Django is on newer version self.assertEqual( response.content, '''<?xml version="1.0" encoding="UTF-8"?> <EvaSys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \txsi:noNamespaceSchemaLocation="http://evaluation.tu-darmstadt.de/evasys/doc/xml-import.xsd"> \t<Lecture key="lv-1"> \t\t<dozs> \t\t\t \t\t</dozs> \t\t<name>Stoning I</name> \t\t<orgroot>FB 20</orgroot> \t\t<short>123v-SS11</short> \t\t<period>SS11</period> \t\t<type>Vorlesung</type> \t\t<turnout>42</turnout> \t\t<p_o_study>Informatik</p_o_study> \t\t<survey> \t\t\t<EvaSysRef type="Survey" key="su-1" /> \t\t\t \t\t</survey> \t\t<external_id>lv-1</external_id> \t</Lecture> \t<Survey key="su-1"> \t\t<survey_form>FB20Vv1e</survey_form> \t\t<survey_period>SS11</survey_period> \t\t<survey_type>coversheet</survey_type> \t\t<survey_verify>0</survey_verify> \t</Survey> \t \t<Lecture key="lv-2"> \t\t<dozs> \t\t\t \t\t</dozs> \t\t<name>Stoning I</name> \t\t<orgroot>FB 20</orgroot> \t\t<short>123vu-SS11</short> \t\t<period>SS11</period> \t\t<type>Vorlesung + Übung</type> \t\t<turnout>23</turnout> \t\t<p_o_study>Informatik</p_o_study> \t\t<survey> \t\t\t<EvaSysRef type="Survey" key="su-2" /> \t\t\t<EvaSysRef type="Survey" key="su-2-u" /> \t\t</survey> \t\t<external_id>lv-2</external_id> \t</Lecture> \t<Survey key="su-2"> \t\t<survey_form>FB20Vv1</survey_form> \t\t<survey_period>SS11</survey_period> \t\t<survey_type>coversheet</survey_type> \t\t<survey_verify>0</survey_verify> \t</Survey> \t \t<Survey key="su-2-u"> \t\t<survey_form>FB20Üv1</survey_form> \t\t<survey_period>SS11</survey_period> \t\t<survey_type>coversheet</survey_type> \t\t<survey_verify>0</survey_verify> \t</Survey> \t \t \t </EvaSys> ''')
def test_post(self): self.client.login(username='******', password='******') s, v = get_veranstaltung('v') p0 = Person.objects.create(vorname='Je', nachname='Mand', email='*****@*****.**', geschlecht='w', anschrift='S202 D120') p1 = Person.objects.create(vorname='Noch Je', nachname='Mand', email='*****@*****.**', geschlecht='m') v.veranstalter.add(p0) v.veranstalter.add(p1) v.verantwortlich = p0 # kein Semester angegeben response = self.client.post(self.path, **{'REMOTE_USER':'******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'].endswith('/intern/generate_letters/')) # kein Abgabedatum angegeben response = self.client.post(self.path, {'semester': s.semester}, **{'REMOTE_USER':'******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'].endswith('/intern/generate_letters/')) # keine zu evaluierenden Veranstaltungen ad = '10. - 11. November 2011' response = self.client.post(self.path, {'semester': s.semester, 'erhebungswoche': ad}, **{'REMOTE_USER':'******'}) self.assertEqual(response.status_code, 302) self.assertTrue(response['Location'].endswith('/intern/generate_letters/')) # alles OK v.anzahl = 42 v.sprache = 'en' v.save() self._delete_erhebungswoche_file() response = self.client.post(self.path, {'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Anschreiben'}, **{'REMOTE_USER':'******'}) self.assertEqual(response.status_code, 200) self.assertRegexpMatches(response['Content-Disposition'], r'^attachment; filename=[a-zA-Z0-9_-]+\.pdf$') self.assertEqual(ad, self._get_erhebungswoche()) with open(settings.LATEX_PATH + 'veranstalter.adr', 'r') as f: self.assertEqual(f.readline().strip(), '\\adrentry{Je Mand}{S202 D120}{Stoning I}{42}{en}{Vorlesung}{2000000001005}{}{}') #test Aufkleber response = self.client.post(self.path, {'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Aufkleber'}, **{'REMOTE_USER':'******'}) self.assertEqual(response.status_code, 200) self.assertRegexpMatches(response['Content-Disposition'], r'^attachment; filename=[a-zA-Z0-9_-]+\.pdf$') self.assertEqual(ad, self._get_erhebungswoche()) with open(settings.LATEX_PATH+'../aufkleber/' + 'veranstalter.adr', 'r') as f: self.assertEqual(f.readline().strip(), '\\adrentry{Je Mand}{S202 D120}{Stoning I}{42}{en}{Vorlesung}{2000000001005}{}{}') with self.settings(TEST_LATEX_ERROR=True): response = self.client.post(self.path, {'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Anschreiben'}, **{'REMOTE_USER':'******'}) self.assertEqual(response.templates[0].name, 'intern/generate_letters.html') #test Aufkleber fuer grosse Veranstaltungen response = self.client.post(self.path, {'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Grossaufkleber'}, **{'REMOTE_USER':'******'}) self.assertEqual(response.status_code, 302) v.anzahl = 86 v.save() response = self.client.post(self.path, {'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Grossaufkleber'}, **{'REMOTE_USER':'******'}) self.assertEqual(response.status_code, 200) self.assertRegexpMatches(response['Content-Disposition'], r'^attachment; filename=[a-zA-Z0-9_-]+\.pdf$') self.assertEqual(ad, self._get_erhebungswoche()) with open(settings.LATEX_PATH+'../aufkleber/' + 'veranstalter.adr', 'r') as f: self.assertEqual(f.readline().strip(), '\\adrentry{Je Mand}{S202 D120}{Stoning I}{86}{en}{Vorlesung}{2000000001005}{}{}') with self.settings(TEST_LATEX_ERROR=True): response = self.client.post(self.path, {'semester': s.semester, 'erhebungswoche': '10. - 11. November 2011', 'vorlage': 'Anschreiben'}, **{'REMOTE_USER':'******'}) self.assertEqual(response.templates[0].name, 'intern/generate_letters.html')
def test_export_veranstaltungen_post(self): path = '/intern/export_veranstaltungen/' self.client.login(username='******', password='******') self.client.login(username='******', password='******') _, v1 = get_veranstaltung('v') s, v2 = get_veranstaltung('vu') empty_semester = Semester.objects.create(semester=20120, fragebogen='2009', sichtbarkeit='ADM') p = Person.objects.create(vorname='Je', nachname='Mand', email='*****@*****.**', geschlecht='w') v1.veranstalter.add(p) v2.veranstalter.add(p) v1.grundstudium = True v1.sprache = 'en' v1.verantwortlich = p v1.auswertungstermin = date(2011, 1, 1) v1.save() # kein Semester angegeben response = self.client.post(path, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # keine Bestellung vorhanden response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # niemand als Verantwortlicher eingetragen v1.anzahl = 42 v1.save() v2.anzahl = 23 v2.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) response = self.client.post(path, { 'semester': empty_semester.semester, 'xml_ubung': True }, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # keine Sprache angegeben v2.verantwortlich = p v2.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertEqual(response.status_code, 302) self.assertTrue( response['Location'].endswith('/intern/export_veranstaltungen/')) # alles OK v2.sprache = 'de' v2.auswertungstermin = date(2011, 1, 1) v2.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertRegex(response['Content-Disposition'], r'^attachment; filename="[a-zA-Z0-9_-]+\.xml"$') test_xml = '''<?xml version="1.0" encoding="UTF-8"?> <EvaSys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://evaluation.tu-darmstadt.de/evasys/doc/xml-import.xsd"> <Lecture key="lv-1"> <dozs></dozs> <name>Stoning I</name> <orgroot>FB 20</orgroot> <short>123v-SS11</short> <period>SS11</period> <type>Vorlesung</type> <turnout>42</turnout> <p_o_study>Informatik</p_o_study> <survey><EvaSysRef type="Survey" key="su-1" /></survey> <external_id>lv-1</external_id> </Lecture> <Task key="close-su-1"> <type>close_survey</type> <datetime>2011-01-01 08:00</datetime> <dispatch_report>1</dispatch_report> </Task> <Survey key="su-1"> <survey_form>FB20Vv3e</survey_form> <survey_period>SS11</survey_period> <survey_type>coversheet</survey_type> <survey_verify>0</survey_verify> <survey_tasks> <survey_task> <EvaSysRef type="Task" key="close-su-1"/> </survey_task> </survey_tasks> </Survey> <Lecture key="lv-2"> <dozs></dozs> <name>Stoning I</name> <orgroot>FB 20</orgroot> <short>123vu-SS11</short> <period>SS11</period> <type>Vorlesung + Übung</type> <turnout>23</turnout> <p_o_study>Informatik</p_o_study> <survey><EvaSysRef type="Survey" key="su-2" /></survey> <external_id>lv-2</external_id> </Lecture> <Task key="close-su-2"> <type>close_survey</type> <datetime>2011-01-01 08:00</datetime> <dispatch_report>1</dispatch_report> </Task> <Survey key="su-2"> <survey_form>FB20Vv3</survey_form> <survey_period>SS11</survey_period> <survey_type>coversheet</survey_type> <survey_verify>0</survey_verify> <survey_tasks> <survey_task> <EvaSysRef type="Task" key="close-su-2"/> </survey_task> </survey_tasks> </Survey> </EvaSys>''' self.checkXMLEqual(test_xml, response.content.decode('utf-8')) response = self.client.post(path, { 'semester': s.semester, 'xml_ubung': True }, **{'REMOTE_USER': '******'}) self.assertRegex(response['Content-Disposition'], r'^attachment; filename="[a-zA-Z0-9_-]+\.xml"$') test_xml = '''<?xml version="1.0" encoding="UTF-8"?> <EvaSys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://evaluation.tu-darmstadt.de/evasys/doc/xml-import.xsd"> <Lecture key="lv-2"> <dozs> </dozs> <name>Stoning I</name> <orgroot>FB 20</orgroot> <short>123vu-SS11</short> <period>SS11</period> <type>Vorlesung + Übung</type> <turnout>23</turnout> <p_o_study>Informatik</p_o_study> <survey> <EvaSysRef type="Survey" key="su-2-u" /> </survey> <external_id>lv-2</external_id> </Lecture> <Task key="close-su-2-u"> <type>close_survey</type> <datetime>2011-01-01 08:00</datetime> <dispatch_report>1</dispatch_report> </Task> <Survey key="su-2-u"> <survey_form>FB20Üv2</survey_form> <survey_period>SS11</survey_period> <survey_type>coversheet</survey_type> <survey_verify>0</survey_verify> <survey_tasks> <survey_task> <EvaSysRef type="Task" key="close-su-2-u"/> </survey_task> </survey_tasks> </Survey> </EvaSys> ''' self.checkXMLEqual(test_xml, response.content.decode('utf-8')) # check whether digital evaluation is correctly handled v1.digitale_eval = True v1.save() response = self.client.post(path, {'semester': s.semester}, **{'REMOTE_USER': '******'}) self.assertRegex(response['Content-Disposition'], r'^attachment; filename="[a-zA-Z0-9_-]+\.xml"$') test_xml = '''<?xml version="1.0" encoding="UTF-8"?> <EvaSys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://evaluation.tu-darmstadt.de/evasys/doc/xml-import.xsd"> <Lecture key="lv-1"> <dozs></dozs> <name>Stoning I</name> <orgroot>FB 20</orgroot> <short>123v-SS11</short> <period>SS11</period> <type>Vorlesung</type> <turnout>42</turnout> <p_o_study>Informatik</p_o_study> <survey><EvaSysRef type="Survey" key="su-1" /></survey> <external_id>lv-1</external_id> </Lecture> <Task key="close-su-1"> <type>close_survey</type> <datetime>2011-01-01 08:00</datetime> <dispatch_report>1</dispatch_report> </Task> <Survey key="su-1"> <survey_form>FB20Vv3e</survey_form> <survey_period>SS11</survey_period> <survey_type>online</survey_type> <survey_verify>0</survey_verify> <survey_tasks> <survey_task> <EvaSysRef type="Task" key="close-su-1"/> </survey_task> </survey_tasks> </Survey> <Lecture key="lv-2"> <dozs></dozs> <name>Stoning I</name> <orgroot>FB 20</orgroot> <short>123vu-SS11</short> <period>SS11</period> <type>Vorlesung + Übung</type> <turnout>23</turnout> <p_o_study>Informatik</p_o_study> <survey><EvaSysRef type="Survey" key="su-2" /></survey> <external_id>lv-2</external_id> </Lecture> <Task key="close-su-2"> <type>close_survey</type> <datetime>2011-01-01 08:00</datetime> <dispatch_report>1</dispatch_report> </Task> <Survey key="su-2"> <survey_form>FB20Vv3</survey_form> <survey_period>SS11</survey_period> <survey_type>coversheet</survey_type> <survey_verify>0</survey_verify> <survey_tasks> <survey_task> <EvaSysRef type="Task" key="close-su-2"/> </survey_task> </survey_tasks> </Survey> </EvaSys>''' self.checkXMLEqual(test_xml, response.content.decode('utf-8'))