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))
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()
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)
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())
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()
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)
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)
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())
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())
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()