Skip to content
Snippets Groups Projects
Commit a0d2b89b authored by Alê Borba's avatar Alê Borba
Browse files

Merge iuri

parents dcba09d6 23b4b334
No related branches found
Tags v1.3.1
No related merge requests found
# encoding: utf-8
from datetime import datetime
import requests
import unicodedata
import re
def _normalize_unicode(text):
return unicodedata.normalize('NFKD', text).encode('ascii','ignore') if isinstance(text, unicode) else text
class CepTracker():
def __init__(self):
self.url = 'http://m.correios.com.br/movel/buscaCepConfirma.do'
......@@ -25,7 +22,7 @@ class CepTracker():
def track(self, cep):
itens = self._get_infos_(cep)
index=0
index= 4 - len(itens)
data = dict()
for item in itens:
......@@ -34,16 +31,18 @@ class CepTracker():
index = 0
self.result.append(data)
data = dict()
data["v_date"] = datetime.now()
# TODO: definir v_date apenas uma vez
data["v_date"] = datetime.now()
text = re.sub('\s+',' ',item.text.strip())
if (index == 2):
for j, text in enumerate(text.split('/')):
data[self.fields[index][j]] = _normalize_unicode(text.strip())
cidade, estado = text.split('/', 1)
data['cidade'] = cidade.strip()
data['estado'] = estado.split('-')[0].strip()
else:
data[self.fields[index]] = _normalize_unicode(text)
data[self.fields[index]] = text
index +=1
......
# encoding: utf-8
import unittest
import correios
class CorreiosTest(unittest.TestCase):
def test_cep_com_rua(self):
'''
Logradouro: Rua Rocha
Bairro: Bela Vista
Localidade / UF: São Paulo /SP
CEP: 01330000
'''
tracker = correios.CepTracker()
result = tracker.track('01330000')
self.assertTrue(len(result) == 1)
self.assertEqual(result[0]['cep'], '01330000')
self.assertEqual(result[0]['logradouro'], 'Rua Rocha')
self.assertEqual(result[0]['cidade'], u'São Paulo')
self.assertEqual(result[0]['estado'], 'SP')
self.assertIsNotNone(result[0]['v_date'])
def test_cep_sem_rua(self):
'''
Localidade / UF: Jordão (Guarapuava) /PR - - Povoado
CEP: 85100000
'''
tracker = correios.CepTracker()
result = tracker.track('85100000')
self.assertTrue(len(result) == 1)
self.assertEqual(result[0]['cep'], '85100000')
self.assertEqual(result[0]['cidade'], u'Jordão (Guarapuava)')
self.assertEqual(result[0]['estado'], 'PR')
self.assertIsNotNone(result[0]['v_date'])
def test_cep_inexistente(self):
'''
CEP: 99999999
'''
tracker = correios.CepTracker()
result = tracker.track('99999999')
self.assertTrue(len(result) == 0)
# TODO: existe CEP com mais de um resultado?
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment