def test_post_createmode_specific_groups(self): self.assertEquals(self.testhelper.sub_p1_a1_g1.deadlines.count(), 1) self.assertEquals(self.testhelper.sub_p1_a1_g2.deadlines.count(), 1) new_deadline = datetime(2004, 12, 24, 20, 30) self.assertEquals(Deadline.objects.filter(deadline=new_deadline).count(), 0) content, response = self._postas('adm', {'deadline': format_datetime(new_deadline), 'text': 'Created', 'group_ids': [self.testhelper.sub_p1_a1_g1.id, self.testhelper.sub_p1_a1_g2.id], 'createmode': 'specific-groups'}) # Check response self.assertEquals(response.status_code, 201) self.assertEquals(decode_bulkdeadline_id(content['bulkdeadline_id'])[0], new_deadline) self.assertEquals(len(content['groups']), 2) self.assertEquals(content['text'], 'Created') self.assertEquals(content['deadline'], format_datetime(new_deadline)) # Check actual data self.assertEquals(Deadline.objects.filter(deadline=new_deadline).count(), 2) g1 = self.testhelper.reload_from_db(self.testhelper.sub_p1_a1_g1) deadlines = g1.deadlines.all() self.assertEquals(len(deadlines), 2) self.assertEquals(deadlines[0].deadline, new_deadline) self.assertEquals(deadlines[0].text, 'Created')
def test_post_createmode_no_deadlines(self): self.assertEquals(self.testhelper.sub_p1_a1_g1.deadlines.count(), 1) self.testhelper.add_to_path('uni;sub.p1.a1.extragroup') self.assertEquals(self.testhelper.sub_p1_a1_extragroup.deadlines.count(), 0) new_deadline = datetime(2004, 12, 24, 20, 30) self.assertEquals(Deadline.objects.filter(deadline=new_deadline).count(), 0) content, response = self._postas('adm', {'deadline': format_datetime(new_deadline), 'text': 'Created', 'createmode': 'no-deadlines'}) # Check response self.assertEquals(response.status_code, 201) self.assertEquals(decode_bulkdeadline_id(content['bulkdeadline_id'])[0], new_deadline) self.assertEquals(len(content['groups']), 1) self.assertEquals(content['text'], 'Created') self.assertEquals(content['deadline'], format_datetime(new_deadline)) # Check actual data self.assertEquals(Deadline.objects.filter(deadline=new_deadline).count(), 1) extragroup = AssignmentGroup.objects.get(id=self.testhelper.sub_p1_a1_extragroup.id) deadlines = extragroup.deadlines.all() self.assertEquals(len(deadlines), 1) self.assertEquals(deadlines[0].deadline, new_deadline) self.assertEquals(deadlines[0].text, 'Created') self.assertTrue(extragroup.is_open) # Group was automatically opened in devilry.apps.core.models.Deadline.save()
def test_post_createmode_failed(self): self.testhelper.add_delivery('sub.p1.a1.g1', {'bad.py': ['print ', 'bah']}) self.testhelper.add_feedback('sub.p1.a1.g1', verdict={'grade': 'F', 'points': 30, 'is_passing_grade': False}) g1 = AssignmentGroup.objects.get(id=self.testhelper.sub_p1_a1_g1.id) self.assertFalse(g1.is_open) new_deadline = datetime(2004, 12, 24, 20, 30) self.assertEquals(Deadline.objects.filter(deadline=new_deadline).count(), 0) content, response = self._postas('adm', {'deadline': format_datetime(new_deadline), 'text': 'Created', 'createmode': 'failed'}) # Check response self.assertEquals(response.status_code, 201) self.assertEquals(decode_bulkdeadline_id(content['bulkdeadline_id'])[0], new_deadline) self.assertEquals(len(content['groups']), 1) self.assertEquals(content['text'], 'Created') self.assertEquals(content['deadline'], format_datetime(new_deadline)) # Check actual data self.assertEquals(Deadline.objects.filter(deadline=new_deadline).count(), 1) g1 = AssignmentGroup.objects.get(id=self.testhelper.sub_p1_a1_g1.id) deadlines = g1.deadlines.all().order_by('-deadline') self.assertEquals(len(deadlines), 2) self.assertEquals(deadlines[0].deadline, new_deadline) self.assertEquals(deadlines[0].text, 'Created') self.assertTrue(g1.is_open) # Group was automatically opened in devilry.apps.core.models.Deadline.save()
def test_get(self): content, response = self._getas('adm') self.assertEquals(response.status_code, 200) self.assertEquals(decode_bulkdeadline_id(content['bulkdeadline_id'])[0], self.testhelper.sub_p1_a1_g1_d1.deadline) self.assertEquals(content['deadline'], format_datetime(self.testhelper.sub_p1_a1_g1_d1.deadline)) self.assertEquals(content['text'], None) self.assertEquals(len(content['groups']), 3)
def test_put(self): self.assertEquals(self.testhelper.sub_p1_a1.publishing_time, datetime(2000, 1, 1, 22, 30, 51)) self.assertEquals(self.testhelper.sub_p1_a1_g1_d1.deadline, datetime(2000, 1, 1, 22, 30) + timedelta(days=5)) new_deadline = datetime(2004, 12, 24, 20, 30) content, response = self._putas('adm', {'deadline': format_datetime(new_deadline), 'text': 'Hello'}) self.assertEquals(response.status_code, 200) self.assertEquals(decode_bulkdeadline_id(content['bulkdeadline_id'])[0], new_deadline) self.assertEquals(len(content['groups']), 3) self.assertEquals(content['text'], 'Hello') self.assertEquals(content['deadline'], format_datetime(new_deadline)) for groupnum in xrange(3): deadline_id = getattr(self.testhelper, 'sub_p1_a1_g{0}_d1'.format(groupnum)).id deadline = Deadline.objects.get(id=deadline_id) self.assertEquals(deadline.deadline, new_deadline) self.assertEquals(deadline.text, 'Hello')
def test_decode_unique_bulkdeadline_id(self): self.assertEquals(decode_bulkdeadline_id('2000-12-24T22_30_49--'), (datetime(2000, 12, 24, 22, 30, 49), '')) self.assertEquals(decode_bulkdeadline_id('2000-12-24T22_30_49--{0}'.format(sha1hash('Hello world'))), (datetime(2000, 12, 24, 22, 30, 49), sha1hash('Hello world')))