def test_render_first_visit(self):
     request = self._create_mock_getrequest()
     response = AssignmentAssemblyView.as_view()(
         request, assignmentid=self.assignmentbuilder.assignment.id)
     response.render()
     self.assertNotIn('Similarity check processing was started by testuser', response.content)
     self.assertIn('Run/re-run similarity check', response.content)
 def test_post(self):
     self.assertEqual(DetektorAssignment.objects.count(), 0)
     request = self._create_mock_postrequest()
     response = AssignmentAssemblyView.as_view()(
         request, assignmentid=self.assignmentbuilder.assignment.id)
     self.assertEqual(DetektorAssignment.objects.count(), 1)
     self.assertEquals(response.status_code, 302)
     detektorassignment = DetektorAssignment.objects.all()[0]
     self.assertEqual(detektorassignment.processing_started_by, self.testuser)
 def test_processing_subsequent(self):
     DetektorAssignment.objects.create(
         assignment_id=self.assignmentbuilder.assignment.id,
         processing_started_by=self.testuser)
     request = self._create_mock_getrequest()
     response = AssignmentAssemblyView.as_view()(
         request, assignmentid=self.assignmentbuilder.assignment.id)
     response.render()
     self.assertNotIn('Similarity check processing was started by testuser', response.content)
     self.assertIn('Run/re-run similarity check', response.content)
 def test_already_running(self):
     processing_started_datetime = datetime.now()
     DetektorAssignment.objects.create(
         assignment_id=self.assignmentbuilder.assignment.id,
         processing_started_by=self.testuser,
         processing_started_datetime=processing_started_datetime,
         status='running')
     request = self._create_mock_getrequest()
     response = AssignmentAssemblyView.as_view()(
         request, assignmentid=self.assignmentbuilder.assignment.id)
     response.render()
     self.assertIn('Similarity check processing was started by testuser', response.content)
     self.assertNotIn('Run/re-run similarity check', response.content)
    def test_results_ordering(self):
        self.assignmentbuilder\
            .add_group(name='Group A')\
            .add_deadline_in_x_weeks(weeks=1)\
            .add_delivery()\
            .add_filemeta(filename='Test1.java', data='if(i==10) {}')
        self.assignmentbuilder\
            .add_group(name='Group B')\
            .add_deadline_in_x_weeks(weeks=1)\
            .add_delivery()\
            .add_filemeta(filename='Test2.java', data='class Test {if(i==10) {}}')
        self.assignmentbuilder\
            .add_group(name='Group C')\
            .add_deadline_in_x_weeks(weeks=1)\
            .add_delivery()\
            .add_filemeta(filename='Test3.java', data='class Test {}')
        detektorassignment = DetektorAssignment.objects.create(
            assignment_id=self.assignmentbuilder.assignment.id,
            processing_started_by=self.testuser)
        AssignmentParser(assignment_id=self.assignmentbuilder.assignment.id).run_detektor()
        CompareManyCollection(detektorassignment).save()

        request = self._create_mock_getrequest(data={
            'language': 'java'
        })
        response = AssignmentAssemblyView.as_view()(
            request, assignmentid=self.assignmentbuilder.assignment.id)
        response.render()

        displaynames = []
        for displayname1, displayname2 in zip(
                [span.text.strip() for span in
                 cssFind(response.content, '#detektorassembly-results .detektorassembly-delivery1-displayname')],
                [span.text.strip() for span in
                 cssFind(response.content, '#detektorassembly-results .detektorassembly-delivery2-displayname')]):
            displaynames.append({displayname1, displayname2})
        self.assertEqual(
            displaynames,
            [
                {'Group A', 'Group B'},
                {'Group A', 'Group C'},
            ])
 def test_404(self):
     request = self.factory.get('/test')
     request.user = self.testuser
     with self.assertRaises(Http404):
         AssignmentAssemblyView.as_view()(request, assignmentid=200001)