def test__views__assessment__post__should_delete_approved_positions_when_no_positions_are_set(
            self):
        # Arrange
        assessment = Assessment(profile=self.profile,
                                status='pending',
                                comment='Test Comment')
        assessment.save()
        position1 = Position.objects.all().first()
        position2 = Position.objects.all().last()
        self.profile.requested_positions.set((position1, position2))
        self.profile.approved_positions.set((position1, position2))
        self.client.login(username=self.username, password=self.password)

        # Act
        response_post = self.client.post(reverse('assessment_update',
                                                 kwargs={'pk': assessment.pk}),
                                         {
                                             'status': 'accepted',
                                             'comment': ''
                                         },
                                         user=self.user)
        response = self.client.get(reverse('assessment_update',
                                           kwargs={'pk': assessment.pk}),
                                   user=self.user)

        # Assert
        self.assertEquals(response_post.status_code, 302)
        self.assertTemplateUsed(response, 'assessment-update.html')
        self.assertEquals(
            Assessment.objects.get(profile=self.profile).status, 'accepted')
        self.assertEquals(
            Assessment.objects.get(profile=self.profile).comment, '')
        self.assertEquals(self.profile.approved_positions.all().count(), 0)
    def test__views__assessment__post__should_show_not_specified_when_data_is_missing(
            self):
        # Arrange
        assessment = Assessment(profile=self.profile, status='pending')
        assessment.save()
        self.client.login(username=self.username, password=self.password)

        # Act
        response = self.client.post(
            reverse('assessment_update', kwargs={'pk': assessment.pk}),
            {
                'approved_positions': 100,  # a bit of a hack
                'status': 'accepted',
                'comment': ''
            },
            user=self.user)

        # Assert
        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'assessment-update.html')
        self.assertContains(
            response, '<dd class="col-sm-6 text-danger">Not specified</dd>')
        self.assertContains(response,
                            '<dd class="col-sm-6">German, American</dd>')
        self.assertContains(response, self.p_danger('No skills specified.'))
        self.assertContains(response,
                            self.p_danger('No requested positions specified.'))
        self.assertContains(response, self.p_danger('No Documents uploaded.'))
        self.assertContains(response, self.p_danger('No questions answered.'))
    def test__views__assessment__get__should_set_initial_values_when_values_are_set(
            self):
        # Arrange
        assessment = Assessment(profile=self.profile,
                                status='pending',
                                comment='Test Comment')
        assessment.save()
        position = Position.objects.all().first()
        self.profile.requested_positions.set((position, ))
        self.profile.approved_positions.set((position, ))
        self.client.login(username=self.username, password=self.password)

        # Act
        response = self.client.get(reverse('assessment_update',
                                           kwargs={'pk': assessment.pk}),
                                   user=self.user)

        # Assert
        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'assessment-update.html')
        self.assertContains(response,
                            '<dd class="col-sm-6">German, American</dd>')
        self.assertContains(response, self.p_danger('No skills specified.'))
        self.assertContains(response, self.p_danger('No Documents uploaded.'))
        self.assertContains(response, self.p_danger('No questions answered.'))
        self.assertContains(
            response,
            self.checked_required_radio_input(name='status', value='pending'))
        self.assertContains(response, self.selected_option(position))
        self.assertContains(response, 'Test Comment</textarea>')
예제 #4
0
    def test_views__show_assessments__get__should_show_text_when__assessment_is_status_approved(
            self):
        # Arrange
        profile = self.profile
        position = Position.objects.all().first()
        profile.save()
        profile.requested_positions.set((position, ))
        assessment = Assessment(profile=self.profile, status='approved')
        assessment.save()
        self.client.login(username=self.username, password=self.password)

        # Act
        response = self.client.get(self.url, user=self.user)

        # Assert
        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'assessment-list.html')
        self.assertContains(response, 'There are no pending assessments!')
예제 #5
0
    def test_views__show_assessments__get__should_show_table_when_pending_assessment_is_available(
            self):
        # Arrange
        profile = self.profile
        position = Position.objects.all().first()
        profile.save()
        profile.requested_positions.set((position, ))
        assessment = Assessment(profile=self.profile, status='pending')
        assessment.save()
        self.client.login(username=self.username, password=self.password)

        # Act
        response = self.client.get(self.url, user=self.user)

        # Assert
        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'assessment-list.html')
        self.assertContains(
            response,
            self.td(profile.user.first_name + ' ' + profile.user.last_name))
        self.assertContains(response, self.td(assessment.status))
        self.assertContains(response, position)
        self.assertContains(response, self.tr_onclick(profile.pk))
    def test__views__assessment__get__should_show_data_when_all_data_is_set(
            self):
        # Arrange
        assessment = Assessment(profile=self.profile, status='pending')
        assessment.save()
        question = Question.objects.all().first()
        answer1 = Answer(question=question,
                         profile=self.profile,
                         text='Test Answer 1')
        answer2 = Answer(question=question,
                         profile=self.profile,
                         text='Test Answer 2')
        answer1.save()
        answer2.save()
        skill1 = Skill.objects.all().first()
        skill2 = Skill.objects.all().last()
        self.profile.skills.set((skill1, skill2))
        position1 = Position.objects.all().first()
        position2 = Position.objects.all().last()
        self.profile.requested_positions.set((position1, position2))
        document_type = DocumentType(name='Passport')
        document_type.save()
        document = Document(document_type=document_type,
                            profile=self.profile,
                            number='1234',
                            issuing_date=date.today(),
                            expiry_date=date.today(),
                            issuing_authority='NSA',
                            issuing_place='Crypto City',
                            issuing_country='United States of America',
                            file=SimpleUploadedFile("testfile.jpg",
                                                    b"file_content",
                                                    content_type="image/jpg"))
        document.save()

        self.client.login(username=self.username, password=self.password)

        # Act
        response = self.client.get(reverse('assessment_update',
                                           kwargs={'pk': assessment.pk}),
                                   user=self.user)

        # Assert
        self.assertEquals(response.status_code, 200)
        self.assertTemplateUsed(response, 'assessment-update.html')
        self.assertContains(
            response, '<dd class="col-sm-6 text-danger">Not specified</dd>')
        self.assertContains(response,
                            '<dd class="col-sm-6">German, American</dd>')
        self.assertContains(response, self.li(skill1.name))
        self.assertContains(response, self.li(skill2.name))
        self.assertContains(response, self.li(position1.name))
        self.assertContains(response, self.li(position2.name))
        self.assertContains(response,
                            '<dd class="col-sm-8">Test Answer 1</dd>')
        self.assertContains(response,
                            '<dd class="col-sm-8">Test Answer 2</dd>')
        self.assertContains(response, self.td(document.pk))
        self.assertContains(response, self.td(document.document_type))
        self.assertContains(response, self.td(document.number))
        self.assertContains(
            response, self.td(document.issuing_date.strftime('%b. %-d, %Y')))
        self.assertContains(
            response, self.td(document.expiry_date.strftime('%b. %-d, %Y')))
        self.assertContains(response, self.td(document.issuing_authority))
        self.assertContains(response, self.td(document.issuing_place))
        self.assertContains(response, self.td(document.issuing_country))
        self.assertContains(response, self.td(document.file.name))