mirror of
https://github.com/rjNemo/pass-gen
synced 2026-06-06 02:26:42 +00:00
refactor: move to own files
This commit is contained in:
parent
8bbd7faf09
commit
4e4a0bdcc4
4 changed files with 35 additions and 26 deletions
16
app/main.py
16
app/main.py
|
|
@ -1,20 +1,6 @@
|
||||||
import random
|
|
||||||
import string
|
|
||||||
|
|
||||||
import typer
|
import typer
|
||||||
|
|
||||||
|
from .pass_gen import generate_password
|
||||||
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))
|
|
||||||
|
|
||||||
|
|
||||||
app = typer.Typer()
|
app = typer.Typer()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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(
|
def test_cli_print_password() -> None:
|
||||||
("seed", "expected"),
|
result = runner.invoke(app)
|
||||||
[
|
assert result.exit_code == 0
|
||||||
(0, "2yW4AcqG"),
|
assert "2yW4AcqG" in result.stdout
|
||||||
(1, "iK2ZWeqh"),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
def test_can_generate_random_password(seed: int, expected: str) -> None:
|
|
||||||
assert generate_password(seed) == expected
|
|
||||||
|
|
|
||||||
14
app/pass_gen.py
Normal file
14
app/pass_gen.py
Normal file
|
|
@ -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))
|
||||||
13
app/pass_gen_test.py
Normal file
13
app/pass_gen_test.py
Normal file
|
|
@ -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
|
||||||
Loading…
Reference in a new issue