From 4e4a0bdcc435f6a170f377e44d073a2fdda9baeb Mon Sep 17 00:00:00 2001 From: Ruidy Date: Mon, 5 Jul 2021 18:53:02 +0200 Subject: [PATCH] refactor: move to own files --- app/main.py | 16 +--------------- app/main_test.py | 18 +++++++----------- app/pass_gen.py | 14 ++++++++++++++ app/pass_gen_test.py | 13 +++++++++++++ 4 files changed, 35 insertions(+), 26 deletions(-) create mode 100644 app/pass_gen.py create mode 100644 app/pass_gen_test.py diff --git a/app/main.py b/app/main.py index 8b89802..74cc6cc 100644 --- a/app/main.py +++ b/app/main.py @@ -1,20 +1,6 @@ -import random -import string - import typer - -def generate_password(seed: int) -> str: - lowercase = string.ascii_lowercase - uppercase = string.ascii_uppercase - digits = string.digits - - letters = lowercase + uppercase + digits - - random_generator = random.Random(seed) - - return "".join(random_generator.sample(letters, 8)) - +from .pass_gen import generate_password app = typer.Typer() diff --git a/app/main_test.py b/app/main_test.py index 27696c1..2ca6e54 100644 --- a/app/main_test.py +++ b/app/main_test.py @@ -1,14 +1,10 @@ -import pytest +from typer.testing import CliRunner +from .main import app -from app.main import generate_password +runner = CliRunner() -@pytest.mark.parametrize( - ("seed", "expected"), - [ - (0, "2yW4AcqG"), - (1, "iK2ZWeqh"), - ], -) -def test_can_generate_random_password(seed: int, expected: str) -> None: - assert generate_password(seed) == expected +def test_cli_print_password() -> None: + result = runner.invoke(app) + assert result.exit_code == 0 + assert "2yW4AcqG" in result.stdout diff --git a/app/pass_gen.py b/app/pass_gen.py new file mode 100644 index 0000000..328f632 --- /dev/null +++ b/app/pass_gen.py @@ -0,0 +1,14 @@ +import string +import random + + +def generate_password(seed: int) -> str: + lowercase = string.ascii_lowercase + uppercase = string.ascii_uppercase + digits = string.digits + + letters = lowercase + uppercase + digits + + random_generator = random.Random(seed) + + return "".join(random_generator.sample(letters, 8)) diff --git a/app/pass_gen_test.py b/app/pass_gen_test.py new file mode 100644 index 0000000..7cd5db0 --- /dev/null +++ b/app/pass_gen_test.py @@ -0,0 +1,13 @@ +import pytest +from .pass_gen import generate_password + + +@pytest.mark.parametrize( + ("seed", "expected"), + [ + (0, "2yW4AcqG"), + (1, "iK2ZWeqh"), + ], +) +def test_can_generate_random_password(seed: int, expected: str) -> None: + assert generate_password(seed) == expected