import requests from requests.auth import HTTPBasicAuth from settings import conf from common.tools.dict_to_xml import dicttoxml, escape_xml from apps.doc import consts from apps.doc.exceptions import GCAPException class GCAP: def __init__(self): self.url = conf.GCAP_URL self.headers = { 'Content-Type': 'text/plain', } self.auth = HTTPBasicAuth(conf.GCAP_AUTH_USER, conf.GCAP_AUTH_PWD) @staticmethod def dict_to_xml(comparison_res): comparison_xml = dicttoxml(comparison_res, root=False, attr_type=False) return consts.BASE_XML_TEXT.format(consts.CDATA_TEXT.format(escape_xml(comparison_xml))).encode('utf-8') def send(self, data): response = requests.post(self.url, headers=self.headers, data=data, verify=False, auth=self.auth) if response.status_code != 200: raise GCAPException('GCAP response with code: {0}'.format(response.status_code)) gcap = GCAP()