def test_populate_signature_missing_agreement_date(): tree = ET.fromstring(content_icla_missing_agreement_date) signed_date = "2020-12-21T08:30:10.133" signature = Signature() populate_signature_from_icla_callback(content_icla_agreement_date, tree, signature) assert signature.get_user_docusign_name() == "Example FullName" assert signature.get_user_docusign_date_signed() == signed_date assert signature.get_user_docusign_raw_xml() == content_icla_agreement_date
def test_populate_signature_from_icla_callback(): tree = ET.fromstring(content_icla_agreement_date) agreement_date = "2020-12-21T08:29:20.51" signature = Signature() populate_signature_from_icla_callback(content_icla_agreement_date, tree, signature) assert signature.get_user_docusign_name() == "Example FullName" assert signature.get_user_docusign_date_signed() == agreement_date assert signature.get_user_docusign_raw_xml() == content_icla_agreement_date assert "user_docusign_name" in signature.to_dict(), "" assert "user_docusign_date_signed" in signature.to_dict() assert "user_docusign_raw_xml" not in signature.to_dict() assert "user_docusign_name" in str(signature) assert "user_docusign_date_signed" in str(signature) assert "user_docusign_raw_xml" not in str(signature)
def test_populate_signature_from_ccla_callback(): content = """<?xml version="1.0" encoding="utf-8"?> <DocuSignEnvelopeInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.net/API/3.0"> <EnvelopeStatus> <RecipientStatuses> <RecipientStatus> <Type>Signer</Type> <Email>[email protected]</Email> <UserName>Example Username</UserName> <RoutingOrder>1</RoutingOrder> <Sent>2020-12-17T07:43:56.203</Sent> <Delivered>2020-12-17T07:44:08.52</Delivered> <Signed>2020-12-17T07:44:30.673</Signed> <DeclineReason xsi:nil="true"/> <Status>Completed</Status> <RecipientIPAddress>108.168.239.94</RecipientIPAddress> <ClientUserId>74dd08c2-9c4b-41ee-b65f-cf243abf65e6</ClientUserId> <CustomFields/> <TabStatuses> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>304</XPosition> <YPosition>170</YPosition> <TabLabel>signatory_name</TabLabel> <TabName>Signatory Name</TabName> <TabValue>Example Signatory</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <OriginalValue>Example Signatory</OriginalValue> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>304</XPosition> <YPosition>229</YPosition> <TabLabel>signatory_email</TabLabel> <TabName>Signatory E-mail</TabName> <TabValue>[email protected]</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <OriginalValue>[email protected]</OriginalValue> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>320</XPosition> <YPosition>343</YPosition> <TabLabel>corporation_name</TabLabel> <TabName>Corporation Name</TabName> <TabValue>The Linux Foundation</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <OriginalValue>The Linux Foundation</OriginalValue> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>412</XPosition> <YPosition>575</YPosition> <TabLabel>cla_manager_name</TabLabel> <TabName>Initial CLA Manager Name</TabName> <TabValue>Example Signatory</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <OriginalValue>Example Signatory</OriginalValue> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>412</XPosition> <YPosition>631</YPosition> <TabLabel>cla_manager_email</TabLabel> <TabName>Initial CLA Manager Email</TabName> <TabValue>[email protected]</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <OriginalValue>[email protected]</OriginalValue> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>SignHere</TabType> <Status>Signed</Status> <XPosition>264</XPosition> <YPosition>22</YPosition> <TabLabel>sign</TabLabel> <TabName>Please Sign</TabName> <TabValue/> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>304</XPosition> <YPosition>285</YPosition> <TabLabel>signatory_title</TabLabel> <TabName>Signatory Title</TabName> <TabValue>CEO</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>327</XPosition> <YPosition>397</YPosition> <TabLabel>corporation_address1</TabLabel> <TabName>Corporation Address1</TabName> <TabValue>113</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>116</XPosition> <YPosition>452</YPosition> <TabLabel>corporation_address2</TabLabel> <TabName>Corporation Address2</TabName> <TabValue>adsfasdf</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>Custom</TabType> <Status>Signed</Status> <XPosition>116</XPosition> <YPosition>512</YPosition> <TabLabel>corporation_address3</TabLabel> <TabName>Corporation Address3</TabName> <TabValue>asdfadf</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> <CustomTabType>Text</CustomTabType> </TabStatus> <TabStatus> <TabType>DateSigned</TabType> <Status>Signed</Status> <XPosition>735</XPosition> <YPosition>110</YPosition> <TabLabel>date</TabLabel> <TabName>Date</TabName> <TabValue>12/17/2020</TabValue> <DocumentID>47977</DocumentID> <PageNumber>3</PageNumber> </TabStatus> </TabStatuses> <RecipientAttachment> <Attachment> <Data>redacted by example as it looks to be a base64 encoded string</Data> <Label>DSXForm</Label> </Attachment> </RecipientAttachment> <AccountStatus>Active</AccountStatus> <EsignAgreementInformation> <AccountEsignId>f78e337a-a9c7-47e6-bc20-6f75a84706ba</AccountEsignId> <UserEsignId>d8b49626-cf1d-41dc-bc3f-9478a57036ff</UserEsignId> <AgreementDate>2020-12-17T07:44:08.503</AgreementDate> </EsignAgreementInformation> <FormData> <xfdf> <fields> <field name="signatory_name"> <value>Example Signatory</value> </field> <field name="signatory_email"> <value>[email protected]</value> </field> <field name="corporation_name"> <value>The Linux Foundation</value> </field> <field name="cla_manager_name"> <value>Example Signatory</value> </field> <field name="cla_manager_email"> <value>[email protected]</value> </field> <field name="signatory_title"> <value>CEO</value> </field> <field name="corporation_address1"> <value>113</value> </field> <field name="corporation_address2"> <value>adsfasdf</value> </field> <field name="corporation_address3"> <value>asdfadf</value> </field> <field name="DateSigned"> <value>12/17/2020</value> </field> </fields> </xfdf> </FormData> <RecipientId>dac1279d-7cc7-4a34-84ae-be0bff04af9b</RecipientId> </RecipientStatus> </RecipientStatuses> <TimeGenerated>2020-12-17T07:44:53.0177631</TimeGenerated> <EnvelopeID>c915984a-f761-4c28-ac2c-767253ba3362</EnvelopeID> <Subject>EasyCLA: CLA Signature Request for CommonTraceFormat</Subject> <UserName>Example Signatory</UserName> <Email>[email protected]</Email> <Status>Completed</Status> <Created>2020-12-17T07:43:55.687</Created> <Sent>2020-12-17T07:43:56.233</Sent> <Delivered>2020-12-17T07:44:08.707</Delivered> <Signed>2020-12-17T07:44:30.673</Signed> <Completed>2020-12-17T07:44:30.673</Completed> <ACStatus>Original</ACStatus> <ACStatusDate>2020-12-17T07:43:55.687</ACStatusDate> <ACHolder>Example Signatory</ACHolder> <ACHolderEmail>[email protected]</ACHolderEmail> <ACHolderLocation>DocuSign</ACHolderLocation> <SigningLocation>Online</SigningLocation> <SenderIPAddress>3.237.106.64</SenderIPAddress> <EnvelopePDFHash/> <CustomFields> <CustomField> <Name>AccountId</Name> <Show>false</Show> <Required>false</Required> <Value>10406522</Value> <CustomFieldType>Text</CustomFieldType> </CustomField> <CustomField> <Name>AccountName</Name> <Show>false</Show> <Required>false</Required> <Value>Linux Foundation</Value> <CustomFieldType>Text</CustomFieldType> </CustomField> <CustomField> <Name>AccountSite</Name> <Show>false</Show> <Required>false</Required> <Value>demo</Value> <CustomFieldType>Text</CustomFieldType> </CustomField> </CustomFields> <AutoNavigation>true</AutoNavigation> <EnvelopeIdStamping>true</EnvelopeIdStamping> <AuthoritativeCopy>false</AuthoritativeCopy> <DocumentStatuses> <DocumentStatus> <ID>47977</ID> <Name>Apache Style</Name> <TemplateName/> <Sequence>1</Sequence> </DocumentStatus> </DocumentStatuses> </EnvelopeStatus> <TimeZone>Pacific Standard Time</TimeZone> <TimeZoneOffset>-8</TimeZoneOffset> </DocuSignEnvelopeInformation> """ tree = ET.fromstring(content) signature = Signature() populate_signature_from_ccla_callback(content, tree, signature) assert signature.get_user_docusign_name() == "Example Signatory" assert signature.get_user_docusign_date_signed( ) == "2020-12-17T07:44:08.503" assert signature.get_user_docusign_raw_xml() == content assert signature.get_signing_entity_name() == "The Linux Foundation" assert "user_docusign_name" in signature.to_dict() assert "signing_entity_name" in signature.to_dict() assert "user_docusign_date_signed" in signature.to_dict() assert "user_docusign_raw_xml" not in signature.to_dict() assert "user_docusign_name" in str(signature) assert "user_docusign_date_signed" in str(signature) assert "user_docusign_raw_xml" not in str(signature)