Exemplo n.º 1
0
def embedded_signing(request):
    if request.method == 'POST':
        try:
            user_email = request.POST['email']
            user_name = request.POST['name']
            hsclient = HSClient(api_key=API_KEY)

            files = [os.path.dirname(os.path.realpath(__file__)) + "/docs/nda.pdf"]
            signers = [{"name": user_name, "email_address": user_email}]
            cc_email_addresses = []
            sr = hsclient.send_signature_request_embedded(
                "1", CLIENT_ID, files, [], "NDA with Acme Co.",
                "The NDA we talked about", "Please sign this NDA and then we" +
                " can discuss more. Let me know if you have any questions.",
                "", signers, cc_email_addresses)
            embedded = hsclient.get_embeded_object(sr.signatures[0]["signature_id"])
        except KeyError:
            return render(request, 'hellosign/embedded_signing.html', {
                'error_message': "Please enter both your name and email.",
            })
        except NoAuthMethod:
            return render(request, 'hellosign/embedded_signing.html', {
                'error_message': "Please update your settings to include a " +
                "value for API_KEY.",
            })
        else:
            return render(request, 'hellosign/embedded_signing.html', {
                    'client_id': CLIENT_ID,
                    'sign_url': str(embedded.sign_url)
                    })
    else:
        return render_to_response('hellosign/embedded_signing.html',
            context_instance=RequestContext(request))
class TestSignatureRequest(TestCase):
    def setUp(self):
        self.client = HSClient(api_key=api_key)

    def test_signature_request_get(self):
        srl = self.client.get_signature_request_list()
        self.assertTrue(isinstance(srl, list))
        if len(srl) > 0:
            self.assertTrue(isinstance(srl[0], SignatureRequest))
            sr = self.client.get_signature_request(srl[0].signature_request_id)
            self.assertTrue(isinstance(sr, SignatureRequest))
            # Remind
            signer = srl[0].signatures[0].signer_email_address
            try:
                new_sr = self.client.remind_signature_request(srl[0].signature_request_id, signer)
                self.assertEquals(isinstance(new_sr, SignatureRequest), True)
            except Forbidden:
                pass
            # Download
            f = tempfile.NamedTemporaryFile(delete=True)
            temp_filename = f.name
            f.close()
            result = self.client.get_signature_request_file(srl[0].signature_request_id, temp_filename)
            self.assertTrue(result)

            result = self.client.get_signature_request_final_copy(srl[0].signature_request_id, temp_filename)
            self.assertTrue(result)

    def test_signature_request_send(self):
        files = [os.path.dirname(os.path.realpath(__file__)) + "/docs/nda.pdf"]
        signers = [{"name": "Signer Name", "email_address": "*****@*****.**"}]
        cc_email_addresses = ["*****@*****.**", "*****@*****.**"]

        sr = self.client.send_signature_request(
            "1",
            files,
            [],
            "A test signature request",
            "Test request",
            "This is a demo message",
            "",
            signers,
            cc_email_addresses,
        )
        self.assertEquals(isinstance(sr, SignatureRequest), True)
        self.assertEquals(sr.title, "A test signature request")
        self.assertEquals(sr.subject, "Test request")
        self.assertEquals(sr.message, "This is a demo message")

        try:
            self.client.send_signature_request(
                "1",
                None,
                [],
                "Test create signature request",
                "Ky giay no",
                "Ky vao giay no di, le di",
                "",
                signers,
                cc_email_addresses,
            )  # Error
        except HSException:
            pass
        result = self.client.cancel_signature_request(sr.signature_request_id)
        self.assertTrue(result)

        # create embedded
        sr = self.client.send_signature_request_embedded(
            "1",
            client_id,
            files,
            [],
            "A test signature request",
            "Test request",
            "This is a demo message",
            "",
            signers,
            cc_email_addresses,
        )

        self.assertEquals(isinstance(sr, SignatureRequest), True)
        self.assertEquals(sr.title, "A test signature request")
        self.assertEquals(sr.subject, "Test request")
        self.assertEquals(sr.message, "This is a demo message")

        result = self.client.cancel_signature_request(sr.signature_request_id)
        self.assertTrue(result)
class TestSignatureRequest(TestCase):
    def setUp(self):
        self.client = HSClient(api_key=api_key)

    def test_signature_request_get(self):
        srl = self.client.get_signature_request_list()
        self.assertTrue(isinstance(srl, list))
        if len(srl) > 0:
            self.assertTrue(isinstance(srl[0], SignatureRequest))
            sr = self.client.get_signature_request(srl[0].signature_request_id)
            self.assertTrue(isinstance(sr, SignatureRequest))
            # Remind
            signer = srl[0].signatures[0].signer_email_address
            try:
                new_sr = self.client.remind_signature_request(
                    srl[0].signature_request_id, signer)
                self.assertEquals(isinstance(new_sr, SignatureRequest), True)
            except Forbidden:
                pass
            # Download
            f = tempfile.NamedTemporaryFile(delete=True)
            temp_filename = f.name
            f.close()
            result = self.client.get_signature_request_file(
                srl[0].signature_request_id, temp_filename)
            self.assertTrue(result)

            result = self.client.get_signature_request_final_copy(
                srl[0].signature_request_id, temp_filename)
            self.assertTrue(result)

    def test_signature_request_send(self):
        files = [os.path.dirname(os.path.realpath(__file__)) + "/docs/nda.pdf"]
        signers = [{
            "name": "Signer Name",
            "email_address": "*****@*****.**"
        }]
        cc_email_addresses = ["*****@*****.**", "*****@*****.**"]

        sr = self.client.send_signature_request("1", files, [],
                                                "A test signature request",
                                                "Test request",
                                                "This is a demo message", "",
                                                signers, cc_email_addresses)
        self.assertEquals(isinstance(sr, SignatureRequest), True)
        self.assertEquals(sr.title, "A test signature request")
        self.assertEquals(sr.subject, "Test request")
        self.assertEquals(sr.message, "This is a demo message")

        try:
            self.client.send_signature_request("1", None, [],
                                               "Test create signature request",
                                               "Ky giay no",
                                               "Ky vao giay no di, le di", "",
                                               signers,
                                               cc_email_addresses)  # Error
        except HSException:
            pass
        result = self.client.cancel_signature_request(sr.signature_request_id)
        self.assertTrue(result)

        # create embedded
        sr = self.client.send_signature_request_embedded(
            "1", client_id, files, [], "A test signature request",
            "Test request", "This is a demo message", "", signers,
            cc_email_addresses)

        self.assertEquals(isinstance(sr, SignatureRequest), True)
        self.assertEquals(sr.title, "A test signature request")
        self.assertEquals(sr.subject, "Test request")
        self.assertEquals(sr.message, "This is a demo message")

        result = self.client.cancel_signature_request(sr.signature_request_id)
        self.assertTrue(result)