<commit_before># pylint: disable=C0111
import requests
import xmltodict

ENDPOINT = \
    'https://invioSS730pTest.sanita.finanze.it/DocumentoSpesa730pWeb/DocumentoSpesa730pPort'

HEADERS = {'content-type': 'text/xml',
           'SOAPAction': '"inserimento.documentospesap730.sanita.finanze.it"'}

BASE = """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:doc="http://documentospesap730.sanita.finanze.it">
   <soapenv:Header/>
   <soapenv:Body>
      <doc:inserimentoDocumentoSpesaRequest>
         <doc:opzionale1></doc:opzionale1>
         <doc:opzionale2></doc:opzionale2>
         <doc:opzionale3></doc:opzionale3>
         <doc:pincode>{pincode}</doc:pincode>
         <doc:Proprietario>
            <doc:cfProprietario>{cfProprietario}</doc:cfProprietario>
         </doc:Proprietario>
         <doc:idInserimentoDocumentoFiscale>
            <doc:idSpesa>
               <doc:pIva>{pIva}</doc:pIva>
               <doc:dataEmissione>{dataEmissione}</doc:dataEmissione>
               <doc:numDocumentoFiscale>
                  <doc:dispositivo>1</doc:dispositivo>
                  <doc:numDocumento>{numDocumento}</doc:numDocumento>
               </doc:numDocumentoFiscale>
            </doc:idSpesa>
            <doc:dataPagamento>{dataPagamento}</doc:dataPagamento>
            <doc:cfCittadino>{cfCittadino}</doc:cfCittadino>
            <doc:voceSpesa>
               <doc:tipoSpesa>SP</doc:tipoSpesa>
               <doc:importo>{importo}</doc:importo>
            </doc:voceSpesa>
         </doc:idInserimentoDocumentoFiscale>
      </doc:inserimentoDocumentoSpesaRequest>
   </soapenv:Body>
</soapenv:Envelope>"""

def send_data(data):
    body = BASE.format(**data)
    response = requests.post(ENDPOINT, data=body, headers=HEADERS, verify=False,
                             auth=(data['username'], data['password']))
    if response.status_code != 200:
        raise ValueError('Errore durante la richiesta: %d' % response.code)
    soap_response = xmltodict.parse(response.content)
    esito = soap_response['soapenv:Envelope']['soapenv:Body']['inserimentoDocumentoSpesaResponse']
    if esito.get('protocollo'):
        return (True, esito['protocollo'])
    else:
        try:
            return (False, esito['listaMessaggi']['messaggio']['descrizione'])
        except TypeError:
            return (False, '; '.join([messaggio['descrizione']
                                      for messaggio in esito['listaMessaggi']['messaggio']]))


if __name__ == "__main__":
    def main():
        data = {
            # pylint: disable=C0301
            'username': 'MTOMRA66A41G224M',
            'password': '<PASSWORD>',
            'pincode': '<KEY>
            'cfProprietario': 'SsFrZY1plknIYKxk2MxIsgCyH2X3cfnrbg7B1aywMzw4SYwfzCa797Bb40vZMlS1pRjBki3SYZT/dao7W7SCwarTTLQqFmfXu7SGBStGzfAyVWcXAZapnW3d8QWfY7EgbktdHPfcoslCqY+K4JJrHQA9H2bk2ngSA7n+xOjuLVw=',
            'pIva': '65498732105',
            'dataEmissione': '2016-01-01',
            'numDocumento': 'P0012',
            'dataPagamento': '2016-01-01',
            'cfCittadino': 'iKvd9JQntqxPBT2UA/OFfztSNLidocP8Op+NfODzfTdxFWzkcdZrJz5gvCuqv7Dh/r3Cin1ZQMmg/BofIqYCyq2PcC+PJzbvQCocDdl6FrXVXs3W5JhnX7VpWFGCLPYYY2WL+RWKxhfkGqeY8+NCVfQ1lEA15g3W5AabJ15Tthk=',
            'importo': '25.3'
        }
        print(send_data(data))

    main()<commit_msg>Errore in caso di risposta HTTP non 200<commit_after># pylint: disable=C0111
