Example #1
0
 def test_render_response_as_xml(self):
     response = self.fetch('/controller/render-to-extension.xml')
     self.assertTrue('Content-Type' in response.headers)
     self.assertEqual(response.headers['Content-Type'], 'text/xml; charset=UTF-8')
     self.assertEqual(response.code, 200)
     parsed_response = simplexml.loads(response.body)
     self.assertEqual(parsed_response, self.EXPECTED_RESPONSE)
Example #2
0
 def test_render_response_as_xml(self):
     response = self.fetch('/controller/render-to-extension.xml')
     self.assertTrue('Content-Type' in response.headers)
     self.assertEqual(response.headers['Content-Type'], 'text/xml; charset=UTF-8')
     self.assertEqual(response.code, 200)
     parsed_response = simplexml.loads(response.body)
     self.assertEqual(parsed_response, self.EXPECTED_RESPONSE)
    def _get_leaderboard_entries(self):
        url = '{base}/stats/{appid}/leaderboards/{lbid}/?xml=1&start={start}&end={end}'.format(
            base=self.URL_BASE,
            appid=self._appid,
            lbid=self._lbid,
            start=self._start,
            end=self._end)
        try:
            r = urllib2.urlopen(url)
        except Exception:
            raise

        xml = r.read()
        data = simplexml.loads(xml)['response']

        self._total_entries = int(data['totalLeaderboardEntries'])

        tmp = []
        for entry in data['entries']:
            try:
                # handle single entries
                if entry['steamid']:
                    pass
            except TypeError:
                entry = data['entries']['entry']

            tmp.append({
                'rank': int(entry['rank']),
                'score': int(entry['score']),
                'steamid': entry['steamid'],
                'details': entry['details']})

        return tmp
Example #4
0
    def upload(self, file_name, dirname, title, description, channel, privacy=0, metatags=''):
        video_dados = {
            'video': {
                'titulo': title,
                'descricao': description,
                'canal': channel,
                'privacidade': privacy,
                'metatags': metatags
            }
        }

        headers = {
            'Content-Type': "application/x-www-form-urlencoded"
        }
        content    = self._make_request('POST', '/video.xml', params=simplexml.dumps(video_dados), headers=headers)
        video_uuid = simplexml.loads(content)['video']['uuid']

        file_path = "%s/%s" % (dirname.rstrip('/'), file_name)
        if not os.path.isfile(file_path):
            raise ValueError("File does not exist %s" % file_path)

        file_data = open(file_path).read()
        try:
            self.post_multipart(selector='/video/%s/upload' % video_uuid, files=(("video", file_name, file_data),), headers=headers)
            return True
        except APIError, e:
            _logger.info("Error uploading video %s: %s" % (file_name, e))
            return False
Example #5
0
    def _make_request(self, action, total, params=None, version=None):
        params = params or {}
        version = version or self.version

        assert isinstance(action, str)
        assert isinstance(total, str)
        assert isinstance(params, dict)

        default_params = {
            'estabelecimento': self.establishment_id,
            'acao': action,
            'chave': self._generate_auth_key(action, total, version),
            'valor_total': total,
            'versao': self.version
        }
        if self.sandbox:
            default_params['teste'] = '1'

        params.update(default_params)

        response = requests.post(self.endpoint, params=params)

        response_data = simplexml.loads(response.text\
            .encode(response.encoding))

        if 'erro' in response_data:
            raise IPagareError(response_data['erro'])

        return response_data
    def _get_leaderboard_id(self):
        if self._date is None:
            date = (datetime.datetime.now() -
                    datetime.timedelta(hours=11)).strftime('%Y%m%d')

        board_name = date + '_scores'

        url = '{base}/stats/{appid}/leaderboards/?xml=1'.format(
            base=self.URL_BASE,
            appid=self._appid)
        try:
            r = urllib2.urlopen(url)
        except Exception:
            raise

        xml = r.read()
        data = simplexml.loads(xml)

        for board in data['response']['leaderboard']:
            if board['name'] == board_name:
                if board['entries'] < 100:
                    self._date = (
                        datetime.date.today() -
                        datetime.timedelta(1).strftime(
                        '%Y%m%d'))
                    self._lbid = self._get_leaderboard_id()

                return board['lbid']
Example #7
0
    def test_v01_response_format(self):
        rv = self.app.get('/api/v.0.1/users/',
                          headers={"accept": "application/xml"})
        self.assertIsNotNone(simplexml.loads(rv.data))

        rv = self.app.get('/api/v.0.1/users/',
                          headers={"accept": "application/json"})
        self.assertIsNotNone(json.loads(rv.data))
Example #8
0
def load_xml(filepath):
    """
    load PGEMConfig in dict format from xml file.
    :param filepath: file to load config
    :return: config dict
    """
    with open(filepath) as f:
        result = loads(f.read())
        return result
Example #9
0
def airplanes_import(request: HttpRequest):
    if request.method == 'POST':
        body = request.FILES["file"].read()
        airplanes_dict = simplexml.loads(body)['airplanes']
        airplanes = [Airplane(0, a['modelname'], a['builddate']) for a in airplanes_dict]
        with connect() as connection:
            repository = Airplanes(connection)
            repository.import_all(airplanes)
        return HttpResponse(status=200)
Example #10
0
def test_can_loads_list_same_name():

    docxml = "<someTag><name>Should be name</name><item><type>Should Be Type item1</type></item><item><type>Should Be Type item2</type></item></someTag>"

    response = simplexml.loads(docxml)

    assert response['someTag']['name'] == 'Should be name'
    assert type(response['someTag']['item']) == list
    assert response['someTag']['item'][0]['type'] == 'Should Be Type item1'
Example #11
0
def load_xml(filepath):
    """
    load PGEMConfig in dict format from xml file.
    :param filepath: file to load config
    :return: config dict
    """
    with open(filepath) as f:
        result = loads(f.read())
        return result
Example #12
0
def test_can_loads():

    docxml = "<someTag><name>Should be name</name><itens><item><type>Should Be Type item1</type></item><item><type>Should Be Type item2</type></item></itens></someTag>"

    response = simplexml.loads(docxml)

    assert response['someTag']['name'] == 'Should be name'
    assert type(response['someTag']['itens']) == list
    assert response['someTag']['itens'][0]['type'] == 'Should Be Type item1'
Example #13
0
def airports_import(request: HttpRequest):
    if request.method == 'POST':
        Airport.objects.all().delete()
        body = request.FILES["file"].read()
        airports_dict = simplexml.loads(body)['airports']
        for a in airports_dict:
            airport = Airport(name=a['name'], code=a['code'], city=a['city'])
            airport.save()
        return HttpResponse(status=204)
Example #14
0
def airplanes_import(request: HttpRequest):
    if request.method == 'POST':
        Airplane.objects.all().delete()
        body = request.FILES["file"].read()
        airplanes_dict = simplexml.loads(body)['airplanes']
        for a in airplanes_dict:
            airplane = Airplane(modelname=a['modelname'],
                                builddate=a['builddate'])
            airplane.save()
        return HttpResponse(status=204)
