from dateutil import parser
from q2_cores import data_helpers
[docs]
def mock_initial_search_response():
response = f"""<Response More="false" TypeOfResponse="GetNameAddressList">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<RequestEcho Echo="true" TypeOfRequestEcho="GetNameAddressList">
<TaxID>{data_helpers.SOCIALSECURITY}</TaxID>
<TaxIDCode>1</TaxIDCode>
<Sequence>1</Sequence>
<GroupName>TEST2</GroupName>
<InstNumber>01</InstNumber>
<Type>PortfolioNameRelationships</Type>
</RequestEcho>
<Sequence>1</Sequence>
<CIFC Number="1" RecordKey="000285981" Response="NameAddressRelationships">
<InstNumber>1</InstNumber>
<RecordType>301</RecordType>
<RelationshipId>123</RelationshipId>
<RelationshipIdType>351</RelationshipIdType>
<RelatedToId>23456</RelatedToId>
<RelatedToIdType>351</RelatedToIdType>
<AddendaType>0</AddendaType>
<AddendaRecordNumber>0</AddendaRecordNumber>
<SequenceNumber>0</SequenceNumber>
<RelationshipCode>1</RelationshipCode>
<DirectIndirectCode>0</DirectIndirectCode>
<PortSequenceNumber>0</PortSequenceNumber>
<DateCreated>3152017.42808</DateCreated>
<RelationshipPercent>0</RelationshipPercent>
<AlternateId>0</AlternateId>
<OverflowFlag>N</OverflowFlag>
<ActivityFlag>0</ActivityFlag>
<AlternateNameLink>0</AlternateNameLink>
<MasterLink>242014</MasterLink>
</CIFC>
<CIFC Number="1" RecordKey="000286199" Response="PortfolioNameRelationships">
<InstNumber>1</InstNumber>
<RecordType>301</RecordType>
<RelationshipId>1234</RelationshipId>
<RelationshipIdType>90</RelationshipIdType>
<RelatedToId>1234</RelatedToId>
<RelatedToIdType>400</RelatedToIdType>
<AddendaType>0</AddendaType>
<AddendaRecordNumber>0</AddendaRecordNumber>
<SequenceNumber>999</SequenceNumber>
<RelationshipCode>0</RelationshipCode>
<DirectIndirectCode>0</DirectIndirectCode>
<PortSequenceNumber>11</PortSequenceNumber>
<DateCreated>2151996.35109</DateCreated>
<RelationshipPercent>0</RelationshipPercent>
<AlternateId>0</AlternateId>
<OverflowFlag>N</OverflowFlag>
<ActivityFlag>0</ActivityFlag>
<AlternateNameLink>0</AlternateNameLink>
<MasterLink>18154</MasterLink>
</CIFC>
<CIFC Number="2" RecordKey="000532987" Response="PortfolioNameRelationships">
<InstNumber>1</InstNumber>
<RecordType>301</RecordType>
<RelationshipId>12345</RelationshipId>
<RelationshipIdType>90</RelationshipIdType>
<RelatedToId>567</RelatedToId>
<RelatedToIdType>400</RelatedToIdType>
<AddendaType>0</AddendaType>
<AddendaRecordNumber>0</AddendaRecordNumber>
<SequenceNumber>999</SequenceNumber>
<RelationshipCode>0</RelationshipCode>
<DirectIndirectCode>0</DirectIndirectCode>
<PortSequenceNumber>28</PortSequenceNumber>
<DateCreated>9102015.42256</DateCreated>
<RelationshipPercent>0</RelationshipPercent>
<AlternateId>0</AlternateId>
<OverflowFlag>N</OverflowFlag>
<ActivityFlag>0</ActivityFlag>
<AlternateNameLink>0</AlternateNameLink>
<MasterLink>18154</MasterLink>
</CIFC>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_initial_search_bad_response():
response = f"""<Response More="false" TypeOfResponse="GetNameAddressList">
<Status>
<StatusCode>100</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>No Portfolio Found</StatusDesc>
</Status>
<RequestEcho Echo="true" TypeOfRequestEcho="GetNameAddressList">
<TaxID>{data_helpers.SOCIALSECURITY}</TaxID>
<TaxIDCode>1</TaxIDCode>
<Sequence>1</Sequence>
<GroupName>TEST2</GroupName>
<InstNumber>01</InstNumber>
<Type>PortfolioNameRelationships</Type>
</RequestEcho>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_demographic_info_response():
response = f"""<Response More="false" TypeOfResponse="GetName">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<RequestEcho Echo="true" TypeOfRequestEcho="GetName">
<NameID>73678</NameID>
<Sequence>1</Sequence>
<GroupName>TEST2</GroupName>
<InstNumber>01</InstNumber>
<Type>Names</Type>
<Type>NameFlexData</Type>
</RequestEcho>
<Sequence>1</Sequence>
<EnterpriseTime>2018-11-26T14:03:13-07:00</EnterpriseTime>
<CIFN Number="1" RecordKey="000073679" Response="Names">
<InstNumber>1</InstNumber>
<NameId>123</NameId>
<CustomerType>0</CustomerType>
<NameFormatCode></NameFormatCode>
<Name>{data_helpers.FULLNAME}</Name>
<ShortLastName>{data_helpers.LASTNAME}</ShortLastName>
<ShortFirstName>{data_helpers.FIRSTNAME}</ShortFirstName>
<MiddleInitial>{data_helpers.MIDDLENAME[0]}</MiddleInitial>
<Soundex>M600000Z26K</Soundex>
<TaxIdCode>1</TaxIdCode>
<TaxIdNumber>{data_helpers.SOCIALSECURITY}</TaxIdNumber>
<TaxIdType>0</TaxIdType>
<TinVerifyAttempts>0</TinVerifyAttempts>
<TinVerifyDate>0</TinVerifyDate>
<NameFlexDataLink>570632</NameFlexDataLink>
<FlexDataExpireDate>0</FlexDataExpireDate>
<FlexDataFmFlag>0</FlexDataFmFlag>
<WithholdingCode>0</WithholdingCode>
<CustomerOpenMethod>0</CustomerOpenMethod>
<LanguagePreference>0</LanguagePreference>
<RetentionCode>0</RetentionCode>
<SignatureLink>0</SignatureLink>
<CreditScore>0</CreditScore>
<RiskScore1>0</RiskScore1>
<RiskScore2>0</RiskScore2>
<RiskRanking>0</RiskRanking>
<NaicsCode>0</NaicsCode>
<DateOpened>2151996.35109</DateOpened>
<DateLastFmActivity>5292018.43248</DateLastFmActivity>
<IrsNameControl></IrsNameControl>
<IrsName></IrsName>
<DisclosureOption></DisclosureOption>
<DisclosureDate>0</DisclosureDate>
<SuspectExemptionCode>0</SuspectExemptionCode>
<IdentInfo>
<CifnIdentInfo Occ="1">
<IdentType>A</IdentType>
<IdentDate>4292013.41392</IdentDate>
<IdentExpireDate>9232018.43365</IdentExpireDate>
<IdentIssuedBy>{data_helpers.DRIVERSLICENSESTATEABBREV}</IdentIssuedBy>
<IdentValue>{data_helpers.DRIVERSLICENSENUM}</IdentValue>
</CifnIdentInfo>
<CifnIdentInfo Occ="2">
<IdentType>d</IdentType>
<IdentDate>0</IdentDate>
<IdentExpireDate>0</IdentExpireDate>
<IdentIssuedBy></IdentIssuedBy>
<IdentValue></IdentValue>
</CifnIdentInfo>
</IdentInfo>
<PrimaryPhoneInd>1</PrimaryPhoneInd>
<PhoneData>
<CifnPhoneData Occ="1">
<PhoneCode>10</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>{data_helpers.PHONEAREACODE}</PhoneArea>
<PhoneNumber>{data_helpers.PHONENUMBERNOAREACODE}</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="2">
<PhoneCode>0</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>000</PhoneArea>
<PhoneNumber>0000000</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="3">
<PhoneCode>0</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>000</PhoneArea>
<PhoneNumber>0000000</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="4">
<PhoneCode>13</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>{data_helpers.CELLAREACODE}</PhoneArea>
<PhoneNumber>{data_helpers.CELLPHONENOAREACODE}</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="5">
<PhoneCode>0</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>000</PhoneArea>
<PhoneNumber>0000000</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="6">
<PhoneCode>12</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>{data_helpers.WORKAREACODE}</PhoneArea>
<PhoneNumber>{data_helpers.WORKPHONENOAREACODE}</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>{data_helpers.WORKEXTENSION}</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="7">
<PhoneCode>0</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>000</PhoneArea>
<PhoneNumber>0000000</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="8">
<PhoneCode>0</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>000</PhoneArea>
<PhoneNumber>0000000</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="9">
<PhoneCode>0</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>000</PhoneArea>
<PhoneNumber>0000000</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="10">
<PhoneCode>0</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>000</PhoneArea>
<PhoneNumber>0000000</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
</PhoneData>
<PrimaryContactInd>0</PrimaryContactInd>
<ContactData>
<CifnContactData Occ="1">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="2">
<ContactCode>1</ContactCode>
<ContactInfo>{data_helpers.EMAIL}</ContactInfo>
</CifnContactData>
<CifnContactData Occ="3">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="4">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="5">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="6">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="7">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="8">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="9">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
<CifnContactData Occ="10">
<ContactCode>0</ContactCode>
<ContactInfo></ContactInfo>
</CifnContactData>
</ContactData>
<BranchNumber>12</BranchNumber>
<AccountingGroup>12</AccountingGroup>
<ResponsibilityCode>2072</ResponsibilityCode>
<ReferralRespCode>0</ReferralRespCode>
<DateOfBirth>{parser.parse(data_helpers.DOB).strftime("%m%d%Y")}.31677</DateOfBirth>
<GenderCode>0</GenderCode>
<RaceCode>0</RaceCode>
<EmpOffDirCode>0</EmpOffDirCode>
<TelebancPassword>0</TelebancPassword>
<ForeignCode>0</ForeignCode>
<ForeignW8FormType>0</ForeignW8FormType>
<ForeignTaxRate>0</ForeignTaxRate>
<ForeignTaxRateFlag>0</ForeignTaxRateFlag>
<ForeignIncomeCode>0</ForeignIncomeCode>
<ForeignExemptionCode>0</ForeignExemptionCode>
<ForeignChapter3Status>0</ForeignChapter3Status>
<ForeignCertifDate>0</ForeignCertifDate>
<ForeignExpireDate>0</ForeignExpireDate>
<ForeignProvinceCode></ForeignProvinceCode>
<ForeignCountryRes></ForeignCountryRes>
<ForeignCountryTax></ForeignCountryTax>
<ForeignGiin></ForeignGiin>
<ForeignPostalCode></ForeignPostalCode>
<ForeignRecipientsCity></ForeignRecipientsCity>
<DateDeceased>0</DateDeceased>
<ActivityFlag>2</ActivityFlag>
<ResidencyStatus>100</ResidencyStatus>
<NameToNameFlag>0</NameToNameFlag>
<NameToAltNameFlag>0</NameToAltNameFlag>
<NameToAddrFlag>1</NameToAddrFlag>
<NameToIrsAddrFlag>0</NameToIrsAddrFlag>
<DdaFlag>1</DdaFlag>
<SavFlag>0</SavFlag>
<CodFlag>0</CodFlag>
<LasFlag>0</LasFlag>
<LinFlag>0</LinFlag>
<CrdFlag>1</CrdFlag>
<SdbFlag>0</SdbFlag>
<PrtFlag>1</PrtFlag>
<CasFlag>0</CasFlag>
<TinMatchingCode></TinMatchingCode>
<ExemptPayeeCode>0</ExemptPayeeCode>
<FatcaExemptRptCode></FatcaExemptRptCode>
<ForeignTaxId></ForeignTaxId>
<ForeignChapter4Status>0</ForeignChapter4Status>
<ForeignWithholdingType>0</ForeignWithholdingType>
<BNoticeDate1>0</BNoticeDate1>
<BNoticeDate2>0</BNoticeDate2>
<BNoticeDate3>0</BNoticeDate3>
<BeneOwnerOptOutFlag>0</BeneOwnerOptOutFlag>
<LastAlternateId>0</LastAlternateId>
<IrsAddressLink>0</IrsAddressLink>
<Addenda01Link>0</Addenda01Link>
<Addenda02Link>0</Addenda02Link>
<NextAvailLink>0</NextAvailLink>
</CIFN>
<BFDF Number="3" RecordKey="000570633" Response="NameFlexData">
<InstNumber>1</InstNumber>
<AccountNumber>73678</AccountNumber>
<Application>50</Application>
<RecordNumber>0</RecordNumber>
<FieldCode>16</FieldCode>
<DataType>1</DataType>
<DataSize>16</DataSize>
<InputIndicator>0</InputIndicator>
<Description>Mothers Maiden Name</Description>
<Value>{data_helpers.MOTHERSMAIDENNAME}</Value>
<SearchFlag>0</SearchFlag>
<ExpirationDate>0</ExpirationDate>
<MasterLink>73679</MasterLink>
<BackLink>570632</BackLink>
<NextLink>570634</NextLink>
<NextAvailLink>0</NextAvailLink>
</BFDF>
<BFDF Number="4" RecordKey="000570634" Response="NameFlexData">
<InstNumber>1</InstNumber>
<AccountNumber>73678</AccountNumber>
<Application>50</Application>
<RecordNumber>0</RecordNumber>
<FieldCode>17</FieldCode>
<DataType>1</DataType>
<DataSize>32</DataSize>
<InputIndicator>0</InputIndicator>
<Description>Place of Birth</Description>
<Value>Colo Spr, CO</Value>
<SearchFlag>0</SearchFlag>
<ExpirationDate>0</ExpirationDate>
<MasterLink>73679</MasterLink>
<BackLink>570633</BackLink>
<NextLink>570635</NextLink>
<NextAvailLink>0</NextAvailLink>
</BFDF>
<BFDF Number="5" RecordKey="000570635" Response="NameFlexData">
<InstNumber>1</InstNumber>
<AccountNumber>73678</AccountNumber>
<Application>50</Application>
<RecordNumber>0</RecordNumber>
<FieldCode>19</FieldCode>
<DataType>1</DataType>
<DataSize>30</DataSize>
<InputIndicator>0</InputIndicator>
<Description>Employer</Description>
<Value>Domino's</Value>
<SearchFlag>0</SearchFlag>
<ExpirationDate>0</ExpirationDate>
<MasterLink>73679</MasterLink>
<BackLink>570634</BackLink>
<NextLink>629067</NextLink>
<NextAvailLink>0</NextAvailLink>
</BFDF>
<BFDF Number="6" RecordKey="000629067" Response="NameFlexData">
<InstNumber>1</InstNumber>
<AccountNumber>73678</AccountNumber>
<Application>50</Application>
<RecordNumber>0</RecordNumber>
<FieldCode>42</FieldCode>
<DataType>1</DataType>
<DataSize>40</DataSize>
<InputIndicator>0</InputIndicator>
<Description>Security Passcode Question</Description>
<Value>Favorite Sports Team?</Value>
<SearchFlag>0</SearchFlag>
<ExpirationDate>0</ExpirationDate>
<MasterLink>73679</MasterLink>
<BackLink>570635</BackLink>
<NextLink>629068</NextLink>
<NextAvailLink>0</NextAvailLink>
</BFDF>
<BFDF Number="7" RecordKey="000629068" Response="NameFlexData">
<InstNumber>1</InstNumber>
<AccountNumber>73678</AccountNumber>
<Application>50</Application>
<RecordNumber>0</RecordNumber>
<FieldCode>46</FieldCode>
<DataType>1</DataType>
<DataSize>40</DataSize>
<InputIndicator>0</InputIndicator>
<Description>Security Passcode Answer</Description>
<Value>Avalanche</Value>
<SearchFlag>0</SearchFlag>
<ExpirationDate>0</ExpirationDate>
<MasterLink>73679</MasterLink>
<BackLink>629067</BackLink>
<NextLink>0</NextLink>
<NextAvailLink>0</NextAvailLink>
</BFDF>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_address_response():
response = f"""<Response More="false" TypeOfResponse="GetPortfolio">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<Sequence>1</Sequence>
<EnterpriseTime>2018-11-27T13:33:04-07:00</EnterpriseTime>
<CIFA Number="1" RecordKey="000006614" Response="Addresses">
<InstNumber>1</InstNumber>
<AddressId>23456</AddressId>
<CrmAddressCode></CrmAddressCode>
<ForeignFlag>0</ForeignFlag>
<Address>{data_helpers.ADDRESS1}</Address>
<Address2>{data_helpers.ADDRESS2}</Address2>
<CityStZip>{data_helpers.CITY} {data_helpers.STATEABBRV} {data_helpers.ZIP}-{data_helpers.ZIPCODELAST4}</CityStZip>
<HandlingCode></HandlingCode>
<HandlingCodeOpt>0</HandlingCodeOpt>
<CountryCode></CountryCode>
<MsaCode>0</MsaCode>
<CensusTract>0</CensusTract>
<DeliveryPt>0</DeliveryPt>
<DeliveryPtCd>2</DeliveryPtCd>
<DeliveryPtFlag>1</DeliveryPtFlag>
<AltCrmAddressCode></AltCrmAddressCode>
<AltForeignFlag>0</AltForeignFlag>
<AltAddress></AltAddress>
<AltAddress2></AltAddress2>
<AltCityStZip></AltCityStZip>
<AltHandlingCode></AltHandlingCode>
<AltHandlingCodeOpt>0</AltHandlingCodeOpt>
<AltCountryCode>00</AltCountryCode>
<AltMsaCode>0</AltMsaCode>
<AltCensusTract>0</AltCensusTract>
<AltDeliveryPt>0</AltDeliveryPt>
<AltDeliveryPtCd>0</AltDeliveryPtCd>
<AltDeliveryPtFlag>0</AltDeliveryPtFlag>
<AltHomePhone>0</AltHomePhone>
<AltFromDate>0</AltFromDate>
<AltThruDate>0</AltThruDate>
<BranchNumber>21</BranchNumber>
<AccountingGroup>21</AccountingGroup>
<ResponsibilityCode>1334</ResponsibilityCode>
<ReferralRespCode>0</ReferralRespCode>
<RetentionCode>0</RetentionCode>
<ActivityFlag>2</ActivityFlag>
<DateOpened>4102001.3699</DateOpened>
<DateLastFmActivity>9252018.43367</DateLastFmActivity>
<PrimaryAddressId>0</PrimaryAddressId>
<PrimaryAddressLink>0</PrimaryAddressLink>
<AddrToPhysAddrFlag>0</AddrToPhysAddrFlag>
<IrsAddrToNameFlag>0</IrsAddrToNameFlag>
<AddrToNameFlag>0</AddrToNameFlag>
<DdaFlag>1</DdaFlag>
<SavFlag>0</SavFlag>
<CodFlag>0</CodFlag>
<LasFlag>0</LasFlag>
<LinFlag>0</LinFlag>
<CrdFlag>1</CrdFlag>
<SdbFlag>1</SdbFlag>
<PrtFlag>1</PrtFlag>
<CasFlag>0</CasFlag>
<NextAvailLink>0</NextAvailLink>
</CIFA>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_wrong_demographic_info_response():
response = f"""<Response More="false" TypeOfResponse="GetName">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<RequestEcho Echo="true" TypeOfRequestEcho="GetName">
<NameID>73678</NameID>
<Sequence>1</Sequence>
<GroupName>TEST2</GroupName>
<InstNumber>01</InstNumber>
<Type>Names</Type>
<Type>NameFlexData</Type>
</RequestEcho>
<Sequence>1</Sequence>
<EnterpriseTime>2018-11-26T14:03:13-07:00</EnterpriseTime>
<CIFN Number="1" RecordKey="000073679" Response="Names">
<InstNumber>1</InstNumber>
<NameId>73678</NameId>
<CustomerType>0</CustomerType>
<NameFormatCode></NameFormatCode>
<Name>{data_helpers.FULLNAME}</Name>
<ShortLastName>{data_helpers.LASTNAME}</ShortLastName>
<ShortFirstName>{data_helpers.FIRSTNAME}</ShortFirstName>
<MiddleInitial>{data_helpers.MIDDLENAME[0]}</MiddleInitial>
<Soundex>M600000Z26K</Soundex>
<TaxIdCode>1</TaxIdCode>
<TaxIdNumber>{data_helpers.SOCIALSECURITY2}</TaxIdNumber>
</CIFN>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_bad_address_response():
response = f"""<Response More="false" TypeOfResponse="GetPortfolio">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<Sequence>1</Sequence>
<EnterpriseTime>2018-11-27T13:33:04-07:00</EnterpriseTime>
<CIFA Number="1" RecordKey="000006614" Response="Addresses">
<InstNumber>1</InstNumber>
<AddressId>6613</AddressId>
<CrmAddressCode></CrmAddressCode>
<ForeignFlag>0</ForeignFlag>
<Address>{data_helpers.ADDRESS1}</Address>
<Address2>{data_helpers.ADDRESS2}</Address2>
<CityStZip></CityStZip>
</CIFA>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_bad_city_address_response():
response = f"""<Response More="false" TypeOfResponse="GetPortfolio">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<Sequence>1</Sequence>
<EnterpriseTime>2018-11-27T13:33:04-07:00</EnterpriseTime>
<CIFA Number="1" RecordKey="000006614" Response="Addresses">
<InstNumber>1</InstNumber>
<AddressId>6613</AddressId>
<CrmAddressCode></CrmAddressCode>
<ForeignFlag>0</ForeignFlag>
<Address>{data_helpers.ADDRESS1}</Address>
<Address2>{data_helpers.ADDRESS2}</Address2>
<CityStZip>{data_helpers.CITY} {data_helpers.STATE}</CityStZip>
</CIFA>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_demographic_info_incomplete_response():
response = f"""<Response More="false" TypeOfResponse="GetName">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<RequestEcho Echo="true" TypeOfRequestEcho="GetName">
<NameID>73678</NameID>
<Sequence>1</Sequence>
<GroupName>TEST2</GroupName>
<InstNumber>01</InstNumber>
<Type>Names</Type>
<Type>NameFlexData</Type>
</RequestEcho>
<Sequence>1</Sequence>
<EnterpriseTime>2018-11-26T14:03:13-07:00</EnterpriseTime>
<CIFN Number="1" RecordKey="000073679" Response="Names">
<InstNumber>1</InstNumber>
<NameId>73678</NameId>
<CustomerType>0</CustomerType>
<NameFormatCode></NameFormatCode>
<Name>{data_helpers.FULLNAME}</Name>
<ShortLastName>{data_helpers.LASTNAME}</ShortLastName>
<ShortFirstName>{data_helpers.FIRSTNAME}</ShortFirstName>
<MiddleInitial>{data_helpers.MIDDLENAME[0]}</MiddleInitial>
<Soundex>M600000Z26K</Soundex>
<TaxIdCode>1</TaxIdCode>
<TaxIdNumber>{data_helpers.SOCIALSECURITY}</TaxIdNumber>
<TaxIdType>0</TaxIdType>
<PhoneData></PhoneData>
<PrimaryContactInd>0</PrimaryContactInd>
<ContactData></ContactData>
<DateOfBirth>{parser.parse(data_helpers.DOB).strftime("%m%d%Y")}.31677</DateOfBirth>
</CIFN>
</Response>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_demographic_reverse_dl_mmn():
response = f"""<Response More="false" TypeOfResponse="GetName">
<Status>
<StatusCode>0</StatusCode>
<ServerStatusCode>0</ServerStatusCode>
<Severity>0</Severity>
<StatusDesc>Success</StatusDesc>
</Status>
<RequestEcho Echo="true" TypeOfRequestEcho="GetName">
<NameID>73678</NameID>
<Sequence>1</Sequence>
<GroupName>TEST2</GroupName>
<InstNumber>01</InstNumber>
<Type>Names</Type>
<Type>NameFlexData</Type>
</RequestEcho>
<Sequence>1</Sequence>
<EnterpriseTime>2018-11-26T14:03:13-07:00</EnterpriseTime>
<CIFN Number="1" RecordKey="000073679" Response="Names">
<InstNumber>1</InstNumber>
<NameId>73678</NameId>
<CustomerType>0</CustomerType>
<NameFormatCode></NameFormatCode>
<Name>{data_helpers.FULLNAME}</Name>
<ShortLastName>{data_helpers.LASTNAME}</ShortLastName>
<ShortFirstName>{data_helpers.FIRSTNAME}</ShortFirstName>
<MiddleInitial>{data_helpers.MIDDLENAME[0]}</MiddleInitial>
<Soundex>M600000Z26K</Soundex>
<TaxIdCode>1</TaxIdCode>
<TaxIdNumber>{data_helpers.SOCIALSECURITY}</TaxIdNumber>
<TaxIdType>0</TaxIdType>
<IdentInfo>
<CifnIdentInfo Occ="2">
<IdentType>d</IdentType>
<IdentDate>0</IdentDate>
<IdentExpireDate>0</IdentExpireDate>
<IdentIssuedBy></IdentIssuedBy>
<IdentValue></IdentValue>
</CifnIdentInfo>
<CifnIdentInfo Occ="2">
<IdentType>50</IdentType>
<IdentDate>0</IdentDate>
<IdentExpireDate>0</IdentExpireDate>
<IdentIssuedBy></IdentIssuedBy>
<IdentValue>{data_helpers.MOTHERSMAIDENNAME}</IdentValue>
</CifnIdentInfo>
</IdentInfo>
<PrimaryPhoneInd>1</PrimaryPhoneInd>
<PhoneData>
<CifnPhoneData Occ="1">
<PhoneCode>10</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>{data_helpers.PHONEAREACODE}</PhoneArea>
<PhoneNumber>{data_helpers.PHONENUMBERNOAREACODE}</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="4">
<PhoneCode>13</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>{data_helpers.CELLAREACODE}</PhoneArea>
<PhoneNumber>{data_helpers.CELLPHONENOAREACODE}</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>000000</PhoneExt>
</CifnPhoneData>
<CifnPhoneData Occ="6">
<PhoneCode>12</PhoneCode>
<PhoneIntl>00000</PhoneIntl>
<PhoneArea>{data_helpers.WORKAREACODE}</PhoneArea>
<PhoneNumber>{data_helpers.WORKPHONENOAREACODE}</PhoneNumber>
<PhoneDescription></PhoneDescription>
<PhoneExt>{data_helpers.WORKEXTENSION}</PhoneExt>
</CifnPhoneData>
</PhoneData>
<ContactData>
<CifnContactData Occ="2">
<ContactCode>1</ContactCode>
<ContactInfo>{data_helpers.EMAIL}</ContactInfo>
</CifnContactData>
</ContactData>
<DateOfBirth></DateOfBirth>
</CIFN>
<BFDF Number="2" RecordKey="000570632" Response="NameFlexData">
<InstNumber>1</InstNumber>
<AccountNumber>73678</AccountNumber>
<Application>50</Application>
<RecordNumber>0</RecordNumber>
<FieldCode>15</FieldCode>
<DataType>1</DataType>
<DataSize>16</DataSize>
<InputIndicator>0</InputIndicator>
<Description>Drivers Licence</Description>
<Value>{data_helpers.DRIVERSLICENSENUM}</Value>
<SearchFlag>0</SearchFlag>
<ExpirationDate>0</ExpirationDate>
<MasterLink>73679</MasterLink>
<BackLink>0</BackLink>
<NextLink>570633</NextLink>
<NextAvailLink>0</NextAvailLink>
</BFDF>
</Response>
"""
return data_helpers.normalize_xml_str(response)