mirror of
https://framagit.org/framasoft/framaspace/argos.git
synced 2025-04-28 18:02:41 +02:00
150 lines
5.5 KiB
Python
150 lines
5.5 KiB
Python
import os
|
|
|
|
from click.testing import CliRunner
|
|
from argos_monitoring.commands import (
|
|
add,
|
|
verify_password,
|
|
change_password,
|
|
show,
|
|
disable,
|
|
enable,
|
|
delete,
|
|
)
|
|
|
|
|
|
os.environ["ARGOS_APP_ENV"] = "test"
|
|
os.environ["ARGOS_YAML_FILE"] = "tests/config.yaml"
|
|
|
|
|
|
def test_add_user():
|
|
runner = CliRunner()
|
|
result = runner.invoke(add, ["--name", "foo"], input="bar\nbar\n")
|
|
assert result.exit_code == 0
|
|
assert result.output == "Password: \nRepeat for confirmation: \nUser foo added.\n"
|
|
result = runner.invoke(add, ["--name", "foo"], input="bar\nbar\n")
|
|
assert result.exit_code == 1
|
|
assert (
|
|
result.output
|
|
== "Password: \nRepeat for confirmation: \nUser foo already exists.\n"
|
|
)
|
|
result = runner.invoke(add, ["--name", "baz", "--password", "qux"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "User baz added.\n"
|
|
|
|
|
|
def test_user_password():
|
|
runner = CliRunner()
|
|
result = runner.invoke(verify_password, ["--name", "foo"], input="bar\n")
|
|
assert result.exit_code == 0
|
|
assert result.output == "Password: \nThe provided password is correct.\n"
|
|
result = runner.invoke(verify_password, ["--name", "foo", "--password", "bar"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "The provided password is correct.\n"
|
|
result = runner.invoke(verify_password, ["--name", "quux", "--password", "corge"])
|
|
assert result.exit_code == 1
|
|
assert result.output == "User quux does not exist.\n"
|
|
result = runner.invoke(verify_password, ["--name", "foo", "--password", "grault"])
|
|
assert result.exit_code == 2
|
|
assert result.output == "Wrong password!\n"
|
|
|
|
|
|
def test_change_password():
|
|
runner = CliRunner()
|
|
result = runner.invoke(verify_password, ["--name", "foo", "--password", "grault"])
|
|
assert result.exit_code == 2
|
|
assert result.output == "Wrong password!\n"
|
|
result = runner.invoke(change_password, ["--name", "foo"], input="grault\ngrault\n")
|
|
assert result.exit_code == 0
|
|
assert (
|
|
result.output
|
|
== "Password: \nRepeat for confirmation: \nPassword of user foo changed.\n"
|
|
)
|
|
result = runner.invoke(verify_password, ["--name", "foo", "--password", "grault"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "The provided password is correct.\n"
|
|
result = runner.invoke(change_password, ["--name", "foo", "--password", "bar"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "Password of user foo changed.\n"
|
|
result = runner.invoke(verify_password, ["--name", "foo", "--password", "bar"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "The provided password is correct.\n"
|
|
result = runner.invoke(verify_password, ["--name", "quux", "--password", "bar"])
|
|
assert result.exit_code == 1
|
|
assert result.output == "User quux does not exist.\n"
|
|
|
|
|
|
def test_show():
|
|
runner = CliRunner()
|
|
result = runner.invoke(show)
|
|
assert result.exit_code == 0
|
|
assert (
|
|
result.output
|
|
== "✅ means that the user is enabled.\n❌ means that the user is disabled.\n"
|
|
"✅ baz, last login: None\n✅ foo, last login: None\n"
|
|
)
|
|
|
|
|
|
def test_disable():
|
|
runner = CliRunner()
|
|
result = runner.invoke(disable, ["--name", "quux"])
|
|
assert result.exit_code == 1
|
|
assert result.output == "User quux does not exist.\n"
|
|
result = runner.invoke(disable, ["--name", "foo"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "User foo disabled.\n"
|
|
result = runner.invoke(disable, ["--name", "foo"])
|
|
assert result.exit_code == 2
|
|
assert result.output == "User foo is already disabled.\n"
|
|
result = runner.invoke(show)
|
|
assert result.exit_code == 0
|
|
assert (
|
|
result.output
|
|
== "✅ means that the user is enabled.\n❌ means that the user is disabled.\n"
|
|
"✅ baz, last login: None\n❌ foo, last login: None\n"
|
|
)
|
|
|
|
|
|
def test_enable():
|
|
runner = CliRunner()
|
|
result = runner.invoke(enable, ["--name", "quux"])
|
|
assert result.exit_code == 1
|
|
assert result.output == "User quux does not exist.\n"
|
|
result = runner.invoke(enable, ["--name", "foo"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "User foo enabled.\n"
|
|
result = runner.invoke(enable, ["--name", "foo"])
|
|
assert result.exit_code == 2
|
|
assert result.output == "User foo is already enabled.\n"
|
|
result = runner.invoke(show)
|
|
assert result.exit_code == 0
|
|
assert (
|
|
result.output
|
|
== "✅ means that the user is enabled.\n❌ means that the user is disabled.\n"
|
|
"✅ baz, last login: None\n✅ foo, last login: None\n"
|
|
)
|
|
|
|
|
|
def test_delete():
|
|
runner = CliRunner()
|
|
result = runner.invoke(delete, ["--name", "quux"])
|
|
assert result.exit_code == 1
|
|
assert result.output == "User quux does not exist.\n"
|
|
result = runner.invoke(delete, ["--name", "foo"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "User foo deleted.\n"
|
|
result = runner.invoke(delete, ["--name", "foo"])
|
|
assert result.exit_code == 1
|
|
assert result.output == "User foo does not exist.\n"
|
|
result = runner.invoke(show)
|
|
assert result.exit_code == 0
|
|
assert (
|
|
result.output
|
|
== "✅ means that the user is enabled.\n❌ means that the user is disabled.\n"
|
|
"✅ baz, last login: None\n"
|
|
)
|
|
result = runner.invoke(delete, ["--name", "baz"])
|
|
assert result.exit_code == 0
|
|
assert result.output == "User baz deleted.\n"
|
|
result = runner.invoke(show)
|
|
assert result.exit_code == 1
|
|
assert result.output == "There is no users in database.\n"
|