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
|
||||
|
||||
|
||||
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()
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
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