You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.0 KiB
105 lines
3.0 KiB
3 years ago
|
# import pytest
|
||
|
from datetime import datetime
|
||
|
|
||
|
|
||
|
def test_elabuser_string_representation():
|
||
|
from elab_users.users import ElabUser
|
||
|
|
||
|
eu = ElabUser("John Doe", "Some Group")
|
||
|
|
||
|
assert str(eu) == "John Doe"
|
||
|
|
||
|
|
||
|
def test_elabuser_set_new_password(stub_handler):
|
||
|
from elab_users.users import ElabUser
|
||
|
|
||
|
eu = ElabUser("John Doe", "Some Group")
|
||
|
|
||
|
password = eu.set_new_password("some path", 12, handler=stub_handler)
|
||
|
|
||
|
assert len(password) == 12
|
||
|
assert len(stub_handler.stack) == 1
|
||
|
called = stub_handler.stack[0]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args == [
|
||
|
"htpasswd",
|
||
|
"-b",
|
||
|
"some path",
|
||
|
"John Doe",
|
||
|
password,
|
||
|
]
|
||
|
assert called.kargs == {}
|
||
|
|
||
|
|
||
|
def test_elabuser_delete_password(stub_handler):
|
||
|
from elab_users.users import ElabUser
|
||
|
|
||
|
eu = ElabUser("John Doe", "Some Group")
|
||
|
|
||
|
eu.delete_password("some path", handler=stub_handler)
|
||
|
|
||
|
assert len(stub_handler.stack) == 1
|
||
|
called = stub_handler.stack[0]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args == [
|
||
|
"htpasswd",
|
||
|
"-D",
|
||
|
"some path",
|
||
|
"John Doe",
|
||
|
]
|
||
|
assert list(called.kargs.keys()) == ["stderr"]
|
||
|
|
||
|
|
||
|
def test_elabuser_create_new_repo(stub_handler):
|
||
|
from elab_users.users import ElabUser
|
||
|
|
||
|
eu = ElabUser("John Doe", "Some Group")
|
||
|
|
||
|
eu.create_new_repository("some path", handler=stub_handler)
|
||
|
|
||
|
today = datetime.now()
|
||
|
current_month = today.month
|
||
|
current_year = today.year
|
||
|
|
||
|
assert len(stub_handler.stack) == 8 + (12 - current_month)
|
||
|
|
||
|
called = stub_handler.stack[0]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args == ["svnadmin", "create", "some path/John Doe"]
|
||
|
assert called.kargs == {"stderr": stub_handler.STDOUT}
|
||
|
|
||
|
called = stub_handler.stack[1]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args[:3] == ["svn", "checkout", "file://some path/John Doe"]
|
||
|
assert called.args[3].startswith("/tmp/") # noqa: S108
|
||
|
assert called.kargs == {}
|
||
|
|
||
|
called = stub_handler.stack[2]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args[0] == "touch"
|
||
|
assert called.args[1].startswith("/tmp/") # noqa: S108
|
||
|
assert called.args[1].endswith(
|
||
|
f"/{current_year:0>4}/{current_month:0>2}/.empty"
|
||
|
)
|
||
|
assert called.kargs == {}
|
||
|
|
||
|
called = stub_handler.stack[-3]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args[0] == "cp"
|
||
|
assert called.args[1] == "some path/template-toc.doc"
|
||
|
assert called.args[2].startswith("/tmp/") # noqa: S108
|
||
|
assert called.args[2].endswith("/template-toc.doc")
|
||
|
assert called.kargs == {}
|
||
|
|
||
|
called = stub_handler.stack[-2]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args[:2] == ["svn", "add"]
|
||
|
assert called.args[2].startswith("/tmp/") # noqa: S108
|
||
|
assert called.args[2].endswith("/*")
|
||
|
assert called.kargs == {"shell": True}
|
||
|
|
||
|
called = stub_handler.stack[-1]
|
||
|
assert called.func == "check_call"
|
||
|
assert called.args[:4] == ["svn", "commit", "-m", "New User: John Doe"]
|
||
|
assert called.args[4].startswith("/tmp/") # noqa: S108
|