feat: can control passsword length

This commit is contained in:
Ruidy 2021-07-05 18:57:42 +02:00
parent 4e4a0bdcc4
commit debe9c4565
3 changed files with 14 additions and 3 deletions

View file

@ -2,7 +2,7 @@
## Stories
- [ ] As a user I want to generate a random secure password to protect my personal accounts
- [x] As a user I want to generate a random secure password to protect my personal accounts
- [ ] Minimal length
- [ ] Include symbols
- [ ] Include numbers

View file

@ -2,7 +2,7 @@ import string
import random
def generate_password(seed: int) -> str:
def generate_password(seed: int, length: int = 8) -> str:
lowercase = string.ascii_lowercase
uppercase = string.ascii_uppercase
digits = string.digits
@ -11,4 +11,4 @@ def generate_password(seed: int) -> str:
random_generator = random.Random(seed)
return "".join(random_generator.sample(letters, 8))
return "".join(random_generator.sample(letters, length))

View file

@ -11,3 +11,14 @@ from .pass_gen import generate_password
)
def test_can_generate_random_password(seed: int, expected: str) -> None:
assert generate_password(seed) == expected
@pytest.mark.parametrize(
("seed", "length", "expected"),
[
(0, 6, "2yW4Ac"),
(1, 10, "iK2ZWeqhF5"),
],
)
def test_control_password_length(seed: int, length: int, expected: str) -> None:
assert generate_password(seed, length) == expected