def convert_userlist():
    with open(os.path.join(CV_HOME, 'ul.xml'), 'r') as f, open(os.path.join(CV_HOME, 'userlist.csv'), 'wb') as w:
        ulx = simplexml.loads(f.read())

        users = []

        for eu in ulx['USER_LIST_OUTPUT']['USER_LIST']['USER']:

            ul = OrderedDict() 
            ul['USER_LOGIN'] = eu['USER_LOGIN']
            ul['USER_STATUS'] = eu['USER_STATUS']
            ul['CREATION_DATE'] = eu['CREATION_DATE']
            ul['LAST_LOGIN_DATE'] = eu['LAST_LOGIN_DATE']

                
            # Contact Info
            ul['FIRSTNAME'] = eu['CONTACT_INFO']['FIRSTNAME']
            ul['LASTNAME'] = eu['CONTACT_INFO']['LASTNAME']
            ul['TITLE'] = eu['CONTACT_INFO']['TITLE']
            ul['PHONE'] = eu['CONTACT_INFO']['PHONE']
            ul['EMAIL'] = eu['CONTACT_INFO']['EMAIL']
            ul['COMPANY'] = eu['CONTACT_INFO']['COMPANY']
            ul['TIME_ZONE_CODE'] = eu['CONTACT_INFO']['TIME_ZONE_CODE']
            ul['ADDRESS1'] = eu['CONTACT_INFO']['ADDRESS1']
            ul['ADDRESS2'] = eu['CONTACT_INFO']['ADDRESS2']
            ul['CITY'] = eu['CONTACT_INFO']['CITY']
            ul['COUNTRY'] = eu['CONTACT_INFO']['COUNTRY']
            ul['STATE'] = eu['CONTACT_INFO']['STATE']
            ul['ZIP_CODE'] = eu['CONTACT_INFO']['ZIP_CODE']

            ul['BUSINESS_UNIT'] = eu['BUSINESS_UNIT']
            ul['UI_INTERFACE_STYLE'] = eu['UI_INTERFACE_STYLE']

            # Permissions
            ul['PERMISSIONS_CREATE_OPTION_PROFILES'] = eu['PERMISSIONS']['CREATE_OPTION_PROFILES']
            ul['PERMISSIONS_PURGE_INFO'] = eu['PERMISSIONS']['PURGE_INFO']
            ul['PERMISSIONS_ADD_ASSETS'] = eu['PERMISSIONS']['ADD_ASSETS']
            ul['PERMISSIONS_EDIT_REMEDIATION_POLICY'] = eu['PERMISSIONS']['EDIT_REMEDIATION_POLICY']
            ul['PERMISSIONS_EDIT_AUTH_RECORDS'] = eu['PERMISSIONS']['EDIT_AUTH_RECORDS']

            # Notifications
            ul['NOTIFY_LATEST_VULN'] = eu['NOTIFICATIONS']['LATEST_VULN']
            ul['NOTIFY_MAP'] = eu['NOTIFICATIONS']['MAP']
            ul['NOTIFY_SCAN'] = eu['NOTIFICATIONS']['SCAN']
            ul['DAILY_TICKETS'] = eu['NOTIFICATIONS']['DAILY_TICKETS']

            users.append(ul)
        
        csv_headers = users[0].keys()

        dw = csv.DictWriter(w, dialect='excel', fieldnames=csv_headers, quoting=csv.QUOTE_ALL, delimiter=',', quotechar='"', strict=True, doublequote=True, lineterminator='\n', escapechar="\\")
        dw.writeheader()

        for user in users:
            dw.writerow(user)
Example #16
0
def pilots_import(request: HttpRequest):
    if request.method == 'POST':
        Pilot.objects.all().delete()
        body = request.FILES["file"].read()
        pilots_dict = simplexml.loads(body)['pilots']
        for p in pilots_dict:
            pilot = Pilot(firstname=p['firstname'],
                          lastname=p['lastname'],
                          starting_date=p['starting_date'])
            pilot.save()
        return HttpResponse(status=204)
Example #17
0
def pilots_import(request: HttpRequest):
    if request.method == 'POST':
        body = request.FILES["file"].read()
        print(body)
        pilots_dict = simplexml.loads(body)['pilots']
        print(pilots_dict)
        pilots = [Pilot(0, p['firstname'], p['lastname'], p['starting_date']) for p in pilots_dict]
        with connect() as connection:
            repository = Pilots(connection)
            repository.import_all(pilots)
        return HttpResponse(status=200)
Example #18
0
def import_projects(request):
    if request.method == 'POST':
        Project.objects.all().delete()
        req_body = request.FILES['file'].read()
        projects_dict = simplexml.loads(req_body)['projects']
        for p in projects_dict:
            project_tosave = Project(name=p['name'],
                                     description=p['description'])
            project_tosave.save()
        return HttpResponse(status=200)
    return HttpResponse(status=400)
Example #19
0
def import_payments(request):
    if request.method == 'POST':
        Employee.objects.all().delete()
        req_body = request.FILES['file'].read()
        payments_dict = simplexml.loads(req_body)['payments']
        for p in payments_dict:
            payment_tosave = Payment(method=p['method'],
                                     raw_salary=p['raw_salary'],
                                     tax_rate=p['tax_rate'])
            payment_tosave.save()
        return HttpResponse(status=200)
    return HttpResponse(status=400)
Example #20
0
def one_click_services(eticket, octoken, currency_lang, url_options):
	oneclick_record = None;
	dynamic_price = 9999;
	pricingguid = ''

	try:
		ppid = eticket.split(':')
		multitrans_oneclick_record = {}
		sql = "select * from MerchantBillConfig where BillConfigID = {}"
		mbconfig = db_agent.execute_select_one_parameter(sql, ppid[1])
		pricepoint_type = mbconfig['Type']
		merchantid = mbconfig['MerchantID']
		if pricepoint_type == 510:
			dynamic_price = decimal.Decimal('%d.%d' % (random.randint(3, 19), random.randint(0, 99)))
			hash_url = f"https://srs.segpay.com/PricingHash/PricingHash.svc/GetDynamicTrans?value={dynamic_price}"
			resp = requests.get(hash_url)
			dynamic_hash = fromstring(resp.text).text
			url = f"{config.urlws}{eticket}&amount={dynamic_price}&dynamictrans={dynamic_hash}&dynamicdesc=QA+TEST&octoken={octoken}" + url_options
		elif pricepoint_type == 511:
			pricingguid = db_agent.get_pricingguid(merchantid, pricepoint_type)[0]
			url = f"{config.urlws}{eticket}&DynamicPricingID={pricingguid['PricingGuid']}&octoken={octoken}" + url_options
		else:
			url = f"{config.urlws}{eticket}&octoken={octoken}" + url_options
		print(url)
		resp = requests.get(url)
		xml_return_string = simplexml.loads(resp.content)
		transid = int(xml_return_string['TransReturn']['TransID'])
		# oneclick_record = db_agent.multitrans_full_record(transid, '', '')
		# full_record = oneclick_record[0]

		cnt = 0
		while oneclick_record == None and cnt < 15:
			cnt += 1
			time.sleep(1)
			sql = "select * from multitrans where TransID = '{}'"
			oneclick_record = db_agent.execute_select_one_parameter(sql, transid)

		if pricepoint_type == 511:
			oneclick_record['511'] = pricingguid
		elif pricepoint_type == 510:
			oneclick_record['510'] = dynamic_price
		print(f"OneClick Web Services => Eticket: {eticket}  | Processor: {oneclick_record['Processor']} "
		      f"| DMC: {currency_lang[0]} | Lnaguage: {currency_lang[1]} | Type: {pricepoint_type}")
		print(f"PurchaseID: {oneclick_record['PurchaseID']} | TransID: {oneclick_record['TransID']} | TransGuid: {oneclick_record['TRANSGUID']}")
		return oneclick_record




	except Exception as ex:
		traceback.print_exc()
		print(f"{Exception}  Eticket: {eticket} Module => one_click_services ")
		pass
    def handle(self, *args, **options):
        
        for casa in CasaGovernamental.objects.all():
            
            document = PyQuery(url="http://www.excelencias.org.br/@casa.php?pr=1&casa=%s" % casa.id_referencia)
            combo = document.find('select#escnome.casa')
            
            print("[Import Politico] - casa %s" % (casa.nome))
            
            options = combo.children()
            for i in xrange(1, len(options)):
                option = options.eq(i)[0]
                
                id_transparencia = int(option.attrib.get('value'))
                if id_transparencia > 0:
                    
                    try:
                        politico = Politico.objects.get(id_transparencia=id_transparencia)
                        
                        print("\t[Import Politico] - %s de %s, Politico ja existe %s, %s" % (i, len(options), politico.nome, politico.slug))

                    except Politico.DoesNotExist:
                        
                        try:
                            url = 'http://www.excelencias.org.br/candidato/@candidato_direta.php?id=%s' % id_transparencia
                            data = urllib.urlopen(url)
                        
                            data_content = data.read()
                            data_content = data_content.replace('&', '&amp;')
                            politico_data = simplexml.loads(data_content)
                                
                            politico_data_principal = politico_data.get('transparencia').get('parlamentar').get('principal')
                        
                            cpf = politico_data_principal.get('cpf', '').replace('.', '').replace('-', '')
                            politico = Politico.objects.create(
                                nome = politico_data_principal.get('nomeBatismo'),
                                apelido = politico_data_principal.get('apelido'),
                                slug = generate_slug(politico_data_principal.get('apelido')),
                                cpf = cpf or None,
                                partido = Partido.objects.get(sigla=politico_data_principal.get('partido', '').replace(' ', '')),
                                uf = UF.objects.get(sigla=politico_data_principal.get('uf')),
                                email = politico_data_principal.get('email', ''),
                                imagem = politico_data_principal.get('imagem'),
                                biografia = politico_data_principal.get('cargosRelevantes', ''),
                                casa_governamental = casa,
                                id_transparencia = id_transparencia
                            )

                            print("\t[Import Politico] - %s de %s, Politico criado %s, %s" % (i, len(options), politico.nome, politico.slug))

                        except Exception, e:
                            print "\t=== Oops, ocorreu um erro com a url %s: \n\t %s" % (url, e)
