Пример #1
0
    def test_create_pre_tour_documents_send(self):
        """
        Tests that if the document is sent and the enevelope is retrieved then the document
            is created in the database
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**",
                                     first_name="TestName",
                                     last_name="TestLast")
        manager = HunterDocManagerModel.objects.create(user=user)
        HunterDocTemplateModel.get_pre_tour_template()
        DocusignLogin.set_up_docusign_api = MagicMock()
        DocusignWrapper.send_document_for_signatures = MagicMock(
            return_value="123")

        # Act
        result = manager.create_pre_tour_documents()

        # Assert
        self.assertTrue(result)
        self.assertEqual(HunterDocModel.objects.count(), 1)
        self.assertEqual(
            HunterDocModel.objects.first().template,
            HunterDocTemplateModel.objects.get(
                template_type=HunterDocTemplateModel.PRE_TOUR))
Пример #2
0
    def test_resend_pre_tour_documents_exists_within_api_limit(self):
        """
        Tests that if the user wants to resend the pre_tour_forms then if the document exists
            and the last document resend was within the api throttle limit, then the document is not resent
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**",
                                     first_name="TestName",
                                     last_name="TestLast")
        manager = HunterDocManagerModel.objects.create(user=user)
        template = HunterDocTemplateModel.get_pre_tour_template()
        doc = manager.documents.create(template=template,
                                       envelope_id='123',
                                       last_resend=timezone.now())

        # Magic mock to prevent remote api call
        DocusignLogin.set_up_docusign_api = MagicMock()
        DocusignWrapper.resend_envelope = MagicMock(return_value=True)

        # Act
        result = manager.resend_pre_tour_documents()

        # Assert
        self.assertFalse(result)
        DocusignWrapper.resend_envelope.assert_not_called()
Пример #3
0
    def test_resend_pre_tour_documents_exists_not_within_api_limit(self):
        """
        Tests that if the user wants to resend the pre_tour_forms then if the document exists
            and the api throttle time limit has not been reached the document is sent.
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**",
                                     first_name="TestName",
                                     last_name="TestLast")
        manager = HunterDocManagerModel.objects.create(user=user)
        template = HunterDocTemplateModel.get_pre_tour_template()
        doc = manager.documents.create(
            template=template,
            envelope_id='123',
            last_resend=timezone.now() -
            timedelta(minutes=DOCUSIGN_REFRESH_RATE_MINUTES))

        # Magic mock to prevent remote api call
        DocusignLogin.set_up_docusign_api = MagicMock()
        DocusignWrapper.resend_envelope = MagicMock(return_value=True)

        # Act
        result = manager.resend_pre_tour_documents()

        # Assert
        self.assertTrue(result)
        DocusignWrapper.resend_envelope.assert_called_once_with(
            doc.envelope_id)
Пример #4
0
    def test_is_all_signed_multiple_users(self):
        """
        Tests that if there are multiple users, the users documents don't conflict. I.e the user with all
            the documents signed returns true and the other returns false
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**")
        user1 = MyUser.objects.create(email="*****@*****.**")
        manager = HunterDocManagerModel.objects.create(user=user)
        manager1 = HunterDocManagerModel.objects.create(user=user1)
        template = HunterDocTemplateModel.get_pre_tour_template()
        template2 = HunterDocTemplateModel.objects.create(template_type="tb",
                                                          template_id="123")

        # Act
        manager.documents.create(template=template,
                                 envelope_id="123",
                                 is_signed=True)
        manager.documents.create(template=template2,
                                 envelope_id="122",
                                 is_signed=False)
        manager1.documents.create(template=template,
                                  envelope_id='321',
                                  is_signed=True)
        manager1.documents.create(template=template2,
                                  envelope_id='324',
                                  is_signed=True)

        # Assert
        self.assertFalse(manager.is_all_documents_signed())
        self.assertTrue(manager1.is_all_documents_signed())
