class TestReusableForm(TestCase):
    def setUp(self):
        self.client = HSClient(api_key=api_key)

    def test_resuable_form(self):
        # Get reusable form list, if there's any:
        # Add a user to our team, get the first one
        # if no team exist, create team
        # then add and remove a user from/to this reusableform
        # remove user from our team
        # destroy team
        rfl = self.client.get_reusable_form_list()
        self.assertTrue(isinstance(rfl, list))
        create_team = False
        if len(rfl) > 0:
            self.assertTrue(isinstance(rfl[0], ReusableForm))

            try:
                team = self.client.get_team_info()
            except NotFound:
                team = self.client.create_team("Team Name")
                self.assertTrue(isinstance(team, Team))
                self.assertEquals(team.name, "Team Name")
                create_team = True
            try:
                new_team = self.client.add_team_member("*****@*****.**")
                self.assertTrue(isinstance(new_team, Team))
                team = new_team
                # self.assertTrue("*****@*****.**" in [account["email_address"].encode('UTF8') for account in team.accounts])
            except Forbidden, e:
                pass
            rf = self.client.get_reusable_form(rfl[0].reusable_form_id)
            self.assertTrue(isinstance(rf, ReusableForm))

            try:
                rf = self.client.add_user_to_reusable_form(
                    rfl[0].reusable_form_id, None, "*****@*****.**")
                self.assertTrue(isinstance(rf, ReusableForm))

                rf = self.client.remove_user_from_reusable_form(
                    rfl[0].reusable_form_id, None, "*****@*****.**")
                self.assertTrue(isinstance(rf, ReusableForm))
            except Forbidden:
                pass
            new_team = self.client.remove_team_member("*****@*****.**")
            self.assertTrue(isinstance(team, Team))
            self.assertFalse("demo@example" in [
                account["email_address"].encode('UTF8')
                for account in team.accounts
            ])

            if create_team is True:
                result = self.client.destroy_team()
                self.assertTrue(result)
Exemplo n.º 2
0
def embedded_template_requesting(request):
    try:
        hsclient = HSClient(api_key=API_KEY)
    except NoAuthMethod:
        return render(request, 'hellosign/embedded_template_requesting.html', {
            'error_message': "Please update your settings to include a " +
            "value for API_KEY.",
        })
    if request.method == 'POST':
        try:
            signers = []
            post_dict = parser.parse(request.POST.urlencode())
            template_id = post_dict["template"]
            for key, value in post_dict["signerRole"].iteritems():
                if value:
                    value['role_name'] = key
                    signers.append(value)
            ccs = []
            for key, value in post_dict["ccRole"].iteritems():
                # if value:
                ccs.append({'role_name': key, 'email_address': value})
            custom_fields = []
            for key, value in post_dict["cf"].iteritems():
                if value:
                    custom_fields.append({key: value})
            sr = hsclient.send_signature_request_embedded_with_rf(test_mode = "1",
                client_id = CLIENT_ID, reusable_form_id = template_id, title = "NDA with Acme Co.",
                subject = "The NDA we talked about", message = "Please sign this NDA and then we" +
                " can discuss more. Let me know if you have any questions.",
                signing_redirect_url = "", signers = signers, ccs = ccs, custom_fields = custom_fields)
            embedded = hsclient.get_embeded_object(sr.signatures[0]["signature_id"])
        # TODO: need some more validations here
        # except KeyError:
        #     return render(request, 'hellosign/embedded_template_requesting.html', {
        #         'error_message': "Please enter both your name and email.",
        #     })
        except NoAuthMethod:
            pass
        else:
            return render(request, 'hellosign/embedded_template_requesting.html', {
                    'client_id': CLIENT_ID,
                    'sign_url': str(embedded.sign_url)
                    })
    else:
        rf_list = hsclient.get_reusable_form_list()
        templates = "[";
        for rf in rf_list:
            # print json.dumps(rf.json_data)
            templates = templates + json.dumps(rf.json_data) + ", "
        templates = templates + "]"
        return render(request, 'hellosign/embedded_template_requesting.html', {
                    'templates': templates
                    })
class TestReusableForm(TestCase):

    def setUp(self):
        self.client = HSClient(api_key=api_key)

    def test_resuable_form(self):
        # Get reusable form list, if there's any:
        # Add a user to our team, get the first one
        # if no team exist, create team
        # then add and remove a user from/to this reusableform
        # remove user from our team
        # destroy team
        rfl = self.client.get_reusable_form_list()
        self.assertTrue(isinstance(rfl, list))
        create_team = False
        if len(rfl) > 0:
            self.assertTrue(isinstance(rfl[0], ReusableForm))

            try:
                team = self.client.get_team_info()
            except NotFound:
                team = self.client.create_team("Team Name")
                self.assertTrue(isinstance(team, Team))
                self.assertEquals(team.name, "Team Name")
                create_team = True
            try:
                new_team = self.client.add_team_member("*****@*****.**")
                self.assertTrue(isinstance(new_team, Team))
                team = new_team
                # self.assertTrue("*****@*****.**" in [account["email_address"].encode('UTF8') for account in team.accounts])
            except Forbidden, e:
                pass
            rf = self.client.get_reusable_form(rfl[0].reusable_form_id)
            self.assertTrue(isinstance(rf, ReusableForm))

            try:
                rf = self.client.add_user_to_reusable_form(
                    rfl[0].reusable_form_id, None, "*****@*****.**")
                self.assertTrue(isinstance(rf, ReusableForm))

                rf = self.client.remove_user_from_reusable_form(
                    rfl[0].reusable_form_id, None, "*****@*****.**")
                self.assertTrue(isinstance(rf, ReusableForm))
            except Forbidden:
                pass
            new_team = self.client.remove_team_member("*****@*****.**")
            self.assertTrue(isinstance(team, Team))
            self.assertFalse("demo@example" in [account["email_address"].encode('UTF8') for account in team.accounts])

            if create_team is True:
                result = self.client.destroy_team()
                self.assertTrue(result)