Example #22
0
def import_employees(request):
    if request.method == 'POST':
        Employee.objects.all().delete()
        req_body = request.FILES['file'].read()
        employees_dict = simplexml.loads(req_body)['employees']
        for e in employees_dict:
            e_is_intern = 1 if '1' in e['is_intern'] else 0
            employee_tosave = Employee(full_name=e['full_name'],
                                       characteristics=e['characteristics'],
                                       is_intern=e_is_intern)
            employee_tosave.save()
        return HttpResponse(status=200)
    return HttpResponse(status=400)
Example #23
0
def import_projects(request):
    if request.method == 'POST':
        req_body = request.FILES['file'].read()
        projects_dict = simplexml.loads(req_body)['projects']
        projects = [
            Project(0, p['name'], p['description'])
            for p in projects_dict
        ]
        with connect() as conn:
            dbprojects = Projects(conn)
            dbprojects.importall(projects)
        return HttpResponse(status=200)
    return HttpResponse(status=400)
Example #24
0
def import_payments(request):
    if request.method == 'POST':
        req_body = request.FILES['file'].read()
        payments_dict = simplexml.loads(req_body)['payments']
        payments = [
            Payment(0, p['method'], p['raw_salary'], p['tax_rate'])
            for p in payments_dict
        ]
        with connect() as conn:
            dbpayments = Payments(conn)
            dbpayments.importall(payments)
        return HttpResponse(status=200)
    return HttpResponse(status=400)
Example #25
0
    def test_render_to_xml_should_return_xml_response(self):
        response = self.fetch('/controller/render-xml/')
        self.assertTrue('Content-Type' in response.headers)
        self.assertEqual(response.headers['Content-Type'], 'text/xml; charset=UTF-8')
        self.assertEqual(response.code, 200)

        expected = {
            'root': {
                'a': '1',
                'b': '2',
            }
        }
        parsed_response = simplexml.loads(response.body)
        self.assertEqual(parsed_response, expected)
Example #26
0
    def test_render_to_xml_should_return_xml_response(self):
        response = self.fetch('/controller/render-xml/')
        self.assertTrue('Content-Type' in response.headers)
        self.assertEqual(response.headers['Content-Type'], 'text/xml; charset=UTF-8')
        self.assertEqual(response.code, 200)

        expected = {
            'root': {
                'a': '1',
                'b': '2',
            }
        }
        parsed_response = simplexml.loads(response.body)
        self.assertEqual(parsed_response, expected)
Example #27
0
def test_can_loads_attributes():

    docxml = u'<?xml version="1.0" ?><tags><tag attr="should be tag value"/><tag attr="value2">value3</tag></tags>'
    response = simplexml.loads(docxml)

    assert type(response['tags']) == list
    assert type(response['tags'][0]) == dict

    assert response['tags'][0]['tag']['_attrs']['attr'] == 'should be tag value'
    assert response['tags'][1]['tag']['_attrs']['attr'] == 'value2'
    assert response['tags'][1]['tag']['_value'] == 'value3'

    final_docxml = simplexml.dumps(response)
    assert docxml == final_docxml
Example #28
0
def import_employees(request):
    if request.method == 'POST':
        req_body = request.FILES['file'].read()
        employees_dict = simplexml.loads(req_body)['employees']
        employees = []
        for e in employees_dict:
            e_is_intern = 1 if '1' in e['is_intern'] else 0
            employees.append(Employee(
                0, e['full_name'], e['characteristics'], e_is_intern
            ))
        with connect() as conn:
            dbemployees = Employees(conn)
            dbemployees.importall(employees)
        return HttpResponse(status=200)
    return HttpResponse(status=400)
Example #29
0
    def post(self, tiporegla_id, regla_id):

        if request.content_type == 'application/json':
            json_data = request.get_json(force=True)
            json_str = json.dumps(json_data)
            data = app.get_resul_regla(json_str, tiporegla_id, regla_id)
            return data
        else:
            if request.content_type == 'application/xml':
                xml_str = request.get_data()
                xml_data = simplexml.loads(xml_str)
                data = app.get_resul_regla(str(simplexml.dumps(xml_data)), tiporegla_id, regla_id)
                return data
            else:
                return {'status': 'error', 'message': 'formato no implementado'}
Example #30
0
    def test_decode(self):
        xml = '''<root>
                  <child_a>text_a</child_a>
                  <child_b>text_b1</child_b>
                  <child_b>text_b2</child_b>
                  <child_c id="id_c1">text_c1</child_c>
                  <child_c>text_c2</child_c>
                  <child_c>
                    <child_d id="id_d1">text_d1</child_d>
                    <child_d>text_d2</child_d>
                  </child_c>
                  <child_e id="id_e">
                    text_e
                    <child_f class="class_f" id="id_f"/>
                    <child_g><![CDATA[<ha>haha</ha>]]></child_g>
                  </child_e>
                </root>'''

        data = simplexml.loads(xml)
