📦 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.
Metadata
Release files for robotframework-cnpjalfanum 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| robotframework_cnpjalfanum-0.1.0.tar.gz | 9.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| robotframework_cnpjalfanum-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.7 kB
Release files / robotframework_cnpjalfanum-0.1.0.tar.gz
| Download URL | robotframework_cnpjalfanum-0.1.0.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
47360e70f3afa4ebd009e4cf64aa9e4d940e7dacd9d892b5af8a7a03302e5a7f
|
|
BLAKE2b-256 checksum How to use checksums |
038afbc0e4a3e5cc0dfe8a7fd6d48a647fd4bc895e15ffd903a46f774161c4ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / robotframework_cnpjalfanum-0.1.0-py3-none-any.whl
| Download URL | robotframework_cnpjalfanum-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2f30845d30e80c86ea648460584e726ede372270daf933b99a7d4acce0f5b57
|
|
BLAKE2b-256 checksum How to use checksums |
6f0ff9cc8a36f6243df88022f8440a711bbb54f1c599f0b6b8d64aaaa0f9ee9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|