Source code for q2_cores.OSI.queries.mock_responses

from lxml import etree, objectify
from q2_cores import data_helpers


[docs] def mock_demographic_response_no_phone(): response = get_base_demo_response() root = objectify.fromstring(response) phone_node = root.find(".//PHONES") parent_node = phone_node.getparent() parent_node.remove(phone_node) objectify.SubElement(parent_node, "PHONES") response = etree.tostring(root) return decorate_response(response, 1904)
[docs] def mock_demographic_response_no_address(): response = get_base_demo_response() root = objectify.fromstring(response) address_node = root.find(".//ADDRESSES") parent_node = address_node.getparent() parent_node.remove(address_node) objectify.SubElement(parent_node, "ADDRESSES") response = etree.tostring(root) return decorate_response(response, 1904)
[docs] def get_base_demo_response(): response = """ <ENTITY_DATA_INQ> <ROW_TYPE>ENTITYDATA</ROW_TYPE> <INDEX>1</INDEX> <ENTITY_DATA> <ENTITYTYP>PERS</ENTITYTYP> <ENTITYNBR>67430</ENTITYNBR> <PREFIX></PREFIX> <SUFFIX></SUFFIX> <FIRST_NAME>{first_name}</FIRST_NAME> <MI></MI> <LAST_NAME>{last_name}</LAST_NAME> <DOB>{dob}</DOB> <MMNM>{mothers_maiden_name}</MMNM> <TAXID>{ssn}</TAXID> <ADDRESSES> <ADDRESS> <ADDRUSECD>PRI</ADDRUSECD> <ADDRNBR>142867</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>BUS</ADDRUSECD> <ADDRNBR>142868</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>SEA</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>AL01</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>AL02</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>AL03</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> </ADDRESSES> <ADDRESS_TOT>1</ADDRESS_TOT> <EMAIL>{email}</EMAIL> <PHONES> <PHONE> <PHONEUSECD>PER</PHONEUSECD> <PHONESEQ>3043</PHONESEQ> <AREACD>{phone_1_ac}</AREACD> <EXCHANGE>{phone_1_exch}</EXCHANGE> <PHONENBR>{phone_1_suffix}</PHONENBR> <PHONEEXTEN></PHONEEXTEN> <FOREIGNPHONENBR></FOREIGNPHONENBR> <CTRYCD>USA</CTRYCD> </PHONE> <PHONE> <PHONEUSECD>CELL</PHONEUSECD> <PHONESEQ>18274</PHONESEQ> <AREACD>{cell_ac}</AREACD> <EXCHANGE>{cell_exch}</EXCHANGE> <PHONENBR>{cell_suffix}</PHONENBR> <PHONEEXTEN></PHONEEXTEN> <FOREIGNPHONENBR></FOREIGNPHONENBR> <CTRYCD>USA</CTRYCD> </PHONE> </PHONES> <PHONE_TOT>2</PHONE_TOT> <ENTITY_ID_DATA></ENTITY_ID_DATA> <ID_TOT>0</ID_TOT> <ASOF>20160908160907</ASOF> <USR>123456789</USR> </ENTITY_DATA> </ENTITY_DATA_INQ>""".format( first_name=data_helpers.FIRSTNAME, last_name=data_helpers.LASTNAME, dob=data_helpers.DOB, mothers_maiden_name=data_helpers.MOTHERSMAIDENNAME, ssn=data_helpers.SOCIALSECURITY, address_1=data_helpers.ADDRESS1, address_2=data_helpers.ADDRESS2, city=data_helpers.CITY, state_abbrev=data_helpers.STATEABBRV, zipcode=data_helpers.ZIP, email=data_helpers.EMAIL, phone_1_ac=data_helpers.PHONEAREACODE, phone_1_exch=data_helpers.PHONEEXCHANGE, phone_1_suffix=data_helpers.PHONESUFFIX, cell_ac=data_helpers.CELLAREACODE, cell_exch=data_helpers.CELLEXCHANGE, cell_suffix=data_helpers.CELLSUFFIX, ) return response
[docs] def mock_demographic_response(): response = get_base_demo_response() return decorate_response(response, 1904)
[docs] def decorate_response(response, itc_code): response = [ f"ITC\t{itc_code}\t1", data_helpers.normalize_xml_str(response), "ITC\t1\t0", ] return "\n".join(response)
[docs] def mock_demographic_response_with_namespace(): response = """<ENTITY_DATA_INQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ROW_TYPE>ENTITYDATA</ROW_TYPE> <INDEX>1</INDEX> <ENTITY_DATA> <ENTITYTYP>PERS</ENTITYTYP> <ENTITYNBR>67430</ENTITYNBR> <PREFIX></PREFIX> <SUFFIX></SUFFIX> <FIRST_NAME>{first_name}</FIRST_NAME> <MI></MI> <LAST_NAME>{last_name}</LAST_NAME> <DOB>{dob}</DOB> <MMNM>{mothers_maiden_name}</MMNM> <TAXID>{ssn}</TAXID> <ADDRESSES> <ADDRESS> <ADDRUSECD>PRI</ADDRUSECD> <ADDRNBR>142867</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>BUS</ADDRUSECD> <ADDRNBR>142868</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>SEA</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>AL01</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>AL02</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> <ADDRESS> <ADDRUSECD>AL03</ADDRUSECD> <ADDRNBR>142869</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> </ADDRESSES> <ADDRESS_TOT>1</ADDRESS_TOT> <EMAIL>{email}</EMAIL> <PHONES> <PHONE> <PHONEUSECD>PER</PHONEUSECD> <PHONESEQ>3043</PHONESEQ> <AREACD>{phone_1_ac}</AREACD> <EXCHANGE>{phone_1_exch}</EXCHANGE> <PHONENBR>{phone_1_suffix}</PHONENBR> <PHONEEXTEN></PHONEEXTEN> <FOREIGNPHONENBR></FOREIGNPHONENBR> <CTRYCD>USA</CTRYCD> </PHONE> <PHONE> <PHONEUSECD>CELL</PHONEUSECD> <PHONESEQ>18274</PHONESEQ> <AREACD>{cell_ac}</AREACD> <EXCHANGE>{cell_exch}</EXCHANGE> <PHONENBR>{cell_suffix}</PHONENBR> <PHONEEXTEN></PHONEEXTEN> <FOREIGNPHONENBR></FOREIGNPHONENBR> <CTRYCD>USA</CTRYCD> </PHONE> </PHONES> <PHONE_TOT>2</PHONE_TOT> <ENTITY_ID_DATA></ENTITY_ID_DATA> <ID_TOT>0</ID_TOT> <ASOF>20160908160907</ASOF> <USR>123456789</USR> </ENTITY_DATA> </ENTITY_DATA_INQ>""".format( first_name=data_helpers.FIRSTNAME, last_name=data_helpers.LASTNAME, dob=data_helpers.DOB, mothers_maiden_name=data_helpers.MOTHERSMAIDENNAME, ssn=data_helpers.SOCIALSECURITY, address_1=data_helpers.ADDRESS1, address_2=data_helpers.ADDRESS2, city=data_helpers.CITY, state_abbrev=data_helpers.STATEABBRV, zipcode=data_helpers.ZIP, email=data_helpers.EMAIL, phone_1_ac=data_helpers.PHONEAREACODE, phone_1_exch=data_helpers.PHONEEXCHANGE, phone_1_suffix=data_helpers.PHONESUFFIX, cell_ac=data_helpers.CELLAREACODE, cell_exch=data_helpers.CELLEXCHANGE, cell_suffix=data_helpers.CELLSUFFIX, ) response = ["ITC\t1512\t1", data_helpers.normalize_xml_str(response), "ITC\t1\t0"] return "\n".join(response)
[docs] def mock_demographic_response_with_error(): return "ITC 85 2Security Violation INVALID SSN/PIN Offset:INVALID SSN/PIN Offset - IRBH - IRB - TC96ITC 1 0"
[docs] def mock_unexpected_demographic_response(): return mock_demographic_response().replace("\t", " ")
[docs] def mock_demographic_unknown_types(): response = """ <ENTITY_DATA_INQ> <ROW_TYPE>ENTITYDATA</ROW_TYPE> <INDEX>1</INDEX> <ENTITY_DATA> <ENTITYTYP>PERS</ENTITYTYP> <ENTITYNBR>67430</ENTITYNBR> <PREFIX></PREFIX> <SUFFIX></SUFFIX> <FIRST_NAME>{first_name}</FIRST_NAME> <MI></MI> <LAST_NAME>{last_name}</LAST_NAME> <DOB>{dob}</DOB> <MMNM>{mothers_maiden_name}</MMNM> <TAXID>{ssn}</TAXID> <ADDRESSES> <ADDRESS> <ADDRUSECD>HOME</ADDRUSECD> <ADDRNBR>142867</ADDRNBR> <ADDRLINE1>{address_1}</ADDRLINE1> <ADDRLINE2>{address_2}</ADDRLINE2> <ADDRLINE3></ADDRLINE3> <ADDRLINE4></ADDRLINE4> <ADDRLINE5></ADDRLINE5> <CITY>{city}</CITY> <STATE>{state_abbrev}</STATE> <ZIP>{zipcode}</ZIP> </ADDRESS> </ADDRESSES> <ADDRESS_TOT>1</ADDRESS_TOT> <EMAIL>{email}</EMAIL> <PHONES> <PHONE> <PHONEUSECD>HOME</PHONEUSECD> <PHONESEQ>3043</PHONESEQ> <AREACD>{phone_1_ac}</AREACD> <EXCHANGE>{phone_1_exch}</EXCHANGE> <PHONENBR>{phone_1_suffix}</PHONENBR> <PHONEEXTEN></PHONEEXTEN> <FOREIGNPHONENBR></FOREIGNPHONENBR> <CTRYCD>USA</CTRYCD> </PHONE> </PHONES> <PHONE_TOT>1</PHONE_TOT> <ENTITY_ID_DATA></ENTITY_ID_DATA> <ID_TOT>0</ID_TOT> <ASOF>20160908160907</ASOF> <USR>123456789</USR> </ENTITY_DATA> </ENTITY_DATA_INQ>""".format( first_name=data_helpers.FIRSTNAME, last_name=data_helpers.LASTNAME, dob=data_helpers.DOB, mothers_maiden_name=data_helpers.MOTHERSMAIDENNAME, ssn=data_helpers.SOCIALSECURITY, address_1=data_helpers.ADDRESS1, address_2=data_helpers.ADDRESS2, city=data_helpers.CITY, state_abbrev=data_helpers.STATEABBRV, zipcode=data_helpers.ZIP, email=data_helpers.EMAIL, phone_1_ac=data_helpers.PHONEAREACODE, phone_1_exch=data_helpers.PHONEEXCHANGE, phone_1_suffix=data_helpers.PHONESUFFIX, ) response = ["ITC\t1904\t1", data_helpers.normalize_xml_str(response), "ITC\t1\t0"] return "\n".join(response)
[docs] def mock_email_core_response(): response = ( "ITC 63 111 523291410 EML E-Mail Address abc@email.comITC 71 111 523291410 BEML Activity Mgr" " email xyz@email.comITC 63 111 523291410 UNK E-Mail Address def@email.com" ) return response
[docs] def mock_update_email_response(): response = """ <PROCREQ PROC="1200"> <RESPONSE>OK</RESPONSE> </PROCREQ> """ response = [data_helpers.normalize_xml_str(response), "ITC\t1\t0"] return "\n".join(response)
[docs] def mock_fail_update_email(): response = """ <PROCREQ PROC="1200"> <RESPONSE> <FAILED_MESSAGE>CORE REFUSES TO UPDATE</FAILED_MESSAGE> </RESPONSE> </PROCREQ> """ response = [data_helpers.normalize_xml_str(response), "ITC\t1\t0"] return "\n".join(response)