Example #31
0
    def _make_request(self):
        params = self._get_parameters()
        url = '%s?%s' % (self._endpoint,
            urllib.urlencode(params))

        logger.debug('estimating freight on correios')
        logger.debug(params)

        try:
            data = urllib2.urlopen(url, timeout=5).read()
        except:
            raise InterfaceError('correios unavaible')

        """
        Exemplo do retorno:
            <cServico>
                <Codigo>40045</Codigo>
                <Valor>12,10</Valor>
                <PrazoEntrega>1</PrazoEntrega>
                <ValorMaoPropria>0,00</ValorMaoPropria>
                <ValorAvisoRecebimento>0,00</ValorAvisoRecebimento>
                <ValorValorDeclarado>1,00</ValorValorDeclarado>
                <EntregaDomiciliar>S</EntregaDomiciliar>
                <EntregaSabado>S</EntregaSabado>
                <Erro>0</Erro>
                <MsgErro></MsgErro>
            </cServico>
        """
        logger.debug('response from correios')
        logger.debug(data)

        response = simplexml.loads(data)

        result = response['Servicos']['cServico']

        erro = int(result.get('Erro'))
        if erro != 0:
            raise InterfaceError(result.get('MsgErro'))
        else:
            return result.get('Valor')
Example #32
0
 def _load_xml(self):
     if hasattr(self, "xml_cache"):
         return
     self.display_index = 0
     if not os.path.exists("/tmp/33c3_schedule_cache.xml"):
         request = urlrequest.urlopen("https://fahrplan.events.ccc.de/congress/2016/Fahrplan/schedule.xml")
         data = request.read()
         with open("/tmp/33c3_schedule_cache.xml", "wb") as fp:
             fp.write(data)
     else:
         with open("/tmp/33c3_schedule_cache.xml", "rb") as fp:
             data = fp.read()
     data = data.decode("utf-8")
     xml = simplexml.loads(data)
     xml_cache = []
     for day in range(0, 4):
         for room in range(0, 4):
             tmp = xml["schedule"]["day"][day]["room"][room]["event"]
             for n in tmp:
                date, title, place = dateutil.parser.parse(n["date"]).replace(tzinfo=None), n["title"], n["room"]
                xml_cache.append({"date": date, "title": title, "place": place, "start": n["start"]})
     self.xml_cache = sorted(xml_cache, key=lambda x: x["date"].timestamp())
Example #33
0
    def _make_request(self):
        params = self._get_parameters()
        url = '%s?%s' % (self._endpoint, urllib.urlencode(params))

        logger.debug('estimating freight on correios')
        logger.debug(params)

        try:
            data = urllib2.urlopen(url, timeout=5).read()
        except:
            raise InterfaceError('correios unavaible')
        """
        Exemplo do retorno:
            <cServico>
                <Codigo>40045</Codigo>
                <Valor>12,10</Valor>
                <PrazoEntrega>1</PrazoEntrega>
                <ValorMaoPropria>0,00</ValorMaoPropria>
                <ValorAvisoRecebimento>0,00</ValorAvisoRecebimento>
                <ValorValorDeclarado>1,00</ValorValorDeclarado>
                <EntregaDomiciliar>S</EntregaDomiciliar>
                <EntregaSabado>S</EntregaSabado>
                <Erro>0</Erro>
                <MsgErro></MsgErro>
            </cServico>
        """
        logger.debug('response from correios')
        logger.debug(data)

        response = simplexml.loads(data)

        result = response['Servicos']['cServico']

        erro = int(result.get('Erro'))
        if erro != 0:
            raise InterfaceError(result.get('MsgErro'))
        else:
            return result.get('Valor')
Example #34
0
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:63.0) Gecko/20100101 Firefox/63.0",
    "Accept-Language": "en-US,en;q=0.5",
})
s.verify = False

# Grab login page
s.get("https://%s/login.html" % (host, ))

# Login
data = collections.OrderedDict([("user", user), ("password", pswd)])
r = s.post(
    "https://%s/data/login" % (host, ),
    headers={"Referer": "https://%s/login.html" % (host, )},
    data=data,
)
xml = simplexml.loads(r.text)

# Verify we correctly authenticated
assert int(xml["root"]["authResult"]) == 0

# Fetch the main menu
r = s.get(
    "https://%s/%s" % (host, xml["root"]["forwardUrl"]),
    headers={"Referer": "https://%s/login.html" % (host, )},
)

# Build viewer filename
host_ipv6 = 0
viewer_filename = "viewer.jnlp(%s@%s@%i000)" % (host, host_ipv6,
                                                int(time.time()))
