Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ False
- [generate_cnpj](#generate_cnpj)
- [CEP](#cep)
- [is_valid_cep](#is_valid_cep)
- [format_cep](#format_cep)
- [generate_cep](#generate_cep)

## CPF
Expand Down Expand Up @@ -139,10 +140,20 @@ Verifica se o CEP é valido. Apenas números, formatados como string. Não verif

```python
>>> from brutils import is_valid_cep
>>> is_valid_cep('88390000')
>>> is_valid_cep('01310200')
True
```

### format_cep

Formata o CEP. Retorna None se o CEP for inválido.

```python
>>> from brutils import format_cep
>>> format_cep('01310200')
'01310-200'
```

### generate_cep

Gera um CEP válido aleatório.
Expand Down
15 changes: 13 additions & 2 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ False
- [remove_symbols_cnpj](#remove_symbols_cnpj)
- [generate_cnpj](#generate_cnpj)
- [CEP](#cep)
- [is_valid_cep](#is_valid_cep)
- [is_valid_cep](#is_valid_cep)
- [format_cep](#format_cep)
- [generate_cep](#generate_cep)

## CPF
Expand Down Expand Up @@ -144,10 +145,20 @@ Check if CEP is valid. Numbers only, formatted as strings. Does not check if CEP

```python
>>> from brutils import is_valid_cep
>>> is_valid_cep('88390000')
>>> is_valid_cep('01310200')
True
```

### format_cep

Format CEP. Returns None if CEP is invalid.

```python
>>> from brutils import format_cep
>>> format_cpf('01310200')
'01310-200'
```

### generate_cep

Generate a valid random CEP.
Expand Down
1 change: 1 addition & 0 deletions brutils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
)
from brutils.cep import (
is_valid as is_valid_cep,
format_cep,
generate as generate_cep,
)
12 changes: 12 additions & 0 deletions brutils/cep.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@
############


def format_cep(cep): # type: (str) -> str
"""
Will format an adequately formatted numbers-only CEP string,
adding in standard formatting visual aid symbols for display.
"""

if not is_valid(cep):
return None

return "{}-{}".format(cep[:5], cep[5:8])


# OPERATIONS
############

Expand Down
13 changes: 13 additions & 0 deletions tests/test_cep.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,25 @@
)
from brutils.cep import (
is_valid,
format_cep,
generate,
)
from unittest import TestCase, main


class CEP(TestCase):
def test_format_cep(self):
with patch("brutils.cep.is_valid", return_value=True) as mock_is_valid:
# When cep is_valid, returns formatted cep
assert format_cep("01310200") == "01310-200"

# Checks if function is_valid_cnpj is called
mock_is_valid.assert_called_once_with("01310200")

with patch("brutils.cep.is_valid", return_value=False) as mock_is_valid:
# When cep isn't valid, returns None
assert format_cep("013102009") is None

def test_is_valid(self):
# When CEP is not string, returns False
assert not is_valid(1)
Expand Down