Biblioteca Robot Framework para gerar e validar CNPJs alfanuméricos
Project description
📦 cnpjalfanum
Biblioteca Python para geração, validação e formatação de CNPJ alfanumérico, conforme o novo padrão da Receita Federal do Brasil.
Ideal para uso em testes automatizados com Robot Framework.
🚀 Instalação
Recomenda-se o uso de ambiente virtual:
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate.bat # Windows
pip install .
🤖 Integração com Robot Framework
No seu arquivo .robot:
*** Settings ***
Library cnpjalfanum.validator.CNPJAlfanumKeywords
🔑 Keywords disponíveis
| Keyword | Descrição |
|---|---|
Gerar Cnpj |
Gera um CNPJ alfanumérico válido com 14 caracteres. |
Validar Cnpj |
Verifica se o CNPJ é válido conforme os dígitos verificadores. |
Formatar Cnpj |
Aplica a máscara XX.XXX.XXX/XXXX-XX ao CNPJ. |
Completar DV |
Calcula os dois dígitos verificadores a partir dos 12 primeiros caracteres. |
Reconstruir Cnpj |
Retorna o CNPJ completo (14 caracteres) a partir da base. |
É Formatado |
Verifica se o CNPJ está no formato com máscara. |
Normalizar |
Remove a formatação e converte para maiúsculas. |
É Valido Parcial |
Verifica se os 12 primeiros caracteres são válidos para cálculo de DV. |
Gerar Cnpj Invalido |
Gera um CNPJ com estrutura válida, mas com DV incorreto. |
🧪 Exemplo de uso em Robot Framework
*** Test Cases ***
Gerar CNPJ Válido
${cnpj}= Gerar Cnpj
Log CNPJ gerado: ${cnpj}
Should Be Equal As Integers ${len(${cnpj})} 14
Validar CNPJ Gerado
${cnpj}= Gerar Cnpj
${valido}= Validar Cnpj ${cnpj}
Should Be True ${valido}
Formatar CNPJ
${cnpj}= Gerar Cnpj
${formatado}= Formatar Cnpj ${cnpj}
Log CNPJ formatado: ${formatado}
Should Match Regexp ${formatado} ^[A-Z0-9]{2}\.[A-Z0-9]{3}\.[A-Z0-9]{3}/[A-Z0-9]{4}-\d{2}$
Completar Dígito Verificador
${cnpj}= Gerar Cnpj
${base}= Set Variable ${cnpj[:12]}
${dv}= Completar DV ${base}
Log DV calculado: ${dv}
Should Be Equal ${cnpj[12:]} ${dv}
Reconstruir CNPJ
${cnpj}= Gerar Cnpj
${base}= Set Variable ${cnpj[:12]}
${reconstruido}= Reconstruir Cnpj ${base}
Should Be Equal ${cnpj} ${reconstruido}
Verificar Formatação
${cnpj}= Gerar Cnpj
${formatado}= Formatar Cnpj ${cnpj}
${resultado}= É Formatado ${formatado}
Should Be True ${resultado}
Normalizar CNPJ
${cnpj}= Gerar Cnpj
${formatado}= Formatar Cnpj ${cnpj}
${limpo}= Normalizar ${formatado}
Should Be Equal ${limpo} ${cnpj}
Verificar Validade Parcial
${cnpj}= Gerar Cnpj
${base}= Set Variable ${cnpj[:12]}
${parcial}= É Valido Parcial ${base}
Should Be True ${parcial}
Gerar CNPJ Inválido
${cnpj_invalido}= Gerar Cnpj Invalido
${valido}= Validar Cnpj ${cnpj_invalido}
Log CNPJ inválido gerado: ${cnpj_invalido}
Should Be False ${valido}
🧪 Como executar os testes com Robot Framework (Windows) Para validar o funcionamento da biblioteca e garantir que os keywords estão operando corretamente, você pode rodar os testes automatizados usando o Robot Framework. Certifique-se de estar na raiz do projeto e que o Python reconheça o pacote da biblioteca. Para isso, é necessário configurar a variável de ambiente PYTHONPATH apontando para o diretório atual.
$env:PYTHONPATH = "."
robot .\examples\example_keywords.robot
🔍 Diferença entre Completar DV e Reconstruir Cnpj
Ambas as keywords trabalham com os dígitos verificadores (DV) do CNPJ alfanumérico, mas têm propósitos distintos:
-
Completar DV
Recebe os 12 primeiros caracteres do CNPJ e retorna apenas os dois dígitos verificadores calculados.
🔧 Ideal para validar ou comparar DVs separadamente. -
Reconstruir Cnpj
Recebe os 12 primeiros caracteres e retorna o CNPJ completo (14 caracteres), já com os DVs anexados.
📦 Útil para gerar o CNPJ final a partir da base.
Essas funções são especialmente úteis em:
- Testes de preenchimento parcial
- Validação de campos
- Reconstrução de dados em sistemas que adotam o novo padrão alfanumérico.
🧠 Sobre o CNPJ Alfanumérico
A partir de julho de 2026, o CNPJ passará a aceitar letras e números nas 12 primeiras posições, aumentando a capacidade de identificação de empresas.
Esta biblioteca já está preparada para o novo padrão.
🛠️ Testes unitários
Execute os testes com:
python -m unittest tests.tests_units
📜 Licença
Apache 2.0 — Livre para uso, modificação e distribuição, com proteção de patentes e exigência de manter avisos de copyright e alterações.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file robotframework_cnpjalfanum-0.1.0.tar.gz.
File metadata
- Download URL: robotframework_cnpjalfanum-0.1.0.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47360e70f3afa4ebd009e4cf64aa9e4d940e7dacd9d892b5af8a7a03302e5a7f
|
|
| MD5 |
bee3ff6fbc5aff841c10823bcc84c346
|
|
| BLAKE2b-256 |
038afbc0e4a3e5cc0dfe8a7fd6d48a647fd4bc895e15ffd903a46f774161c4ab
|
File details
Details for the file robotframework_cnpjalfanum-0.1.0-py3-none-any.whl.
File metadata
- Download URL: robotframework_cnpjalfanum-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2f30845d30e80c86ea648460584e726ede372270daf933b99a7d4acce0f5b57
|
|
| MD5 |
ed81cf83188eeeaa5030a8f3e4232997
|
|
| BLAKE2b-256 |
6f0ff9cc8a36f6243df88022f8440a711bbb54f1c599f0b6b8d64aaaa0f9ee9e
|