def aprove_decline(transid):
    aprove_or_decline = None
    result_type = 0
    cardinal_result = {}
    in_or_aout_scope = 0
    try:
        if config.test_data['visa_secure'] in [1, 3, 4, 5]:
            sql = f"select dbo.DecryptString(lookupresponsedata) as lookuprresponse,dbo.DecryptString(AuthResponseData) as authresponse " \
                  f" from Cardinal3dsRequests where transguid =  (select Transguid from multitrans where transid = {transid})"
            live_record_3ds = db_agent.execute_select_with_no_params(sql)
            if live_record_3ds:
                xml_return_string_lookuprresponse = simplexml.loads(
                    live_record_3ds['lookuprresponse'])
                response = xml_return_string_lookuprresponse['CardinalMPI']
                if not live_record_3ds['authresponse'] == '':
                    json_authresponse = json.loads(
                        live_record_3ds['authresponse'])
                    auth_response = {
                        **json_authresponse['Payload'],
                        **json_authresponse['Payload']['Payment']['ExtendedData']
                    }

                    if 'ECIFlag' in auth_response:
                        response['EciFlag'] = auth_response['ECIFlag']
                    if 'CAVV' in auth_response:
                        response['Cavv'] = auth_response['CAVV']
                    if 'PAResStatus' in auth_response:
                        response['PAResStatus'] = auth_response['PAResStatus']
                    if 'SignatureVerification' in auth_response:
                        response['SignatureVerification'] = auth_response[
                            'SignatureVerification']
                if config.test_data['visa_secure'] == 4:
                    in_or_aout_scope = 1171
                    if response['Cavv'] and response[
                            'EciFlag'] == '05' and response[
                                'Enrolled'] == 'Y' and response[
                                    'PAResStatus'] == 'Y' and response[
                                        'SignatureVerification'] == 'Y':
                        # 1151	Successful Authentication
                        result_type = 1151
                    elif response['Cavv'] and response[
                            'EciFlag'] == '06' and response[
                                'Enrolled'] == 'Y' and response[
                                    'PAResStatus'] == 'A' and response[
                                        'SignatureVerification'] == 'Y':
                        # 1152	Authentication Attempted
                        result_type = 1152
                    else:
                        result_type = 999
                elif config.test_data['visa_secure'] in [1, 3, 5]:
                    in_or_aout_scope = 1172
                    if not 'Cavv' in response and response[
                            'EciFlag'] == '07' and not 'PAResStatus' in response:
                        # 1158	Failed Authentication
                        result_type = 1158
                    elif response['Cavv'] and response[
                            'EciFlag'] == '05' and response[
                                'Enrolled'] == 'Y' and response[
                                    'PAResStatus'] in ['Y', 'A'] and response[
                                        'SignatureVerification'] == 'N':
                        # Signature Verification Failure
                        result_type = 1157
                        print(
                            colored(
                                f"This Transaction should be declined|PSD2 not Required|",
                                'white',
                                'on_grey',
                                attrs=['bold']))
                    elif not 'Cavv' in response and response[
                            'EciFlag'] == '07' and response[
                                'Enrolled'] == 'Y' and response[
                                    'PAResStatus'] == 'N' and response[
                                        'SignatureVerification'] == 'Y':
                        # Failed Authentication
                        result_type = 1159
                        print(
                            colored(
                                f"This Transaction should be declined|PSD2 not Required|",
                                'white',
                                'on_grey',
                                attrs=['bold']))
                    elif response['Cavv'] == {} and response[
                            'EciFlag'] == '06' and response[
                                'Enrolled'] == 'N' and not 'PAResStatus' in response and not 'SignatureVerification' in response:
                        # Non-Enrolled Card/Non-participating bank
                        result_type = 1153
                    elif response['Cavv'] == {} and response['EciFlag'] == '07' and response['Enrolled'] == 'U' and not 'PAResStatus' == {} and not 'SignatureVerification' == {}:
                        # 1154	Authentication Unavailable
                        result_type = 1154
                    elif response['Cavv'] == {} and response[
                            'EciFlag'] == '07' and response[
                                'Enrolled'] == 'Y' and response[
                                    'PAResStatus'] == 'U' and response[
                                        'SignatureVerification'] in ['Y', 'N']:
                        # 1155	Authentication Unavailable at Issuer
                        result_type = 1155
                    elif response['Cavv'] == {} and response[
                            'EciFlag'] == '07' and response[
                                'Enrolled'] == 'B' and not 'PAResStatus' in response and not 'SignatureVerification' in response:
                        # 1156	Authentication Bypassed
                        result_type = 1156
                    elif response['Cavv'] == {} and not 'EciFlag' in response and response[
                            'Enrolled'] == 'Y' and response[
                                'PAResStatus'] == 'Error' and not 'SignatureVerification' in response:
                        # 1158	Authentication Error
                        result_type = 1158
                    else:
                        aprove_or_decline = False

            if result_type == 999:
                msg = "In Scope |PSD2 Required|"
                aprove_or_decline = False
                print(
                    colored(
                        f"This Transaction should be declined |{msg}|  <----------------",
                        'red',
                        attrs=['bold']))
            else:
                final_action = db_agent.cardinal_actions(
                    result_type, in_or_aout_scope)
                if in_or_aout_scope == 1171:
                    msg = "In Scope |PSD2 Required|"
                else:
                    msg = "Out of Scope |PSD2 NOT Required|"
                if final_action:
                    if final_action['ResultAction'] == 1181:
                        aprove_or_decline = True
                        print(
                            colored(
                                f"This Transaction should be aproved |{msg}|  <---------------- | ResultType: {result_type} | ResultAction: 1181 | ",
                                'grey',
                                attrs=['bold']))
                    elif final_action['ResultAction'] == 1182:
                        aprove_or_decline = False
                        print(
                            colored(
                                f"This Transaction should be declined |{msg}|  <---------------- | ResultType: {result_type} | ResultAction: 1182 | ",
                                'red',
                                attrs=['bold']))
        elif config.test_data['visa_secure'] == 0:
            aprove_or_decline = True
            print(
                colored(
                    f"This Transaction should be aproved |Prepaid Card|  <---------------- | ",
                    'grey',
                    attrs=['bold']))

        config.test_data['aprove_or_decline'] = aprove_or_decline
        return aprove_or_decline
    except Exception as ex:
        traceback.print_exc()
        print(f"{Exception}")
        pass
def convert_kb():
    with open(os.path.join(CV_HOME, 'qualys_kb.xml'), 'r') as f, open(os.path.join(CV_HOME, 'kb.csv'), 'wb') as w:
        
        csv_headers = [ 'QID', 'TYPE', 'SEVERITY_LEVEL', 'TITLE', 'CATEGORY', 'LAST_UPDATE', 'PATCHABLE', 'CVE_ID', 'BUGTRAQ_ID', 'DIAGNOSIS', 'CONSEQUENCE', 'SOLUTION', 'COMPLIANCE_TYPE', 'COMPLIANCE_SECTOION', 'COMPLIANCE_DESCRIPTION', 'CVSS_BASE', 'CVSS_TEMPORAL', 'CVSS_AUTHENTICATION', 'CVSS_ACCESS_VECTOR', 'CVSS_ACCESS_COMPLEXITY', 'CVSS_AUTENTICATION', 'CVSS_CONFIDENTIALITY_IMPACT', 'CVSS_INTEGRITY_IMPACT', 'CVSS_AVAILABILITY_IMPACT', 'CVSS_EXPLOITABILITY', 'CVSS_REMEDIATION_LEVEL', 'CVSS_REPORT_CONFIDENCE', 'COMPLIANCE_TYPE', 'COMPLIANCE_SECTION', 'COMPLIANCE_DESCRIPTION', 'PCI_FLAG' ]
        dw = csv.DictWriter(w, dialect='excel', fieldnames=csv_headers, quoting=csv.QUOTE_ALL, delimiter=',', quotechar='"', strict=True, doublequote=True, lineterminator='\n', escapechar="\\")
        dw.writeheader()
         
        kbx = simplexml.loads(f.read())
       
        count = 1 
        vulns = []
        kb = {}
        for ev in kbx['VULNS']['VULN']:
            kb['QID'] = ev.get('QID')
            kb['TYPE'] = ev.get('VULN_TYPE')
            kb['SEVERITY_LEVEL'] = ev.get('SEVERITY_LEVEL')
            kb['TITLE'] = ev.get('TITLE')
            kb['CATEGORY'] = ev.get('CATEGORY')
            kb['LAST_UPDATE'] = ev.get('LAST_UPDATE')

            if ev.get('BUGTRAQ_ID_LIST'):
                btlist = []
                for bt in ev['BUGTRAQ_ID_LIST']: 
                    if isinstance(bt, dict):
                        btlist.append(bt['BUGTRAQ_ID']['ID'])
                if len(btlist) > 1:
                    kb['BUGTRAQ_ID'] = ','.join(btlist)
            
            kb['PATCHABLE'] = ev.get('PATCHABLE')

            if ev.get('CVE_ID_LIST'):
                cvelist = []
                for cveid in ev['CVE_ID_LIST']['CVE_ID']:
                    if isinstance(cveid, dict):
                        cvelist.append(cveid['ID'])
                if len(cvelist) > 1:
                    kb['CVE_ID'] = ','.join(cvelist)

            kb['DIAGNOSIS'] = ev.get('DIAGNOSIS')
            kb['CONSEQUENCE'] = ev.get('CONSEQUENCE')
            kb['SOLUTION'] = ev.get('SOLUTION')

            if ev.get('COMPLIANCE'):
                kb['COMPLIANCE_TYPE'] = ev['COMPLIANCE']['COMPLIANCE_INFO']['COMPLIANCE_TYPE']
                kb['COMPLIANCE_SECTION'] = ev['COMPLIANCE']['COMPLIANCE_INFO']['COMPLIANCE_SECTION']
                kb['COMPLIANCE_DESCRIPTION'] = ev['COMPLIANCE']['COMPLIANCE_INFO']['COMPLIANCE_DESCRIPTION']

            kb['CVSS_BASE'] = ev.get('CVSS_BASE')
            kb['CVSS_TEMPORAL'] = ev.get('CVSS_TEMPORAL')
            kb['CVSS_ACCESS_VECTOR'] = ev.get('CVSS_ACCESS_VECTOR')
            kb['CVSS_ACCESS_COMPLEXITY'] = ev.get('CVSS_ACCESS_COMPLEXITY')
            kb['CVSS_AUTHENTICATION'] = ev.get('CVSS_AUTHENTICATION')
            kb['CVSS_CONFIDENTIALITY_IMPACT'] = ev.get('CVSS_CONFIDENTIALITY_IMPACT')
            kb['CVSS_INTEGRITY_IMPACT'] = ev.get('CVSS_INTEGRITY_IMPACT')
            kb['CVSS_AVAILABILITY_IMPACT'] = ev.get('CVSS_EXPLOITABILITY')
            kb['CVSS_EXPLOITABILITY'] = ev.get('CVSS_EXPLOITABILITY')
            kb['CVSS_REMEDIATION_LEVEL'] = ev.get('CVSS_REMEDIATION_LEVEL')
            kb['CVSS_REPORT_CONFIDENCE'] = ev.get('CVSS_REPORT_CONFIDENCE')
            kb['PCI_FLAG'] = ev.get('PCI_FLAG')

            dw.writerow(cvtools.sanitize_dict(kb))
            count += 1
    return
