Skip to content

Commit

Permalink
feat: gerar n煤mero de telefone fixo aleat贸rio (#249)
Browse files Browse the repository at this point in the history
* adding changelog and readme entries

* adding _generate_ddd_number and generate_landline_phone

* importing  generate_landline_phone

* adding test_generate_landline_phone

---------

Co-authored-by: Marcel Cattaneo <marcel.cattaneo@deal.com.br>
Co-authored-by: Maria Ant么nia Maia <mdeazevedomaia@gmail.com>
  • Loading branch information
3 people committed Oct 17, 2023
1 parent 11a34a8 commit 0ea1737
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- Utilit谩rio `generate_landline_phone` [#190](https://github.com/brazilian-utils/brutils-python/pull/190)
- Utilit谩rio `is_valid_titulo_eleitoral` [#235](https://github.com/brazilian-utils/brutils-python/pull/235)
- Suporte ao Python 3.12 [#245](https://github.com/brazilian-utils/brutils-python/pull/245)
- Utilit谩rio `is_valid_processo_juridico` [#207](https://github.com/brazilian-utils/brutils-python/pull/207)
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ False
- [is_valid_landline_phone](#is_valid_landline_phone)
- [remove_symbols_phone](#remove_symbols_phone)
- [generate_mobile_phone](#generate_mobile_phone)
- [generate_landline_phone](#generate_landline_phone)
- [Email](#email)
- [is_valid_email](#is_valid_email)
- [License Plate](#license_plate)
Expand Down Expand Up @@ -293,6 +294,23 @@ Gera um n煤mero de telefone m贸vel v谩lido e aleat贸rio
'53924997638'
```

### generate_landline_phone

Gera um n煤mero de telefone fixo v谩lido

```python
>>> from brutils import generate_landline_phone
>>> generate_landline_phone()
5929797740
>>> generate_landline_phone()
9345561355
>>> generate_landline_phone()
1145081947
>>> generate_landline_phone()
3138577807
>>>
```

## Email

### is_valid_email
Expand Down
18 changes: 18 additions & 0 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ False
- [is_valid_landline_phone](#is_valid_landline_phone)
- [remove_symbols_phone](#remove_symbols_phone)
- [generate_mobile_phone](#generate_mobile_phone)
- [generate_landline_phone](#generate_landline_phone)
- [Email](#email)
- [is_valid_email](#is_valid_email)
- [License_Plate](#license_plate)
Expand Down Expand Up @@ -288,6 +289,23 @@ Generates a valid and random mobile phone number
'53924997638'
```

### generate_landline_phone

Generates a valid landline phone number

```python
>>> from brutils import generate_landline_phone
>>> generate_landline_phone()
5929797740
>>> generate_landline_phone()
9345561355
>>> generate_landline_phone()
1145081947
>>> generate_landline_phone()
3138577807
>>>
```

## Email

### is_valid_email
Expand Down
1 change: 1 addition & 0 deletions brutils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
is_valid as is_valid_phone,
format_phone,
generate_mobile_phone,
generate_landline_phone,
)

from brutils.license_plate import (
Expand Down
19 changes: 17 additions & 2 deletions brutils/phone.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,28 @@ def remove_symbols_phone(phone_number): # type: (str) -> str
return cleaned_phone


def _generate_ddd_number(): # type() -> str
"""
Generate a valid DDD number.
"""
return f'{"".join([str(randint(1, 9)) for i in range(2)])}'


def generate_mobile_phone():
"""
Generate a valid and random mobile phone number
"""
ddd = [str(randint(1, 9)) for i in range(2)]
ddd = _generate_ddd_number()
client_number = [str(randint(0, 9)) for i in range(8)]

phone_number = f'{"".join(ddd)}9{"".join(client_number)}'
phone_number = f'{ddd}9{"".join(client_number)}'

return phone_number


def generate_landline_phone(): # type () -> str
"""
Generate a valid and random landline phone number.
"""
ddd = _generate_ddd_number()
return f"{ddd}{randint(2,5)}{str(randint(0,9999999)).zfill(7)}"
10 changes: 10 additions & 0 deletions tests/test_phone.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
remove_symbols_phone,
format_phone,
generate_mobile_phone,
generate_landline_phone,
)

from unittest import TestCase, main
Expand Down Expand Up @@ -179,6 +180,15 @@ def test_generate_mobile_phone(self):
phone_generated = generate_mobile_phone()
self.assertTrue(is_valid_mobile(phone_generated))

def test_generate_landline_phone(self):
for _ in range(25):
with self.subTest():
number = generate_landline_phone()
self.assertTrue(is_valid_landline(number))
self.assertEqual(len(generate_landline_phone()), 10)
self.assertTrue(generate_landline_phone().isdigit())
self.assertTrue(isinstance(generate_landline_phone(), str))


if __name__ == "__main__":
main()

0 comments on commit 0ea1737

Please sign in to comment.