From debe9c456584218897cfcbe0900ccadeb175976d Mon Sep 17 00:00:00 2001 From: Ruidy Date: Mon, 5 Jul 2021 18:57:42 +0200 Subject: [PATCH] feat: can control passsword length --- README.md | 2 +- app/pass_gen.py | 4 ++-- app/pass_gen_test.py | 11 +++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 44a601d..fef1018 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/app/pass_gen.py b/app/pass_gen.py index 328f632..edc04f4 100644 --- a/app/pass_gen.py +++ b/app/pass_gen.py @@ -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)) diff --git a/app/pass_gen_test.py b/app/pass_gen_test.py index 7cd5db0..3b9068c 100644 --- a/app/pass_gen_test.py +++ b/app/pass_gen_test.py @@ -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