def test_fetch(self): zip_code = self.zip_code retriever = ZipCodeRetriever(zip_code) result = retriever.fetch() self.assertIsInstance(result, dict) self.assertIn('cep', result.keys())
def create(self): zip_code = self.data.get('zip_code') logger.info('[API CREATE] Create zipcode. zip_code=%s', zip_code) try: retriever = ZipCodeRetriever(zip_code) except InvalidZipCodeFormatException: error = "Invalid %s zip code format." % zip_code logger.error('[API CREATE] Error on create zipcode. ' 'zip_code=%s error=%s', zip_code, error) raise BadRequest(error) try: data = retriever.fetch() logger.info('[API CREATE] Create zipcode. zip_code=%s data=%s', zip_code, data) zip_code_data = { 'city': data.get('cidade'), 'state': data.get('estado'), 'zip_code': data.get('cep'), 'address': data.get('logradouro'), 'neighborhood': data.get('bairro') } try: zip_code_object = ZipCode.objects.create(**zip_code_data) logger.info('[API CREATE] Zipcode created. zip_code=%s', zip_code) return zip_code_object except IntegrityError as exception: error_message = exception[1] logger.error('[API CREATE] Error on create zipcode. ' 'zip_code=%s error=%s', zip_code, error_message) raise BadRequest(error_message) except PostmonZipCodeNotFound: error = "Zipcode %s not found in Postmon." % zip_code logger.error('[API CREATE] Error on create zipcode. ' 'zip_code=%s error=%s', zip_code, error) raise BadRequest(error)
def test_zip_code_not_found(self): zip_code = self.zip_code_inexistent retriever = ZipCodeRetriever(zip_code) with self.assertRaises(PostmonZipCodeNotFound): retriever.fetch()