def cabecalho(self): self.normal() emit = self.root.find('./infCFe/emit') enderEmit = emit.find('enderEmit') nome_fantasia = emit.findtext('xFant') razao_social = emit.findtext('xNome') logradouro = enderEmit.findtext('xLgr') numero = enderEmit.findtext('nro') complemento = enderEmit.findtext('xCpl') bairro = enderEmit.findtext('xBairro') if numero: # número não é obrigatório logradouro = u'{}, {}'.format(logradouro, numero) if complemento: # complemento não é obrigatório # faz um esforço para manter o complemento na mesma linha que o # logradouro/número se couber, senão o complemento irá usar uma # linha exclusiva... if len(logradouro) + len(complemento) < self._colunas: # ok, mantém o complemento na mesma linha que o logradouro logradouro = u'{}, {}'.format(logradouro, complemento) complemento = '' # ignora a linha que deveria conter o xCpl cidade = u'{}/{} CEP: {}'.format( enderEmit.findtext('xMun'), br.uf_pelo_codigo(int(self.root.findtext('./infCFe/ide/cUF'))), br.as_cep(enderEmit.findtext('CEP'))) partes_endereco = [logradouro, complemento, bairro, cidade,] endereco = u'\r\n'.join([e for e in partes_endereco if e]) cnpj = 'CNPJ: {}'.format(br.as_cnpj(emit.findtext('CNPJ'))) im = 'IM: {}'.format(emit.findtext('IM') or '') ie = 'IE: {}'.format(emit.findtext('IE')) self.centro() self.negrito() if nome_fantasia: self.quebrar(nome_fantasia) self.quebrar(razao_social) self.negrito() self.quebrar(endereco) self.avanco() self.esquerda() self.texto(cnpj) self.texto(ie) if im: self.texto(im) self.separador()
def test_as_cep(): assert br.as_cep('15807250') == '15807-250' assert br.as_cep('15807-250') == '15807-250' assert br.as_cep('') == '' assert br.as_cep('123456') == '123456'