tests: fix spy on m18n.n which in some cases doesnt work anymore ... not sure why, bit confused ...

This commit is contained in:
Alexandre Aubin 2023-05-15 18:51:18 +02:00
parent 482f8f3443
commit 031c641b77
7 changed files with 133 additions and 128 deletions

View file

@ -1,5 +1,6 @@
import os import os
import pytest import pytest
from unittest.mock import Mock
import moulinette import moulinette
from moulinette import m18n, Moulinette from moulinette import m18n, Moulinette
@ -23,11 +24,15 @@ def get_test_apps_dir():
@contextmanager @contextmanager
def message(mocker, key, **kwargs): def message(key, **kwargs):
mocker.spy(m18n, "n") m = Mock(wraps=m18n.n)
old_m18n = m18n.n
m18n.n = m
yield yield
m18n.n.assert_any_call(key, **kwargs) try:
m.assert_any_call(key, **kwargs)
finally:
m18n.n = old_m18n
@contextmanager @contextmanager
def raiseYunohostError(mocker, key, **kwargs): def raiseYunohostError(mocker, key, **kwargs):

View file

@ -392,9 +392,9 @@ def test_legacy_app_install_private(secondary_domain):
assert app_is_not_installed(secondary_domain, "legacy_app") assert app_is_not_installed(secondary_domain, "legacy_app")
def test_legacy_app_install_unknown_domain(mocker): def test_legacy_app_install_unknown_domain():
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_argument_invalid"): with message("app_argument_invalid"):
install_legacy_app("whatever.nope", "/legacy") install_legacy_app("whatever.nope", "/legacy")
assert app_is_not_installed("whatever.nope", "legacy_app") assert app_is_not_installed("whatever.nope", "legacy_app")
@ -421,12 +421,12 @@ def test_legacy_app_install_multiple_instances(secondary_domain):
assert app_is_not_installed(secondary_domain, "legacy_app__2") assert app_is_not_installed(secondary_domain, "legacy_app__2")
def test_legacy_app_install_path_unavailable(mocker, secondary_domain): def test_legacy_app_install_path_unavailable(secondary_domain):
# These will be removed in teardown # These will be removed in teardown
install_legacy_app(secondary_domain, "/legacy") install_legacy_app(secondary_domain, "/legacy")
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_location_unavailable"): with message("app_location_unavailable"):
install_legacy_app(secondary_domain, "/") install_legacy_app(secondary_domain, "/")
assert app_is_installed(secondary_domain, "legacy_app") assert app_is_installed(secondary_domain, "legacy_app")
@ -442,19 +442,19 @@ def test_legacy_app_install_with_nginx_down(mocker, secondary_domain):
install_legacy_app(secondary_domain, "/legacy") install_legacy_app(secondary_domain, "/legacy")
def test_legacy_app_failed_install(mocker, secondary_domain): def test_legacy_app_failed_install(secondary_domain):
# This will conflict with the folder that the app # This will conflict with the folder that the app
# attempts to create, making the install fail # attempts to create, making the install fail
mkdir("/var/www/legacy_app/", 0o750) mkdir("/var/www/legacy_app/", 0o750)
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_install_script_failed"): with message("app_install_script_failed"):
install_legacy_app(secondary_domain, "/legacy") install_legacy_app(secondary_domain, "/legacy")
assert app_is_not_installed(secondary_domain, "legacy_app") assert app_is_not_installed(secondary_domain, "legacy_app")
def test_legacy_app_failed_remove(mocker, secondary_domain): def test_legacy_app_failed_remove(secondary_domain):
install_legacy_app(secondary_domain, "/legacy") install_legacy_app(secondary_domain, "/legacy")
# The remove script runs with set -eu and attempt to remove this # The remove script runs with set -eu and attempt to remove this
@ -486,52 +486,52 @@ def test_full_domain_app_with_conflicts(mocker, secondary_domain):
install_full_domain_app(secondary_domain) install_full_domain_app(secondary_domain)
def test_systemfuckedup_during_app_install(mocker, secondary_domain): def test_systemfuckedup_during_app_install(secondary_domain):
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_install_failed"): with message("app_install_failed"):
with message(mocker, "app_action_broke_system"): with message("app_action_broke_system"):
install_break_yo_system(secondary_domain, breakwhat="install") install_break_yo_system(secondary_domain, breakwhat="install")
assert app_is_not_installed(secondary_domain, "break_yo_system") assert app_is_not_installed(secondary_domain, "break_yo_system")
def test_systemfuckedup_during_app_remove(mocker, secondary_domain): def test_systemfuckedup_during_app_remove(secondary_domain):
install_break_yo_system(secondary_domain, breakwhat="remove") install_break_yo_system(secondary_domain, breakwhat="remove")
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_action_broke_system"): with message("app_action_broke_system"):
with message(mocker, "app_removed"): with message("app_removed"):
app_remove("break_yo_system") app_remove("break_yo_system")
assert app_is_not_installed(secondary_domain, "break_yo_system") assert app_is_not_installed(secondary_domain, "break_yo_system")
def test_systemfuckedup_during_app_install_and_remove(mocker, secondary_domain): def test_systemfuckedup_during_app_install_and_remove(secondary_domain):
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_install_failed"): with message("app_install_failed"):
with message(mocker, "app_action_broke_system"): with message("app_action_broke_system"):
install_break_yo_system(secondary_domain, breakwhat="everything") install_break_yo_system(secondary_domain, breakwhat="everything")
assert app_is_not_installed(secondary_domain, "break_yo_system") assert app_is_not_installed(secondary_domain, "break_yo_system")
def test_systemfuckedup_during_app_upgrade(mocker, secondary_domain): def test_systemfuckedup_during_app_upgrade(secondary_domain):
install_break_yo_system(secondary_domain, breakwhat="upgrade") install_break_yo_system(secondary_domain, breakwhat="upgrade")
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_action_broke_system"): with message("app_action_broke_system"):
app_upgrade( app_upgrade(
"break_yo_system", "break_yo_system",
file=os.path.join(get_test_apps_dir(), "break_yo_system_ynh"), file=os.path.join(get_test_apps_dir(), "break_yo_system_ynh"),
) )
def test_failed_multiple_app_upgrade(mocker, secondary_domain): def test_failed_multiple_app_upgrade(secondary_domain):
install_legacy_app(secondary_domain, "/legacy") install_legacy_app(secondary_domain, "/legacy")
install_break_yo_system(secondary_domain, breakwhat="upgrade") install_break_yo_system(secondary_domain, breakwhat="upgrade")
with pytest.raises(YunohostError): with pytest.raises(YunohostError):
with message(mocker, "app_not_upgraded"): with message("app_not_upgraded"):
app_upgrade( app_upgrade(
["break_yo_system", "legacy_app"], ["break_yo_system", "legacy_app"],
file={ file={

View file

@ -236,10 +236,10 @@ def add_archive_system_from_4p2():
# #
def test_backup_only_ldap(mocker): def test_backup_only_ldap():
# Create the backup # Create the backup
name = random_ascii(8) name = random_ascii(8)
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create(name=name, system=["conf_ldap"], apps=None) backup_create(name=name, system=["conf_ldap"], apps=None)
archives = backup_list()["archives"] archives = backup_list()["archives"]
@ -253,7 +253,7 @@ def test_backup_only_ldap(mocker):
def test_backup_system_part_that_does_not_exists(mocker): def test_backup_system_part_that_does_not_exists(mocker):
# Create the backup # Create the backup
with message(mocker, "backup_hook_unknown", hook="doesnt_exist"): with message("backup_hook_unknown", hook="doesnt_exist"):
with raiseYunohostError(mocker, "backup_nothings_done"): with raiseYunohostError(mocker, "backup_nothings_done"):
backup_create(system=["doesnt_exist"], apps=None) backup_create(system=["doesnt_exist"], apps=None)
@ -263,10 +263,10 @@ def test_backup_system_part_that_does_not_exists(mocker):
# #
def test_backup_and_restore_all_sys(mocker): def test_backup_and_restore_all_sys():
name = random_ascii(8) name = random_ascii(8)
# Create the backup # Create the backup
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create(name=name, system=[], apps=None) backup_create(name=name, system=[], apps=None)
archives = backup_list()["archives"] archives = backup_list()["archives"]
@ -284,7 +284,7 @@ def test_backup_and_restore_all_sys(mocker):
assert not os.path.exists("/etc/ssowat/conf.json") assert not os.path.exists("/etc/ssowat/conf.json")
# Restore the backup # Restore the backup
with message(mocker, "restore_complete"): with message("restore_complete"):
backup_restore(name=archives[0], force=True, system=[], apps=None) backup_restore(name=archives[0], force=True, system=[], apps=None)
# Check ssowat conf is back # Check ssowat conf is back
@ -297,17 +297,17 @@ def test_backup_and_restore_all_sys(mocker):
@pytest.mark.with_system_archive_from_4p2 @pytest.mark.with_system_archive_from_4p2
def test_restore_system_from_Ynh4p2(monkeypatch, mocker): def test_restore_system_from_Ynh4p2(monkeypatch):
name = random_ascii(8) name = random_ascii(8)
# Backup current system # Backup current system
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create(name=name, system=[], apps=None) backup_create(name=name, system=[], apps=None)
archives = backup_list()["archives"] archives = backup_list()["archives"]
assert len(archives) == 2 assert len(archives) == 2
# Restore system archive from 3.8 # Restore system archive from 3.8
try: try:
with message(mocker, "restore_complete"): with message("restore_complete"):
backup_restore( backup_restore(
name=backup_list()["archives"][1], system=[], apps=None, force=True name=backup_list()["archives"][1], system=[], apps=None, force=True
) )
@ -336,7 +336,7 @@ def test_backup_script_failure_handling(monkeypatch, mocker):
# with the expected error message key # with the expected error message key
monkeypatch.setattr("yunohost.backup.hook_exec", custom_hook_exec) monkeypatch.setattr("yunohost.backup.hook_exec", custom_hook_exec)
with message(mocker, "backup_app_failed", app="backup_recommended_app"): with message("backup_app_failed", app="backup_recommended_app"):
with raiseYunohostError(mocker, "backup_nothings_done"): with raiseYunohostError(mocker, "backup_nothings_done"):
backup_create(system=None, apps=["backup_recommended_app"]) backup_create(system=None, apps=["backup_recommended_app"])
@ -363,7 +363,7 @@ def test_backup_not_enough_free_space(monkeypatch, mocker):
def test_backup_app_not_installed(mocker): def test_backup_app_not_installed(mocker):
assert not _is_installed("wordpress") assert not _is_installed("wordpress")
with message(mocker, "unbackup_app", app="wordpress"): with message("unbackup_app", app="wordpress"):
with raiseYunohostError(mocker, "backup_nothings_done"): with raiseYunohostError(mocker, "backup_nothings_done"):
backup_create(system=None, apps=["wordpress"]) backup_create(system=None, apps=["wordpress"])
@ -375,14 +375,14 @@ def test_backup_app_with_no_backup_script(mocker):
assert not os.path.exists(backup_script) assert not os.path.exists(backup_script)
with message( with message(
mocker, "backup_with_no_backup_script_for_app", app="backup_recommended_app" "backup_with_no_backup_script_for_app", app="backup_recommended_app"
): ):
with raiseYunohostError(mocker, "backup_nothings_done"): with raiseYunohostError(mocker, "backup_nothings_done"):
backup_create(system=None, apps=["backup_recommended_app"]) backup_create(system=None, apps=["backup_recommended_app"])
@pytest.mark.with_backup_recommended_app_installed @pytest.mark.with_backup_recommended_app_installed
def test_backup_app_with_no_restore_script(mocker): def test_backup_app_with_no_restore_script():
restore_script = "/etc/yunohost/apps/backup_recommended_app/scripts/restore" restore_script = "/etc/yunohost/apps/backup_recommended_app/scripts/restore"
os.system("rm %s" % restore_script) os.system("rm %s" % restore_script)
assert not os.path.exists(restore_script) assert not os.path.exists(restore_script)
@ -391,16 +391,16 @@ def test_backup_app_with_no_restore_script(mocker):
# user... # user...
with message( with message(
mocker, "backup_with_no_restore_script_for_app", app="backup_recommended_app" "backup_with_no_restore_script_for_app", app="backup_recommended_app"
): ):
backup_create(system=None, apps=["backup_recommended_app"]) backup_create(system=None, apps=["backup_recommended_app"])
@pytest.mark.clean_opt_dir @pytest.mark.clean_opt_dir
def test_backup_with_different_output_directory(mocker): def test_backup_with_different_output_directory():
name = random_ascii(8) name = random_ascii(8)
# Create the backup # Create the backup
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create( backup_create(
system=["conf_ynh_settings"], system=["conf_ynh_settings"],
apps=None, apps=None,
@ -420,10 +420,10 @@ def test_backup_with_different_output_directory(mocker):
@pytest.mark.clean_opt_dir @pytest.mark.clean_opt_dir
def test_backup_using_copy_method(mocker): def test_backup_using_copy_method():
# Create the backup # Create the backup
name = random_ascii(8) name = random_ascii(8)
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create( backup_create(
system=["conf_ynh_settings"], system=["conf_ynh_settings"],
apps=None, apps=None,
@ -442,8 +442,8 @@ def test_backup_using_copy_method(mocker):
@pytest.mark.with_wordpress_archive_from_4p2 @pytest.mark.with_wordpress_archive_from_4p2
@pytest.mark.with_custom_domain("yolo.test") @pytest.mark.with_custom_domain("yolo.test")
def test_restore_app_wordpress_from_Ynh4p2(mocker): def test_restore_app_wordpress_from_Ynh4p2():
with message(mocker, "restore_complete"): with message("restore_complete"):
backup_restore( backup_restore(
system=None, name=backup_list()["archives"][0], apps=["wordpress"] system=None, name=backup_list()["archives"][0], apps=["wordpress"]
) )
@ -461,7 +461,7 @@ def test_restore_app_script_failure_handling(monkeypatch, mocker):
assert not _is_installed("wordpress") assert not _is_installed("wordpress")
with message(mocker, "app_restore_script_failed"): with message("app_restore_script_failed"):
with raiseYunohostError(mocker, "restore_nothings_done"): with raiseYunohostError(mocker, "restore_nothings_done"):
backup_restore( backup_restore(
system=None, name=backup_list()["archives"][0], apps=["wordpress"] system=None, name=backup_list()["archives"][0], apps=["wordpress"]
@ -494,7 +494,7 @@ def test_restore_app_not_in_backup(mocker):
assert not _is_installed("wordpress") assert not _is_installed("wordpress")
assert not _is_installed("yoloswag") assert not _is_installed("yoloswag")
with message(mocker, "backup_archive_app_not_found", app="yoloswag"): with message("backup_archive_app_not_found", app="yoloswag"):
with raiseYunohostError(mocker, "restore_nothings_done"): with raiseYunohostError(mocker, "restore_nothings_done"):
backup_restore( backup_restore(
system=None, name=backup_list()["archives"][0], apps=["yoloswag"] system=None, name=backup_list()["archives"][0], apps=["yoloswag"]
@ -509,7 +509,7 @@ def test_restore_app_not_in_backup(mocker):
def test_restore_app_already_installed(mocker): def test_restore_app_already_installed(mocker):
assert not _is_installed("wordpress") assert not _is_installed("wordpress")
with message(mocker, "restore_complete"): with message("restore_complete"):
backup_restore( backup_restore(
system=None, name=backup_list()["archives"][0], apps=["wordpress"] system=None, name=backup_list()["archives"][0], apps=["wordpress"]
) )
@ -525,22 +525,22 @@ def test_restore_app_already_installed(mocker):
@pytest.mark.with_legacy_app_installed @pytest.mark.with_legacy_app_installed
def test_backup_and_restore_legacy_app(mocker): def test_backup_and_restore_legacy_app():
_test_backup_and_restore_app(mocker, "legacy_app") _test_backup_and_restore_app("legacy_app")
@pytest.mark.with_backup_recommended_app_installed @pytest.mark.with_backup_recommended_app_installed
def test_backup_and_restore_recommended_app(mocker): def test_backup_and_restore_recommended_app():
_test_backup_and_restore_app(mocker, "backup_recommended_app") _test_backup_and_restore_app("backup_recommended_app")
@pytest.mark.with_backup_recommended_app_installed_with_ynh_restore @pytest.mark.with_backup_recommended_app_installed_with_ynh_restore
def test_backup_and_restore_with_ynh_restore(mocker): def test_backup_and_restore_with_ynh_restore():
_test_backup_and_restore_app(mocker, "backup_recommended_app") _test_backup_and_restore_app("backup_recommended_app")
@pytest.mark.with_permission_app_installed @pytest.mark.with_permission_app_installed
def test_backup_and_restore_permission_app(mocker): def test_backup_and_restore_permission_app():
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
assert "permissions_app.main" in res assert "permissions_app.main" in res
assert "permissions_app.admin" in res assert "permissions_app.admin" in res
@ -554,7 +554,7 @@ def test_backup_and_restore_permission_app(mocker):
assert res["permissions_app.admin"]["allowed"] == ["alice"] assert res["permissions_app.admin"]["allowed"] == ["alice"]
assert res["permissions_app.dev"]["allowed"] == [] assert res["permissions_app.dev"]["allowed"] == []
_test_backup_and_restore_app(mocker, "permissions_app") _test_backup_and_restore_app("permissions_app")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
assert "permissions_app.main" in res assert "permissions_app.main" in res
@ -570,10 +570,10 @@ def test_backup_and_restore_permission_app(mocker):
assert res["permissions_app.dev"]["allowed"] == [] assert res["permissions_app.dev"]["allowed"] == []
def _test_backup_and_restore_app(mocker, app): def _test_backup_and_restore_app(app):
# Create a backup of this app # Create a backup of this app
name = random_ascii(8) name = random_ascii(8)
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create(name=name, system=None, apps=[app]) backup_create(name=name, system=None, apps=[app])
archives = backup_list()["archives"] archives = backup_list()["archives"]
@ -590,7 +590,7 @@ def _test_backup_and_restore_app(mocker, app):
assert app + ".main" not in user_permission_list()["permissions"] assert app + ".main" not in user_permission_list()["permissions"]
# Restore the app # Restore the app
with message(mocker, "restore_complete"): with message("restore_complete"):
backup_restore(system=None, name=archives[0], apps=[app]) backup_restore(system=None, name=archives[0], apps=[app])
assert app_is_installed(app) assert app_is_installed(app)
@ -631,19 +631,19 @@ def test_restore_archive_with_bad_archive(mocker):
clean_tmp_backup_directory() clean_tmp_backup_directory()
def test_restore_archive_with_custom_hook(mocker): def test_restore_archive_with_custom_hook():
custom_restore_hook_folder = os.path.join(CUSTOM_HOOK_FOLDER, "restore") custom_restore_hook_folder = os.path.join(CUSTOM_HOOK_FOLDER, "restore")
os.system("touch %s/99-yolo" % custom_restore_hook_folder) os.system("touch %s/99-yolo" % custom_restore_hook_folder)
# Backup with custom hook system # Backup with custom hook system
name = random_ascii(8) name = random_ascii(8)
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create(name=name, system=[], apps=None) backup_create(name=name, system=[], apps=None)
archives = backup_list()["archives"] archives = backup_list()["archives"]
assert len(archives) == 1 assert len(archives) == 1
# Restore system with custom hook # Restore system with custom hook
with message(mocker, "restore_complete"): with message("restore_complete"):
backup_restore( backup_restore(
name=backup_list()["archives"][0], system=[], apps=None, force=True name=backup_list()["archives"][0], system=[], apps=None, force=True
) )
@ -651,7 +651,7 @@ def test_restore_archive_with_custom_hook(mocker):
os.system("rm %s/99-yolo" % custom_restore_hook_folder) os.system("rm %s/99-yolo" % custom_restore_hook_folder)
def test_backup_binds_are_readonly(mocker, monkeypatch): def test_backup_binds_are_readonly(monkeypatch):
def custom_mount_and_backup(self): def custom_mount_and_backup(self):
self._organize_files() self._organize_files()
@ -676,5 +676,5 @@ def test_backup_binds_are_readonly(mocker, monkeypatch):
# Create the backup # Create the backup
name = random_ascii(8) name = random_ascii(8)
with message(mocker, "backup_created", name=name): with message("backup_created", name=name):
backup_create(name=name, system=[]) backup_create(name=name, system=[])

View file

@ -59,7 +59,7 @@ def test_authenticate_with_wrong_password():
assert expected_msg in str(exception) assert expected_msg in str(exception)
def test_authenticate_server_down(mocker): def test_authenticate_server_down():
os.system("systemctl stop slapd && sleep 5") os.system("systemctl stop slapd && sleep 5")
LDAPAuth().authenticate_credentials(credentials="alice:Yunohost") LDAPAuth().authenticate_credentials(credentials="alice:Yunohost")

View file

@ -435,8 +435,8 @@ def test_permission_list():
# #
def test_permission_create_main(mocker): def test_permission_create_main():
with message(mocker, "permission_created", permission="site.main"): with message("permission_created", permission="site.main"):
permission_create("site.main", allowed=["all_users"], protected=False) permission_create("site.main", allowed=["all_users"], protected=False)
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
@ -446,8 +446,8 @@ def test_permission_create_main(mocker):
assert res["site.main"]["protected"] is False assert res["site.main"]["protected"] is False
def test_permission_create_extra(mocker): def test_permission_create_extra():
with message(mocker, "permission_created", permission="site.test"): with message("permission_created", permission="site.test"):
permission_create("site.test") permission_create("site.test")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
@ -466,8 +466,8 @@ def test_permission_create_with_specific_user():
assert res["site.test"]["allowed"] == ["alice"] assert res["site.test"]["allowed"] == ["alice"]
def test_permission_create_with_tile_management(mocker): def test_permission_create_with_tile_management():
with message(mocker, "permission_created", permission="site.main"): with message("permission_created", permission="site.main"):
_permission_create_with_dummy_app( _permission_create_with_dummy_app(
"site.main", "site.main",
allowed=["all_users"], allowed=["all_users"],
@ -483,8 +483,8 @@ def test_permission_create_with_tile_management(mocker):
assert res["site.main"]["show_tile"] is False assert res["site.main"]["show_tile"] is False
def test_permission_create_with_tile_management_with_main_default_value(mocker): def test_permission_create_with_tile_management_with_main_default_value():
with message(mocker, "permission_created", permission="site.main"): with message("permission_created", permission="site.main"):
_permission_create_with_dummy_app( _permission_create_with_dummy_app(
"site.main", "site.main",
allowed=["all_users"], allowed=["all_users"],
@ -500,8 +500,8 @@ def test_permission_create_with_tile_management_with_main_default_value(mocker):
assert res["site.main"]["show_tile"] is True assert res["site.main"]["show_tile"] is True
def test_permission_create_with_tile_management_with_not_main_default_value(mocker): def test_permission_create_with_tile_management_with_not_main_default_value():
with message(mocker, "permission_created", permission="wiki.api"): with message("permission_created", permission="wiki.api"):
_permission_create_with_dummy_app( _permission_create_with_dummy_app(
"wiki.api", "wiki.api",
allowed=["all_users"], allowed=["all_users"],
@ -517,8 +517,8 @@ def test_permission_create_with_tile_management_with_not_main_default_value(mock
assert res["wiki.api"]["show_tile"] is True assert res["wiki.api"]["show_tile"] is True
def test_permission_create_with_urls_management_without_url(mocker): def test_permission_create_with_urls_management_without_url():
with message(mocker, "permission_created", permission="wiki.api"): with message("permission_created", permission="wiki.api"):
_permission_create_with_dummy_app( _permission_create_with_dummy_app(
"wiki.api", allowed=["all_users"], domain=maindomain, path="/site" "wiki.api", allowed=["all_users"], domain=maindomain, path="/site"
) )
@ -530,8 +530,8 @@ def test_permission_create_with_urls_management_without_url(mocker):
assert res["wiki.api"]["auth_header"] is True assert res["wiki.api"]["auth_header"] is True
def test_permission_create_with_urls_management_simple_domain(mocker): def test_permission_create_with_urls_management_simple_domain():
with message(mocker, "permission_created", permission="site.main"): with message("permission_created", permission="site.main"):
_permission_create_with_dummy_app( _permission_create_with_dummy_app(
"site.main", "site.main",
allowed=["all_users"], allowed=["all_users"],
@ -553,8 +553,8 @@ def test_permission_create_with_urls_management_simple_domain(mocker):
@pytest.mark.other_domains(number=2) @pytest.mark.other_domains(number=2)
def test_permission_create_with_urls_management_multiple_domain(mocker): def test_permission_create_with_urls_management_multiple_domain():
with message(mocker, "permission_created", permission="site.main"): with message("permission_created", permission="site.main"):
_permission_create_with_dummy_app( _permission_create_with_dummy_app(
"site.main", "site.main",
allowed=["all_users"], allowed=["all_users"],
@ -575,14 +575,14 @@ def test_permission_create_with_urls_management_multiple_domain(mocker):
assert res["site.main"]["auth_header"] is True assert res["site.main"]["auth_header"] is True
def test_permission_delete(mocker): def test_permission_delete():
with message(mocker, "permission_deleted", permission="wiki.main"): with message("permission_deleted", permission="wiki.main"):
permission_delete("wiki.main", force=True) permission_delete("wiki.main", force=True)
res = user_permission_list()["permissions"] res = user_permission_list()["permissions"]
assert "wiki.main" not in res assert "wiki.main" not in res
with message(mocker, "permission_deleted", permission="blog.api"): with message("permission_deleted", permission="blog.api"):
permission_delete("blog.api", force=False) permission_delete("blog.api", force=False)
res = user_permission_list()["permissions"] res = user_permission_list()["permissions"]
@ -625,8 +625,8 @@ def test_permission_delete_main_without_force(mocker):
# user side functions # user side functions
def test_permission_add_group(mocker): def test_permission_add_group():
with message(mocker, "permission_updated", permission="wiki.main"): with message("permission_updated", permission="wiki.main"):
user_permission_update("wiki.main", add="alice") user_permission_update("wiki.main", add="alice")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
@ -634,8 +634,8 @@ def test_permission_add_group(mocker):
assert set(res["wiki.main"]["corresponding_users"]) == {"alice", "bob"} assert set(res["wiki.main"]["corresponding_users"]) == {"alice", "bob"}
def test_permission_remove_group(mocker): def test_permission_remove_group():
with message(mocker, "permission_updated", permission="blog.main"): with message("permission_updated", permission="blog.main"):
user_permission_update("blog.main", remove="alice") user_permission_update("blog.main", remove="alice")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
@ -643,8 +643,8 @@ def test_permission_remove_group(mocker):
assert res["blog.main"]["corresponding_users"] == [] assert res["blog.main"]["corresponding_users"] == []
def test_permission_add_and_remove_group(mocker): def test_permission_add_and_remove_group():
with message(mocker, "permission_updated", permission="wiki.main"): with message("permission_updated", permission="wiki.main"):
user_permission_update("wiki.main", add="alice", remove="all_users") user_permission_update("wiki.main", add="alice", remove="all_users")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
@ -652,9 +652,9 @@ def test_permission_add_and_remove_group(mocker):
assert res["wiki.main"]["corresponding_users"] == ["alice"] assert res["wiki.main"]["corresponding_users"] == ["alice"]
def test_permission_add_group_already_allowed(mocker): def test_permission_add_group_already_allowed():
with message( with message(
mocker, "permission_already_allowed", permission="blog.main", group="alice" "permission_already_allowed", permission="blog.main", group="alice"
): ):
user_permission_update("blog.main", add="alice") user_permission_update("blog.main", add="alice")
@ -663,9 +663,9 @@ def test_permission_add_group_already_allowed(mocker):
assert res["blog.main"]["corresponding_users"] == ["alice"] assert res["blog.main"]["corresponding_users"] == ["alice"]
def test_permission_remove_group_already_not_allowed(mocker): def test_permission_remove_group_already_not_allowed():
with message( with message(
mocker, "permission_already_disallowed", permission="blog.main", group="bob" "permission_already_disallowed", permission="blog.main", group="bob"
): ):
user_permission_update("blog.main", remove="bob") user_permission_update("blog.main", remove="bob")
@ -674,8 +674,8 @@ def test_permission_remove_group_already_not_allowed(mocker):
assert res["blog.main"]["corresponding_users"] == ["alice"] assert res["blog.main"]["corresponding_users"] == ["alice"]
def test_permission_reset(mocker): def test_permission_reset():
with message(mocker, "permission_updated", permission="blog.main"): with message("permission_updated", permission="blog.main"):
user_permission_reset("blog.main") user_permission_reset("blog.main")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
@ -693,42 +693,42 @@ def test_permission_reset_idempotency():
assert set(res["blog.main"]["corresponding_users"]) == {"alice", "bob"} assert set(res["blog.main"]["corresponding_users"]) == {"alice", "bob"}
def test_permission_change_label(mocker): def test_permission_change_label():
with message(mocker, "permission_updated", permission="wiki.main"): with message("permission_updated", permission="wiki.main"):
user_permission_update("wiki.main", label="New Wiki") user_permission_update("wiki.main", label="New Wiki")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
assert res["wiki.main"]["label"] == "New Wiki" assert res["wiki.main"]["label"] == "New Wiki"
def test_permission_change_label_with_same_value(mocker): def test_permission_change_label_with_same_value():
with message(mocker, "permission_updated", permission="wiki.main"): with message("permission_updated", permission="wiki.main"):
user_permission_update("wiki.main", label="Wiki") user_permission_update("wiki.main", label="Wiki")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
assert res["wiki.main"]["label"] == "Wiki" assert res["wiki.main"]["label"] == "Wiki"
def test_permission_switch_show_tile(mocker): def test_permission_switch_show_tile():
# Note that from the actionmap the value is passed as string, not as bool # Note that from the actionmap the value is passed as string, not as bool
# Try with lowercase # Try with lowercase
with message(mocker, "permission_updated", permission="wiki.main"): with message("permission_updated", permission="wiki.main"):
user_permission_update("wiki.main", show_tile="false") user_permission_update("wiki.main", show_tile="false")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
assert res["wiki.main"]["show_tile"] is False assert res["wiki.main"]["show_tile"] is False
# Try with uppercase # Try with uppercase
with message(mocker, "permission_updated", permission="wiki.main"): with message("permission_updated", permission="wiki.main"):
user_permission_update("wiki.main", show_tile="TRUE") user_permission_update("wiki.main", show_tile="TRUE")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]
assert res["wiki.main"]["show_tile"] is True assert res["wiki.main"]["show_tile"] is True
def test_permission_switch_show_tile_with_same_value(mocker): def test_permission_switch_show_tile_with_same_value():
# Note that from the actionmap the value is passed as string, not as bool # Note that from the actionmap the value is passed as string, not as bool
with message(mocker, "permission_updated", permission="wiki.main"): with message("permission_updated", permission="wiki.main"):
user_permission_update("wiki.main", show_tile="True") user_permission_update("wiki.main", show_tile="True")
res = user_permission_list(full=True)["permissions"] res = user_permission_list(full=True)["permissions"]

View file

@ -87,7 +87,7 @@ def test_ssh_conf_unmanaged():
assert SSHD_CONFIG in _get_conf_hashes("ssh") assert SSHD_CONFIG in _get_conf_hashes("ssh")
def test_ssh_conf_unmanaged_and_manually_modified(mocker): def test_ssh_conf_unmanaged_and_manually_modified():
_force_clear_hashes([SSHD_CONFIG]) _force_clear_hashes([SSHD_CONFIG])
os.system("echo ' ' >> %s" % SSHD_CONFIG) os.system("echo ' ' >> %s" % SSHD_CONFIG)
@ -98,7 +98,7 @@ def test_ssh_conf_unmanaged_and_manually_modified(mocker):
assert SSHD_CONFIG in _get_conf_hashes("ssh") assert SSHD_CONFIG in _get_conf_hashes("ssh")
assert SSHD_CONFIG in manually_modified_files() assert SSHD_CONFIG in manually_modified_files()
with message(mocker, "regenconf_need_to_explicitly_specify_ssh"): with message("regenconf_need_to_explicitly_specify_ssh"):
regen_conf(force=True) regen_conf(force=True)
assert SSHD_CONFIG in _get_conf_hashes("ssh") assert SSHD_CONFIG in _get_conf_hashes("ssh")

View file

@ -91,8 +91,8 @@ def test_list_groups():
# #
def test_create_user(mocker): def test_create_user():
with message(mocker, "user_created"): with message("user_created"):
user_create("albert", maindomain, "test123Ynh", fullname="Albert Good") user_create("albert", maindomain, "test123Ynh", fullname="Albert Good")
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
@ -102,8 +102,8 @@ def test_create_user(mocker):
assert "albert" in group_res["all_users"]["members"] assert "albert" in group_res["all_users"]["members"]
def test_del_user(mocker): def test_del_user():
with message(mocker, "user_deleted"): with message("user_deleted"):
user_delete("alice") user_delete("alice")
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
@ -112,7 +112,7 @@ def test_del_user(mocker):
assert "alice" not in group_res["all_users"]["members"] assert "alice" not in group_res["all_users"]["members"]
def test_import_user(mocker): def test_import_user():
import csv import csv
from io import StringIO from io import StringIO
@ -157,7 +157,7 @@ def test_import_user(mocker):
} }
) )
csv_io.seek(0) csv_io.seek(0)
with message(mocker, "user_import_success"): with message("user_import_success"):
user_import(csv_io, update=True, delete=True) user_import(csv_io, update=True, delete=True)
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
@ -171,7 +171,7 @@ def test_import_user(mocker):
assert "alice" not in group_res["dev"]["members"] assert "alice" not in group_res["dev"]["members"]
def test_export_user(mocker): def test_export_user():
result = user_export() result = user_export()
should_be = ( should_be = (
"username;firstname;lastname;password;mail;mail-alias;mail-forward;mailbox-quota;groups\r\n" "username;firstname;lastname;password;mail;mail-alias;mail-forward;mailbox-quota;groups\r\n"
@ -182,8 +182,8 @@ def test_export_user(mocker):
assert result == should_be assert result == should_be
def test_create_group(mocker): def test_create_group():
with message(mocker, "group_created", group="adminsys"): with message("group_created", group="adminsys"):
user_group_create("adminsys") user_group_create("adminsys")
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
@ -192,8 +192,8 @@ def test_create_group(mocker):
assert group_res["adminsys"]["members"] == [] assert group_res["adminsys"]["members"] == []
def test_del_group(mocker): def test_del_group():
with message(mocker, "group_deleted", group="dev"): with message("group_deleted", group="dev"):
user_group_delete("dev") user_group_delete("dev")
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
@ -262,46 +262,46 @@ def test_del_group_that_does_not_exist(mocker):
# #
def test_update_user(mocker): def test_update_user():
with message(mocker, "user_updated"): with message("user_updated"):
user_update("alice", firstname="NewName", lastname="NewLast") user_update("alice", firstname="NewName", lastname="NewLast")
info = user_info("alice") info = user_info("alice")
assert info["fullname"] == "NewName NewLast" assert info["fullname"] == "NewName NewLast"
with message(mocker, "user_updated"): with message("user_updated"):
user_update("alice", fullname="New2Name New2Last") user_update("alice", fullname="New2Name New2Last")
info = user_info("alice") info = user_info("alice")
assert info["fullname"] == "New2Name New2Last" assert info["fullname"] == "New2Name New2Last"
def test_update_group_add_user(mocker): def test_update_group_add_user():
with message(mocker, "group_updated", group="dev"): with message("group_updated", group="dev"):
user_group_update("dev", add=["bob"]) user_group_update("dev", add=["bob"])
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
assert set(group_res["dev"]["members"]) == {"alice", "bob"} assert set(group_res["dev"]["members"]) == {"alice", "bob"}
def test_update_group_add_user_already_in(mocker): def test_update_group_add_user_already_in():
with message(mocker, "group_user_already_in_group", user="bob", group="apps"): with message("group_user_already_in_group", user="bob", group="apps"):
user_group_update("apps", add=["bob"]) user_group_update("apps", add=["bob"])
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
assert group_res["apps"]["members"] == ["bob"] assert group_res["apps"]["members"] == ["bob"]
def test_update_group_remove_user(mocker): def test_update_group_remove_user():
with message(mocker, "group_updated", group="apps"): with message("group_updated", group="apps"):
user_group_update("apps", remove=["bob"]) user_group_update("apps", remove=["bob"])
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]
assert group_res["apps"]["members"] == [] assert group_res["apps"]["members"] == []
def test_update_group_remove_user_not_already_in(mocker): def test_update_group_remove_user_not_already_in():
with message(mocker, "group_user_not_in_group", user="jack", group="apps"): with message("group_user_not_in_group", user="jack", group="apps"):
user_group_update("apps", remove=["jack"]) user_group_update("apps", remove=["jack"])
group_res = user_group_list()["groups"] group_res = user_group_list()["groups"]