gcap.py
970 Bytes
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()