Example #37
0
def cardinal3dsrequests(transid):  # card
    live_record = {}
    psd2_completed_mt = []
    card = {}
    failed = {}
    sql = ''
    pid = 0
    psd2_failed = []
    item = ''
    try:
        visa_secure = config.test_data['visa_secure']
        base_field = ''
        live_field = ''
        sql = f"select dbo.DecryptString(lookupresponsedata) as lookuprresponse,dbo.DecryptString(AuthResponseData) as authresponse " \
              f" from Cardinal3dsRequests where transguid =  (select Transguid from multitrans where transid = {transid})"

        if visa_secure == 0:  # out of scope
            options.append_list(
                f"Card is Prepaid | No 3DS record | Out of Scope")
            print(
                colored(
                    f"Card is Prepaid | No 3DS record | Out of Scope  => Pass ",
                    'green'))
        if visa_secure == 1:  # in scope
            options.append_list(
                f"Merchant EU | Not Configured for 3DS | Card EU | No record in Cardinal3dsRequests | In  Scope | Should be declined"
            )
            print(
                colored(
                    f"Merchant EU | Not Configured for 3DS | Card EU | No record in Cardinal3dsRequests | In  Scope | Should be declined ",
                    'red'))
        elif visa_secure in [2, 3]:
            if config.test_data['cc'] in config.cards_3ds:
                card = config.cards_3ds[config.test_data['cc']]
                try:
                    if 'card' in card:
                        del card['card']
                        del card['cmpi_authenticate response']
                except Exception as ex:
                    traceback.print_exc()
                    print(f"Card is not in the dictionary")
                    print(f"{Exception}")
                    pass
                live_record = db_agent.execute_select_with_no_params(sql)
                if live_record == None:
                    print(colored(f"No record recieved from Cardinal ", 'red'))
                    print()
                else:
                    if not live_record['authresponse'] == '':
                        json_authresponse = json.loads(
                            live_record['authresponse'])
                        # auth_response = json_authresponse['Payload']['Payment']['ExtendedData']
                        auth_response = {
                            **json_authresponse['Payload'],
                            **json_authresponse['Payload']['Payment']['ExtendedData']
                        }
                        for item in card:
                            try:
                                if item == 'cPAResStatus':
                                    base_field = card[item]
                                    live_field = auth_response['PAResStatus']
                                elif item == 'cSignatureVerification':
                                    base_field = card[item]
                                    live_field = auth_response[
                                        'SignatureVerification']
                                elif item == 'cCavv':
                                    base_field = 'value'
                                    live_field = auth_response['CAVV']
                                    if live_field != '':
                                        live_field = 'value'
                                elif item == 'cEciFlag':
                                    base_field = card[item]
                                    live_field = auth_response['ECIFlag']
                                elif item == 'cErrorNo':
                                    base_field = card[item]
                                    live_field = auth_response['ErrorNumber']
                                elif item == 'cErrorDesc':
                                    base_field = card[item]
                                    live_field = auth_response[
                                        'ErrorDescription']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                if base_field != live_field:
                                    failed[
                                        item] = f"{base_field}split{live_field} | SCA Required |"

                            except Exception as ex:
                                traceback.print_exc()
                                failed[
                                    item] = f"{base_field} split | Expected_Field is missing from Auth_response | SCA Required"
                                # print(f"Expected_Field: | {item[1:]} | is missing from Auth_response")
                                # print()
                                pass

                    xml_return_string_lookuprresponse = simplexml.loads(
                        live_record['lookuprresponse'])
                    response = xml_return_string_lookuprresponse['CardinalMPI']
                    for item in card:
                        try:
                            if item[0] != 'c':
                                if item == 'Enrolled':
                                    base_field = card[item]
                                    live_field = response['Enrolled']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                elif item == 'PAResStatus':
                                    base_field = card[item]
                                    live_field = response['PAResStatus']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                elif item == 'SignatureVerification':
                                    base_field = card[item]
                                    live_field = response[
                                        'SignatureVerification']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                elif item == 'Cavv':
                                    if card[item] == '':
                                        base_field = {}
                                        live_field = response['Cavv']
                                elif item == 'EciFlag':
                                    base_field = card[item]
                                    live_field = response['EciFlag']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                elif item == 'ACSUrl':
                                    base_field = card[item]
                                    live_field = response['ACSUrl']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                    elif base_field == '<value>':
                                        base_field = 'https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/creq.jsp'
                                elif item == 'Payload':
                                    base_field = card[item]
                                    live_field = response['Payload']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}
                                    elif base_field == '<value>':
                                        base_field = live_field
                                elif item == 'ErrorNo':
                                    base_field = card[item]
                                    live_field = response['ErrorNo']
                                elif item == 'ErrorDesc':
                                    base_field = card[item]
                                    live_field = response['ErrorDesc']
                                    if base_field == '<blank>' or base_field == '':
                                        base_field = {}

                                if base_field != live_field:
                                    failed[
                                        item] = f"{base_field}split{live_field}"
                        except Exception as ex:
                            traceback.print_exc()
                            failed[
                                item] = f"{base_field} split | Expected_Field is missing from CardinalMPI |"
                            # print(f"Expected_Field: | {item} | is missing from CardinalMPI")
                            print()
                            pass
            elif visa_secure == 4:
                live_record = db_agent.execute_select_with_no_params(sql)
                if live_record == None:
                    options.append_list(
                        f"No record found in Cardinal3dsRequests | TransID: {transid} | CC: {config.test_data['cc']} | PPID: {config.test_data['package'][0]['PrefProcessorID']}"
                    )
                    print(
                        colored(
                            f"No record found in Cardinal3dsRequests | TransID: {transid} | CC: {config.test_data['cc']} | PPID: {config.test_data['package'][0]['PrefProcessorID']}",
                            'blue'))
                else:
                    options.append_list(
                        f"Response received from Cardinal | Out Of scope | card {config.test_data['cc']}"
                    )
                    print(
                        colored(
                            f"Response received from Cardinal | Out Of scope | card {config.test_data['cc']}  => Pass ",
                            'green'))
            # else:
            # 	live_record = db_agent.execute_select_with_no_params(sql)
            # 	if live_record == None:
            # 		options.append_list(f"Merchant Configured for PSD2 => No record found | TransID: {transid} | CC: {config.test_data['cc']} | PPID: {config.test_data['package'][0]['PrefProcessorID']}")
            # 		print(colored(f"Merchant Configured for PSD2 => No record found | TransID: {transid} | CC: {config.test_data['cc']} | PPID: {config.test_data['package'][0]['PrefProcessorID']}", 'blue'))
            # 		print()
            # 	else:
            # 		options.append_list(f"Response received from Cardinal - Not a cardinal test case card {config.test_data['cc']}  => Pass")
            # 		print(colored(f"Response received from Cardinal - Not a cardinal test case card {config.test_data['cc']}  => Pass ", 'green'))

            if len(failed) > 0:
                options.append_list(
                    "********************* 3DS verification MissMatch *********************"
                )
                print()
                print(
                    colored(
                        f"********************* 3DS verification MissMatch *********************",
                        'red'))
                for item in failed:
                    tmp = failed[item].split('split')
                    options.append_list(
                        f"Field : {item} =>  Expected BaseField: {tmp[0]}  | Actual : {tmp[1]}  "
                    )
                    print(
                        f"Field : {item} =>  Expected BaseField: {tmp[0]}  | Actual : {tmp[1]}  "
                    )
                print()
            if len(failed) == 0 and live_record:
                options.append_list(
                    f"Cardinal3dsRequests test_case: {config.test_data['cc']} Records Compared => Pass "
                )
                print(
                    colored(
                        f"Cardinal3dsRequests test_case: {config.test_data['cc']} Records Compared => Pass ",
                        'green'))
                print()
            return failed
        print()
    except Exception as ex:
        traceback.print_exc()
        print(f"{Exception}  Tid: {transid,} ")
        pass
