feat: refactor app

This commit is contained in:
Ruidy 2021-07-05 18:46:05 +02:00
parent d1ddb0ea87
commit 8bbd7faf09
5 changed files with 51 additions and 14 deletions

View file

@ -1,11 +1,16 @@
.PHONY: lint .PHONY: lint
lint: lint:
black -l 99 . pipenv run black -l 99 .
flake8 . pipenv run flake8 .
mypy . pipenv run mypy .
vulture . pipenv run vulture .
bandit . pipenv run bandit .
.PHONY: test .PHONY: test
test: test:
pytest -v app/ pytest -v
.PHONY: cli
cli:
pipenv run python app/main.py

View file

@ -4,6 +4,7 @@ verify_ssl = true
name = "pypi" name = "pypi"
[packages] [packages]
typer = "*"
[dev-packages] [dev-packages]
bandit = "*" bandit = "*"

29
Pipfile.lock generated
View file

@ -1,7 +1,7 @@
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "59d461042336fd4cdcc06bf22ef4f96e37a2192ea2a45f76767151f8db5502d0" "sha256": "1a3b805c8e7a09b28dbba4cf1ca47933dbbec3fb63377f92acec697ac9ebb920"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": { "requires": {
@ -15,7 +15,24 @@
} }
] ]
}, },
"default": {}, "default": {
"click": {
"hashes": [
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==7.1.2"
},
"typer": {
"hashes": [
"sha256:5455d750122cff96745b0dec87368f56d023725a7ebc9d2e54dd23dc86816303",
"sha256:ba58b920ce851b12a2d790143009fa00ac1d05b3ff3257061ff69dbdfc3d161b"
],
"index": "pypi",
"version": "==0.3.2"
}
},
"develop": { "develop": {
"appdirs": { "appdirs": {
"hashes": [ "hashes": [
@ -50,11 +67,11 @@
}, },
"click": { "click": {
"hashes": [ "hashes": [
"sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a", "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
"sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6" "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
], ],
"markers": "python_version >= '3.6'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==8.0.1" "version": "==7.1.2"
}, },
"flake8": { "flake8": {
"hashes": [ "hashes": [

View file

@ -1,6 +1,8 @@
import random import random
import string import string
import typer
def generate_password(seed: int) -> str: def generate_password(seed: int) -> str:
lowercase = string.ascii_lowercase lowercase = string.ascii_lowercase
@ -12,3 +14,15 @@ def generate_password(seed: int) -> str:
random_generator = random.Random(seed) random_generator = random.Random(seed)
return "".join(random_generator.sample(letters, 8)) return "".join(random_generator.sample(letters, 8))
app = typer.Typer()
@app.command()
def main() -> None:
typer.echo(generate_password(0))
if __name__ == "__main__":
app()

View file

@ -1,6 +1,7 @@
from app.main import generate_password
import pytest import pytest
from app.main import generate_password
@pytest.mark.parametrize( @pytest.mark.parametrize(
("seed", "expected"), ("seed", "expected"),
@ -11,4 +12,3 @@ import pytest
) )
def test_can_generate_random_password(seed: int, expected: str) -> None: def test_can_generate_random_password(seed: int, expected: str) -> None:
assert generate_password(seed) == expected assert generate_password(seed) == expected