Пример #5
0
    def test_resend_pre_tour_documents_not_exist(self):
        """
        Tests that if the user wants to resend the documents but the document doesn't exist,
            then it can't be sent and false is returned
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**",
                                     first_name="TestName",
                                     last_name="TestLast")
        manager = HunterDocManagerModel.objects.create(user=user)
        HunterDocTemplateModel.get_pre_tour_template()

        # Magic mock to prevent remote api call
        DocusignLogin.set_up_docusign_api = MagicMock()
        DocusignWrapper.resend_envelope = MagicMock(return_value=True)

        # Act
        result = manager.resend_pre_tour_documents()

        # Assert
        self.assertFalse(result)
        DocusignWrapper.resend_envelope.assert_not_called()
Пример #6
0
    def test_pre_tour_forms_created(self):
        """
        Tests that if a pretour document exists in the manager for that user then this will
            return true
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**",
                                     first_name="TestName",
                                     last_name="TestLast")
        manager = HunterDocManagerModel.objects.create(user=user)
        template = HunterDocTemplateModel.get_pre_tour_template()
        manager.documents.create(template=template)

        # Act
        result = manager.pre_tour_forms_created()

        # Assert
        self.assertTrue(result)
Пример #7
0
    def test_pre_tour_forms_created_wrong_user(self):
        """
        Tests that if one user has the pre_tour documents created and the other doesn't. Then
            there isn't any conflict across user accounts
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**")
        user1 = MyUser.objects.create(email="*****@*****.**")
        manager = HunterDocManagerModel.objects.create(user=user)
        manager1 = HunterDocManagerModel.objects.create(user=user1)
        template = HunterDocTemplateModel.get_pre_tour_template()
        manager.documents.create(template=template)

        # Act
        result = manager.pre_tour_forms_created()
        result1 = manager1.pre_tour_forms_created()

        # Assert
        self.assertTrue(result)
        self.assertFalse(result1)
Пример #8
0
    def test_is_pre_tour_signed_multiple_users_one_does_not_exist(self):
        """
        Tests that if there are different users, if one has it signed and one does not have a doc created,
            then the user that has it signed returns true and the other is false
        :return:
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**")
        user1 = MyUser.objects.create(email="*****@*****.**")
        manager = HunterDocManagerModel.objects.create(user=user)
        manager1 = HunterDocManagerModel.objects.create(user=user1)
        template = HunterDocTemplateModel.get_pre_tour_template()

        # Act
        manager1.documents.create(template=template,
                                  envelope_id="123",
                                  is_signed=True)

        # Assert
        self.assertFalse(manager.is_pre_tour_signed())
        self.assertTrue(manager1.is_pre_tour_signed())
Пример #9
0
    def test_is_pre_tour_signed_multiple_users(self):
        """
        Tests that if each user has a pre tour document, then if one is signed and one isn't,
            the correct validation is returned from is_pre_tour_signed
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**")
        user1 = MyUser.objects.create(email="*****@*****.**")
        manager = HunterDocManagerModel.objects.create(user=user)
        manager1 = HunterDocManagerModel.objects.create(user=user1)
        template = HunterDocTemplateModel.get_pre_tour_template()

        # Act
        manager.documents.create(template=template,
                                 envelope_id="123",
                                 is_signed=False)
        manager1.documents.create(template=template,
                                  envelope_id="123",
                                  is_signed=True)

        # Assert
        self.assertFalse(manager.is_pre_tour_signed())
        self.assertTrue(manager1.is_pre_tour_signed())
Пример #10
0
    def test_resend_pre_tour_documents_multiple_documents(self):
        """
        Tests that if the user wants to resend the documents but for some reason multiple
            documents are returned, then false is returned
        """
        # Arrange
        user = MyUser.objects.create(email="*****@*****.**",
                                     first_name="TestName",
                                     last_name="TestLast")
        manager = HunterDocManagerModel.objects.create(user=user)
        template = HunterDocTemplateModel.get_pre_tour_template()
        manager.documents.create(template=template, envelope_id='123')
        manager.documents.create(template=template, envelope_id='321')

        # Magic mock to prevent remote api call
        DocusignLogin.set_up_docusign_api = MagicMock()
        DocusignWrapper.resend_envelope = MagicMock(return_value=True)

        # Act
        result = manager.resend_pre_tour_documents()

        # Assert
        self.assertFalse(result)
        DocusignWrapper.resend_envelope.assert_not_called()