def convert_kb():
    with open(os.path.join(CV_HOME, 'qualys_kb.xml'),
              'r') as f, open(os.path.join(CV_HOME, 'kb.csv'), 'wb') as w:

        csv_headers = [
            'QID', 'TYPE', 'SEVERITY_LEVEL', 'TITLE', 'CATEGORY',
            'LAST_UPDATE', 'PATCHABLE', 'CVE_ID', 'BUGTRAQ_ID', 'DIAGNOSIS',
            'CONSEQUENCE', 'SOLUTION', 'COMPLIANCE_TYPE',
            'COMPLIANCE_SECTOION', 'COMPLIANCE_DESCRIPTION', 'CVSS_BASE',
            'CVSS_TEMPORAL', 'CVSS_AUTHENTICATION', 'CVSS_ACCESS_VECTOR',
            'CVSS_ACCESS_COMPLEXITY', 'CVSS_AUTENTICATION',
            'CVSS_CONFIDENTIALITY_IMPACT', 'CVSS_INTEGRITY_IMPACT',
            'CVSS_AVAILABILITY_IMPACT', 'CVSS_EXPLOITABILITY',
            'CVSS_REMEDIATION_LEVEL', 'CVSS_REPORT_CONFIDENCE',
            'COMPLIANCE_TYPE', 'COMPLIANCE_SECTION', 'COMPLIANCE_DESCRIPTION',
            'PCI_FLAG'
        ]
        dw = csv.DictWriter(w,
                            dialect='excel',
                            fieldnames=csv_headers,
                            quoting=csv.QUOTE_ALL,
                            delimiter=',',
                            quotechar='"',
                            strict=True,
                            doublequote=True,
                            lineterminator='\n',
                            escapechar="\\")
        dw.writeheader()

        kbx = simplexml.loads(f.read())

        count = 1
        vulns = []
        kb = {}
        for ev in kbx['VULNS']['VULN']:
            kb['QID'] = ev.get('QID')
            kb['TYPE'] = ev.get('VULN_TYPE')
            kb['SEVERITY_LEVEL'] = ev.get('SEVERITY_LEVEL')
            kb['TITLE'] = ev.get('TITLE')
            kb['CATEGORY'] = ev.get('CATEGORY')
            kb['LAST_UPDATE'] = ev.get('LAST_UPDATE')

            if ev.get('BUGTRAQ_ID_LIST'):
                btlist = []
                for bt in ev['BUGTRAQ_ID_LIST']:
                    if isinstance(bt, dict):
                        btlist.append(bt['BUGTRAQ_ID']['ID'])
                if len(btlist) > 1:
                    kb['BUGTRAQ_ID'] = ','.join(btlist)

            kb['PATCHABLE'] = ev.get('PATCHABLE')

            if ev.get('CVE_ID_LIST'):
                cvelist = []
                for cveid in ev['CVE_ID_LIST']['CVE_ID']:
                    if isinstance(cveid, dict):
                        cvelist.append(cveid['ID'])
                if len(cvelist) > 1:
                    kb['CVE_ID'] = ','.join(cvelist)

            kb['DIAGNOSIS'] = ev.get('DIAGNOSIS')
            kb['CONSEQUENCE'] = ev.get('CONSEQUENCE')
            kb['SOLUTION'] = ev.get('SOLUTION')

            if ev.get('COMPLIANCE'):
                kb['COMPLIANCE_TYPE'] = ev['COMPLIANCE']['COMPLIANCE_INFO'][
                    'COMPLIANCE_TYPE']
                kb['COMPLIANCE_SECTION'] = ev['COMPLIANCE']['COMPLIANCE_INFO'][
                    'COMPLIANCE_SECTION']
                kb['COMPLIANCE_DESCRIPTION'] = ev['COMPLIANCE'][
                    'COMPLIANCE_INFO']['COMPLIANCE_DESCRIPTION']

            kb['CVSS_BASE'] = ev.get('CVSS_BASE')
            kb['CVSS_TEMPORAL'] = ev.get('CVSS_TEMPORAL')
            kb['CVSS_ACCESS_VECTOR'] = ev.get('CVSS_ACCESS_VECTOR')
            kb['CVSS_ACCESS_COMPLEXITY'] = ev.get('CVSS_ACCESS_COMPLEXITY')
            kb['CVSS_AUTHENTICATION'] = ev.get('CVSS_AUTHENTICATION')
            kb['CVSS_CONFIDENTIALITY_IMPACT'] = ev.get(
                'CVSS_CONFIDENTIALITY_IMPACT')
            kb['CVSS_INTEGRITY_IMPACT'] = ev.get('CVSS_INTEGRITY_IMPACT')
            kb['CVSS_AVAILABILITY_IMPACT'] = ev.get('CVSS_EXPLOITABILITY')
            kb['CVSS_EXPLOITABILITY'] = ev.get('CVSS_EXPLOITABILITY')
            kb['CVSS_REMEDIATION_LEVEL'] = ev.get('CVSS_REMEDIATION_LEVEL')
            kb['CVSS_REPORT_CONFIDENCE'] = ev.get('CVSS_REPORT_CONFIDENCE')
            kb['PCI_FLAG'] = ev.get('PCI_FLAG')

            dw.writerow(cvtools.sanitize_dict(kb))
            count += 1
    return
Example #39
0
File: base.py Project: pyKun/swift3
 def xmlbody2dict(self, xml):
     return simplexml.loads(xml)
Example #40
0
 def xmlbody2dict(self, xml):
     return simplexml.loads(xml)
Example #41
0
def test_can_load_xml_string_with_cdata():
    docxml = "<someTag><name><![CDATA[Should be name]]></name></someTag>"
    response = simplexml.loads(docxml)

    assert response['someTag']['name'] == 'Should be name'