import requests
import xmltodict

ENDPOINT = \
    'https://invioSS730pTest.sanita.finanze.it/DocumentoSpesa730pWeb/DocumentoSpesa730pPort'

HEADERS = {'content-type': 'text/xml',
           'SOAPAction': '"inserimento.documentospesap730.sanita.finanze.it"'}

BASE = """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:doc="http://documentospesap730.sanita.finanze.it">
   <soapenv:Header/>
   <soapenv:Body>
      <doc:inserimentoDocumentoSpesaRequest>
         <doc:opzionale1></doc:opzionale1>
         <doc:opzionale2></doc:opzionale2>
         <doc:opzionale3></doc:opzionale3>
         <doc:pincode>{pincode}</doc:pincode>
         <doc:Proprietario>
            <doc:cfProprietario>{cfProprietario}</doc:cfProprietario>
         </doc:Proprietario>
         <doc:idInserimentoDocumentoFiscale>
            <doc:idSpesa>
               <doc:pIva>{pIva}</doc:pIva>
               <doc:dataEmissione>{dataEmissione}</doc:dataEmissione>
               <doc:numDocumentoFiscale>
                  <doc:dispositivo>1</doc:dispositivo>
                  <doc:numDocumento>{numDocumento}</doc:numDocumento>
               </doc:numDocumentoFiscale>
            </doc:idSpesa>
            <doc:dataPagamento>{dataPagamento}</doc:dataPagamento>
            <doc:cfCittadino>{cfCittadino}</doc:cfCittadino>
            <doc:voceSpesa>
               <doc:tipoSpesa>SP</doc:tipoSpesa>
               <doc:importo>{importo}</doc:importo>
            </doc:voceSpesa>
         </doc:idInserimentoDocumentoFiscale>
      </doc:inserimentoDocumentoSpesaRequest>
   </soapenv:Body>
</soapenv:Envelope>"""

def send_data(data):
    body = BASE.format(**data)
    response = requests.post(ENDPOINT, data=body, headers=HEADERS, verify=False,
                             auth=(data['username'], data['password']))
    if response.status_code != 200:
        raise ValueError('Errore durante la richiesta: %d' % response.status_code)
    soap_response = xmltodict.parse(response.content)
    esito = soap_response['soapenv:Envelope']['soapenv:Body']['inserimentoDocumentoSpesaResponse']
    if esito.get('protocollo'):
        return (True, esito['protocollo'])
    else:
        try:
            return (False, esito['listaMessaggi']['messaggio']['descrizione'])
        except TypeError:
            return (False, '; '.join([messaggio['descrizione']
                                      for messaggio in esito['listaMessaggi']['messaggio']]))


if __name__ == "__main__":
    def main():
        data = {
            # pylint: disable=C0301
            'username': 'MTOMRA66A41G224M',
            'password': '<PASSWORD>ve<PASSWORD>',
            'pincode': '<KEY>
            'cfProprietario': '<KEY>
            'pIva': '65498732105',
            'dataEmissione': '2016-01-01',
            'numDocumento': 'P0012',
            'dataPagamento': '2016-01-01',
            'cfCittadino': '<KEY>NCVfQ1lEA15g3W5AabJ15Tthk=',
            'importo': '25.3'
        }
        print(send_data(data))

    main()
{'fraction_non_alphanumeric': 0.13853281853281854, 'fraction_numerical': 0.031505791505791504, 'mean_word_length': 2.8364928909952605, 'pattern_counts': {'":': 2, '<': 96, '<?xml version=': 0, '>': 96, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 12}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4960830', 'n_tokens_mistral': 2425, 'n_tokens_neox': 2310, 'n_words': 248}