Example #42
0
'''


from lib import HttpUtil, Util
from isp import Define, XPath
from isp.nsmUtil import NsmUtil
from pprint import pprint
from isp.responseVerification import ResponseVerification

import simplexml


if __name__ == '__main__':
    
    person = {'person':{'name':'joaquim','age':15,'cars':[{'id':1},{'id':2}]}}
    print simplexml.dumps(person)
    
    person = simplexml.loads('<?xml version="1.0" ?><person><cars><car><id>1</id></car><car><id>2</id></car></cars><age>15</age><name>joaquim</name></person>')
    print person['person']['name']
    print person
    
    filePath = '/Users/huhe/Install/workspace/NSM-NBAPI-Jython/response/create/response-create-default/My-Default-Internet-Edge-Zone-Layer-3-VLAN-create-001.xml'
    result = simplexml.loads(Util.readFile(filePath))
    print result
    
    print result['task']['result']['name']
    
    print result['task']['result']['properties']


    
Example #43
0
    '''
    filePath1 = '/Users/huhe/Install/workspace/NSM-NBAPI-Jython/response/create/response-create-default/My-Default-Provider-create-001.xml'
    filePath2 = '/Users/huhe/Install/workspace/NSM-NBAPI-Jython/response-golden-data/create/response-create-default/My-Default-Provider-create-001.xml'
    #ResponseVerification.verifyCreate(filePath1, filePath2)
    ResponseVerification.formalize(Util.readFile(filePath2))
    '''
    
    '''
    perl = '/usr/local/ActivePerl-5.16/bin/perl'
    
    dirNSMPerl = '/Users/huhe/Install/workspace/NSM-NBAPI-Perl'
    dirDeviceVerification = dirNSMPerl + '/device-verification'
    
    cmdPerlNSM = dirDeviceVerification + '/NSM.pl'
    cmdPerlParse = dirDeviceVerification + '/Parse.pl'
    cmdPerlProcess = dirDeviceVerification + '/Process.pl'
    
    p = subprocess.Popen(perl + ' ' + cmdPerlProcess, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in p.stdout.readlines():
        print line
    retval = p.wait()
    '''
    
    person = {'person':{'name':'joaquim','age':15,'cars':[{'id':1},{'id':2}]}}
    print simplexml.dumps(person)
    
    person = simplexml.loads('<?xml version="1.0" ?><person><cars><car><id>1</id></car><car><id>2</id></car></cars><age>15</age><name>joaquim</name></person>')
    print person['person']['name']


    
Example #44
0
def test_can_load_xml_string_with_cdata():
    docxml = "<someTag><name><![CDATA[Should be name]]></name></someTag>"
    response = simplexml.loads(docxml)

    assert response['someTag']['name'] == 'Should be name'
Example #45
0
          <child_b>text_b1</child_b>
          <child_b>text_b2</child_b>
          <child_c id="id_c1">text_c1</child_c>
          <child_c>text_c2</child_c>
          <child_c>
            <child_d id="id_d1">text_d1</child_d>
            <child_d>text_d2</child_d>
          </child_c>
          <child_e id="id_e">
            text_e
            <child_f class="class_f" id="id_f"/>
            <child_g><![CDATA[<ha>haha</ha>]]></child_g>
          </child_e>
        </root>'''

data = simplexml.loads(xml, strip_cdata=False)
pprint.pprint(data)


{'root': {'child_a': 'text_a',
          'child_b': ['text_b1', 'text_b2'],
          'child_c': [{'_attr': {'id': 'id_c1'}, '_text': 'text_c1'},
                      'text_c2',
                      {'child_d': [{'_attr': {'id': 'id_d1'},
                                    '_text': 'text_d1'},
                                   'text_d2']}],
          'child_e': {'_attr': {'id': 'id_e'},
                      '_text': 'text_e',
                      'child_f': {'_attr': {'class': 'class_f', 'id': 'id_f'}},
                      'child_g': '<ha>haha</ha>'}}}
Example #46
0
def instant_conversion(option, eticket, pricepoint_type, multitrans_base_record, email, selected_options, merchantbillconfig):
	transguid = ''
	url = ''
	multitrans_ic_record = copy.deepcopy(multitrans_base_record)
	token = multitrans_base_record['TRANSGUID']
	username = fake.user_name() + str(random.randint(333, 999))
	password = fake.user_name() + str(random.randint(333, 999))

	if option == 'pos':

		url = f"{config.urlic}{token}" + selected_options

		page_loaded = navigate_to_url(url)
		if page_loaded == False:
			return None
		else:
			if br.is_element_present_by_id('TransGUID', wait_time=10):
				transguid = br.find_by_id('TransGUID').value
				transguid = subprocess.run([path, transguid, '-l'], stdout=subprocess.PIPE)
				transguid = transguid.stdout.decode('utf-8')
			else:
				print("Transguid not Found ")
				return None
			br.find_by_id('EMailInput').fill(email)
			br.find_by_id('SecurePurchaseButton').click()
			ic_record = db_agent.multitrans_full_record('', transguid, '')
			full_record = ic_record[0]
			multitrans_ic_record['TransSource'] = 122
			multitrans_ic_record['TransType'] = 108
			multitrans_ic_record['TransStatus'] = 186
			multitrans_ic_record['PurchaseID'] = full_record['PurchaseID']
			multitrans_ic_record['TransID'] = full_record['TransID']
			multitrans_ic_record['TRANSGUID'] = transguid
			multitrans_ic_record['RelatedTransID'] = multitrans_base_record['TransID']
			multitrans_ic_record['TransAmount'] = merchantbillconfig['RebillPrice']
			exchange_rate = 1
			if merchantbillconfig['Currency'] == multitrans_base_record['MerchantCurrency']:
				exchange_rate = 1
			else:
				exchange_rate = db_agent.exc_rate(multitrans_base_record['MerchantCurrency'], merchantbillconfig['Currency'])
				if multitrans_base_record['MerchantCurrency'] != 'JPY':
					exchange_rate = round(exchange_rate, 2)
			multitrans_ic_record['ExchRate'] = exchange_rate
			markup = round(merchantbillconfig['RebillPrice'] * exchange_rate, 2)
			multitrans_ic_record['Markup'] = markup
			print(f"InstantConversion POS => Eticket: {eticket} | Type: {pricepoint_type} | Processor: {multitrans_base_record['Processor']} "
			      f"| DMC: {multitrans_base_record['MerchantCurrency']} | Lnaguage: {multitrans_base_record['Language']}")

			return multitrans_ic_record, ic_record

	elif option == 'ws':
		url = f"{config.urlicws}{token}" + selected_options
		print(url)
		resp = requests.get(url)
		xml_return_string = simplexml.loads(resp.content)
		transid = int(xml_return_string['TransReturn']['TransID'])
		oneclick_record = db_agent.multitrans_full_record(transid, '', '')
		full_record = oneclick_record[0]

		if pricepoint_type in [501, 506, 511]:
			multitrans_ic_record['TransSource'] = 121
		else:
			multitrans_ic_record['TransSource'] = 123
		multitrans_ic_record['TransType'] = 1011
		multitrans_ic_record['TransStatus'] = 186
		multitrans_ic_record['PurchaseID'] = full_record['PurchaseID']
		multitrans_ic_record['TransID'] = transid
		multitrans_ic_record['TRANSGUID'] = full_record['TRANSGUID']
		multitrans_ic_record['RelatedTransID'] = multitrans_base_record['TransID']
		print(f"OneClick WS => Eticket: {eticket} | Type: {pricepoint_type} | Processor: {multitrans_base_record['Processor']} "
		      f"| DMC: {multitrans_base_record['MerchantCurrency']} | Lnaguage: {multitrans_base_record['Language']}")

		return multitrans_ic_record, oneclick_record