autopep8 --in-place -a -a -a -a -a -r data/ doc/ tests/ src/yunohost/tests/ src/yunohost/utils/ src/yunohost/data_migrations/

This commit is contained in:
Alexandre Aubin 2020-09-03 17:07:39 +02:00
parent fa19c9480c
commit ecbd63636b
25 changed files with 189 additions and 164 deletions

View file

@ -15,6 +15,7 @@ THIS_SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
ACTIONSMAP_FILE = THIS_SCRIPT_DIR + '/yunohost.yml' ACTIONSMAP_FILE = THIS_SCRIPT_DIR + '/yunohost.yml'
BASH_COMPLETION_FILE = THIS_SCRIPT_DIR + '/../bash-completion.d/yunohost' BASH_COMPLETION_FILE = THIS_SCRIPT_DIR + '/../bash-completion.d/yunohost'
def get_dict_actions(OPTION_SUBTREE, category): def get_dict_actions(OPTION_SUBTREE, category):
ACTIONS = [action for action in OPTION_SUBTREE[category]["actions"].keys() ACTIONS = [action for action in OPTION_SUBTREE[category]["actions"].keys()
if not action.startswith('_')] if not action.startswith('_')]
@ -24,6 +25,7 @@ def get_dict_actions(OPTION_SUBTREE, category):
return DICT return DICT
with open(ACTIONSMAP_FILE, 'r') as stream: with open(ACTIONSMAP_FILE, 'r') as stream:
# Getting the dictionary containning what actions are possible per category # Getting the dictionary containning what actions are possible per category

View file

@ -75,7 +75,6 @@ class BaseSystemDiagnoser(Diagnoser):
summary="diagnosis_basesystem_ynh_main_version" if consistent_versions else "diagnosis_basesystem_ynh_inconsistent_versions", summary="diagnosis_basesystem_ynh_main_version" if consistent_versions else "diagnosis_basesystem_ynh_inconsistent_versions",
details=ynh_version_details) details=ynh_version_details)
if self.is_vulnerable_to_meltdown(): if self.is_vulnerable_to_meltdown():
yield dict(meta={"test": "meltdown"}, yield dict(meta={"test": "meltdown"},
status="ERROR", status="ERROR",

View file

@ -5,6 +5,7 @@ import os
from yunohost.diagnosis import Diagnoser from yunohost.diagnosis import Diagnoser
from yunohost.service import _get_services from yunohost.service import _get_services
class PortsDiagnoser(Diagnoser): class PortsDiagnoser(Diagnoser):
id_ = os.path.splitext(os.path.basename(__file__))[0].split("-")[1] id_ = os.path.splitext(os.path.basename(__file__))[0].split("-")[1]

View file

@ -47,7 +47,6 @@ class MailDiagnoser(Diagnoser):
status="SUCCESS", status="SUCCESS",
summary="diagnosis_mail_" + name + "_ok") summary="diagnosis_mail_" + name + "_ok")
def check_outgoing_port_25(self): def check_outgoing_port_25(self):
""" """
Check outgoing port 25 is open and not blocked by router Check outgoing port 25 is open and not blocked by router
@ -64,7 +63,6 @@ class MailDiagnoser(Diagnoser):
details=["diagnosis_mail_outgoing_port_25_blocked_details", details=["diagnosis_mail_outgoing_port_25_blocked_details",
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn"]) "diagnosis_mail_outgoing_port_25_blocked_relay_vpn"])
def check_ehlo(self): def check_ehlo(self):
""" """
Check the server is reachable from outside and it's the good one Check the server is reachable from outside and it's the good one
@ -99,7 +97,6 @@ class MailDiagnoser(Diagnoser):
summary="diagnosis_mail_ehlo_wrong", summary="diagnosis_mail_ehlo_wrong",
details=["diagnosis_mail_ehlo_wrong_details"]) details=["diagnosis_mail_ehlo_wrong_details"])
def check_fcrdns(self): def check_fcrdns(self):
""" """
Check the reverse DNS is well defined by doing a Forward-confirmed Check the reverse DNS is well defined by doing a Forward-confirmed
@ -148,7 +145,6 @@ class MailDiagnoser(Diagnoser):
summary="diagnosis_mail_fcrdns_different_from_ehlo_domain", summary="diagnosis_mail_fcrdns_different_from_ehlo_domain",
details=details) details=details)
def check_blacklist(self): def check_blacklist(self):
""" """
Check with dig onto blacklist DNS server Check with dig onto blacklist DNS server
@ -225,7 +221,6 @@ class MailDiagnoser(Diagnoser):
status="SUCCESS", status="SUCCESS",
summary="diagnosis_mail_queue_ok") summary="diagnosis_mail_queue_ok")
def get_ips_checked(self): def get_ips_checked(self):
outgoing_ipversions = [] outgoing_ipversions = []
outgoing_ips = [] outgoing_ips = []
@ -245,5 +240,6 @@ class MailDiagnoser(Diagnoser):
outgoing_ips.append(global_ipv6) outgoing_ips.append(global_ipv6)
return (outgoing_ipversions, outgoing_ips) return (outgoing_ipversions, outgoing_ips)
def main(args, env, loggers): def main(args, env, loggers):
return MailDiagnoser(args, env, loggers).diagnose() return MailDiagnoser(args, env, loggers).diagnose()

View file

@ -5,6 +5,7 @@ import os
from yunohost.diagnosis import Diagnoser from yunohost.diagnosis import Diagnoser
from yunohost.service import service_status from yunohost.service import service_status
class ServicesDiagnoser(Diagnoser): class ServicesDiagnoser(Diagnoser):
id_ = os.path.splitext(os.path.basename(__file__))[0].split("-")[1] id_ = os.path.splitext(os.path.basename(__file__))[0].split("-")[1]
@ -36,5 +37,6 @@ class ServicesDiagnoser(Diagnoser):
yield item yield item
def main(args, env, loggers): def main(args, env, loggers):
return ServicesDiagnoser(args, env, loggers).diagnose() return ServicesDiagnoser(args, env, loggers).diagnose()

View file

@ -7,6 +7,7 @@ import re
from yunohost.diagnosis import Diagnoser from yunohost.diagnosis import Diagnoser
class SystemResourcesDiagnoser(Diagnoser): class SystemResourcesDiagnoser(Diagnoser):
id_ = os.path.splitext(os.path.basename(__file__))[0].split("-")[1] id_ = os.path.splitext(os.path.basename(__file__))[0].split("-")[1]
@ -96,7 +97,6 @@ class SystemResourcesDiagnoser(Diagnoser):
item["status"] = "SUCCESS" item["status"] = "SUCCESS"
item["summary"] = "diagnosis_diskusage_ok" item["summary"] = "diagnosis_diskusage_ok"
yield item yield item
# #
@ -112,7 +112,6 @@ class SystemResourcesDiagnoser(Diagnoser):
summary="diagnosis_processes_killed_by_oom_reaper", summary="diagnosis_processes_killed_by_oom_reaper",
data={"kills_summary": kills_summary}) data={"kills_summary": kills_summary})
def recent_kills_by_oom_reaper(self): def recent_kills_by_oom_reaper(self):
if not os.path.exists("/var/log/kern.log"): if not os.path.exists("/var/log/kern.log"):
return [] return []
@ -160,5 +159,6 @@ def round_(n):
n = int(round(n)) n = int(round(n))
return n return n
def main(args, env, loggers): def main(args, env, loggers):
return SystemResourcesDiagnoser(args, env, loggers).diagnose() return SystemResourcesDiagnoser(args, env, loggers).diagnose()

View file

@ -4,6 +4,7 @@ import os
import glob import glob
import datetime import datetime
def render(helpers): def render(helpers):
data = {"helpers": helpers, data = {"helpers": helpers,
@ -29,6 +30,7 @@ def render(helpers):
############################################################################## ##############################################################################
class Parser(): class Parser():
def __init__(self, filename): def __init__(self, filename):
@ -180,13 +182,14 @@ class Parser():
b["usage"] = b["usage"].strip() b["usage"] = b["usage"].strip()
def is_global_comment(line): def is_global_comment(line):
return line.startswith('#') return line.startswith('#')
def malformed_error(line_number): def malformed_error(line_number):
return "Malformed file line {} ?".format(line_number) return "Malformed file line {} ?".format(line_number)
def main(): def main():
helper_files = sorted(glob.glob("../data/helpers.d/*")) helper_files = sorted(glob.glob("../data/helpers.d/*"))
@ -204,5 +207,5 @@ def main():
render(helpers) render(helpers)
main()
main()

View file

@ -63,4 +63,3 @@ class MyMigration(Migration):
out = out.strip().split("\n") out = out.strip().split("\n")
return (returncode, out, err) return (returncode, out, err)

View file

@ -106,4 +106,3 @@ class MyMigration(Migration):
out = out.strip().split("\n") out = out.strip().split("\n")
return (returncode, out, err) return (returncode, out, err)

View file

@ -18,10 +18,12 @@ def clone_test_app(request):
else: else:
os.system("cd %s/apps && git pull > /dev/null 2>&1" % cwd) os.system("cd %s/apps && git pull > /dev/null 2>&1" % cwd)
def get_test_apps_dir(): def get_test_apps_dir():
cwd = os.path.split(os.path.realpath(__file__))[0] cwd = os.path.split(os.path.realpath(__file__))[0]
return os.path.join(cwd, "apps") return os.path.join(cwd, "apps")
@contextmanager @contextmanager
def message(mocker, key, **kwargs): def message(mocker, key, **kwargs):
mocker.spy(m18n, "n") mocker.spy(m18n, "n")
@ -38,7 +40,6 @@ def raiseYunohostError(mocker, key, **kwargs):
assert e_info._excinfo[1].kwargs == kwargs assert e_info._excinfo[1].kwargs == kwargs
def pytest_addoption(parser): def pytest_addoption(parser):
parser.addoption("--yunodebug", action="store_true", default=False) parser.addoption("--yunodebug", action="store_true", default=False)
@ -56,12 +57,15 @@ def new_translate(self, key, *args, **kwargs):
raise KeyError("Unable to retrieve key %s for default locale !" % key) raise KeyError("Unable to retrieve key %s for default locale !" % key)
return old_translate(self, key, *args, **kwargs) return old_translate(self, key, *args, **kwargs)
moulinette.core.Translator.translate = new_translate moulinette.core.Translator.translate = new_translate
def new_m18nn(self, key, *args, **kwargs): def new_m18nn(self, key, *args, **kwargs):
return self._namespaces[self._current_namespace].translate(key, *args, **kwargs) return self._namespaces[self._current_namespace].translate(key, *args, **kwargs)
moulinette.core.Moulinette18n.n = new_m18nn moulinette.core.Moulinette18n.n = new_m18nn
# #

View file

@ -504,36 +504,36 @@ def test_parse_args_in_yunohost_format_boolean_all_yes():
questions = [{"name": "some_boolean", "type": "boolean", }] questions = [{"name": "some_boolean", "type": "boolean", }]
expected_result = OrderedDict({"some_boolean": (1, "boolean")}) expected_result = OrderedDict({"some_boolean": (1, "boolean")})
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "y"}, questions) _parse_args_in_yunohost_format({"some_boolean": "y"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "Y"}, questions) _parse_args_in_yunohost_format({"some_boolean": "Y"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "yes"}, questions) _parse_args_in_yunohost_format({"some_boolean": "yes"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "Yes"}, questions) _parse_args_in_yunohost_format({"some_boolean": "Yes"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "YES"}, questions) _parse_args_in_yunohost_format({"some_boolean": "YES"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "1"}, questions) _parse_args_in_yunohost_format({"some_boolean": "1"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": 1}, questions) _parse_args_in_yunohost_format({"some_boolean": 1}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": True}, questions) _parse_args_in_yunohost_format({"some_boolean": True}, questions) ==
== expected_result expected_result
) )
@ -541,36 +541,36 @@ def test_parse_args_in_yunohost_format_boolean_all_no():
questions = [{"name": "some_boolean", "type": "boolean", }] questions = [{"name": "some_boolean", "type": "boolean", }]
expected_result = OrderedDict({"some_boolean": (0, "boolean")}) expected_result = OrderedDict({"some_boolean": (0, "boolean")})
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "n"}, questions) _parse_args_in_yunohost_format({"some_boolean": "n"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "N"}, questions) _parse_args_in_yunohost_format({"some_boolean": "N"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "no"}, questions) _parse_args_in_yunohost_format({"some_boolean": "no"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "No"}, questions) _parse_args_in_yunohost_format({"some_boolean": "No"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "No"}, questions) _parse_args_in_yunohost_format({"some_boolean": "No"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": "0"}, questions) _parse_args_in_yunohost_format({"some_boolean": "0"}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": 0}, questions) _parse_args_in_yunohost_format({"some_boolean": 0}, questions) ==
== expected_result expected_result
) )
assert ( assert (
_parse_args_in_yunohost_format({"some_boolean": False}, questions) _parse_args_in_yunohost_format({"some_boolean": False}, questions) ==
== expected_result expected_result
) )

View file

@ -37,10 +37,12 @@ DUMMY_APP_CATALOG = """{
} }
""" """
class AnyStringWith(str): class AnyStringWith(str):
def __eq__(self, other): def __eq__(self, other):
return self in other return self in other
def setup_function(function): def setup_function(function):
# Clear apps catalog cache # Clear apps catalog cache
@ -165,6 +167,7 @@ def test_apps_catalog_update_404(mocker):
_update_apps_catalog() _update_apps_catalog()
m18n.n.assert_any_call("apps_catalog_failed_to_download") m18n.n.assert_any_call("apps_catalog_failed_to_download")
def test_apps_catalog_update_timeout(mocker): def test_apps_catalog_update_timeout(mocker):
# Initialize ... # Initialize ...
@ -237,7 +240,6 @@ def test_apps_catalog_load_with_empty_cache(mocker):
m18n.n.assert_any_call("apps_catalog_obsolete_cache") m18n.n.assert_any_call("apps_catalog_obsolete_cache")
m18n.n.assert_any_call("apps_catalog_update_success") m18n.n.assert_any_call("apps_catalog_update_success")
# Cache shouldn't be empty anymore empty # Cache shouldn't be empty anymore empty
assert glob.glob(APPS_CATALOG_CACHE + "/*") assert glob.glob(APPS_CATALOG_CACHE + "/*")

View file

@ -16,6 +16,7 @@ from yunohost.hook import CUSTOM_HOOK_FOLDER
# Get main domain # Get main domain
maindomain = "" maindomain = ""
def setup_function(function): def setup_function(function):
global maindomain global maindomain
@ -90,6 +91,7 @@ def check_LDAP_db_integrity_call():
yield yield
check_LDAP_db_integrity() check_LDAP_db_integrity()
@pytest.fixture(autouse=True) @pytest.fixture(autouse=True)
def check_permission_for_apps_call(): def check_permission_for_apps_call():
check_permission_for_apps() check_permission_for_apps()
@ -100,6 +102,7 @@ def check_permission_for_apps_call():
# Helpers # # Helpers #
# #
def app_is_installed(app): def app_is_installed(app):
if app == "permissions_app": if app == "permissions_app":
@ -184,22 +187,22 @@ def add_archive_wordpress_from_2p4():
os.system("mkdir -p /home/yunohost.backup/archives") os.system("mkdir -p /home/yunohost.backup/archives")
os.system("cp " + os.path.join(get_test_apps_dir(), "backup_wordpress_from_2p4/backup.info.json") + \ os.system("cp " + os.path.join(get_test_apps_dir(), "backup_wordpress_from_2p4/backup.info.json")
" /home/yunohost.backup/archives/backup_wordpress_from_2p4.info.json") + " /home/yunohost.backup/archives/backup_wordpress_from_2p4.info.json")
os.system("cp " + os.path.join(get_test_apps_dir(), "backup_wordpress_from_2p4/backup.tar.gz") + \ os.system("cp " + os.path.join(get_test_apps_dir(), "backup_wordpress_from_2p4/backup.tar.gz")
" /home/yunohost.backup/archives/backup_wordpress_from_2p4.tar.gz") + " /home/yunohost.backup/archives/backup_wordpress_from_2p4.tar.gz")
def add_archive_system_from_2p4(): def add_archive_system_from_2p4():
os.system("mkdir -p /home/yunohost.backup/archives") os.system("mkdir -p /home/yunohost.backup/archives")
os.system("cp " + os.path.join(get_test_apps_dir(), "backup_system_from_2p4/backup.info.json") + \ os.system("cp " + os.path.join(get_test_apps_dir(), "backup_system_from_2p4/backup.info.json")
" /home/yunohost.backup/archives/backup_system_from_2p4.info.json") + " /home/yunohost.backup/archives/backup_system_from_2p4.info.json")
os.system("cp " + os.path.join(get_test_apps_dir(), "backup_system_from_2p4/backup.tar.gz") + \ os.system("cp " + os.path.join(get_test_apps_dir(), "backup_system_from_2p4/backup.tar.gz")
" /home/yunohost.backup/archives/backup_system_from_2p4.tar.gz") + " /home/yunohost.backup/archives/backup_system_from_2p4.tar.gz")
# #
# System backup # # System backup #
@ -499,6 +502,7 @@ def test_backup_and_restore_with_ynh_restore(mocker):
_test_backup_and_restore_app(mocker, "backup_recommended_app") _test_backup_and_restore_app(mocker, "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(mocker):
@ -577,6 +581,7 @@ def test_restore_archive_with_no_json(mocker):
with raiseYunohostError(mocker, 'backup_archive_cant_retrieve_info_json'): with raiseYunohostError(mocker, 'backup_archive_cant_retrieve_info_json'):
backup_restore(name="badbackup", force=True) backup_restore(name="badbackup", force=True)
@pytest.mark.with_wordpress_archive_from_2p4 @pytest.mark.with_wordpress_archive_from_2p4
def test_restore_archive_with_bad_archive(mocker): def test_restore_archive_with_bad_archive(mocker):

View file

@ -13,6 +13,7 @@ from yunohost.utils.error import YunohostError
# Get main domain # Get main domain
maindomain = "" maindomain = ""
def setup_function(function): def setup_function(function):
global maindomain global maindomain
maindomain = _get_maindomain() maindomain = _get_maindomain()

View file

@ -1,3 +1,4 @@
import socket
import requests import requests
import pytest import pytest
import os import os
@ -17,10 +18,10 @@ dummy_password = "test123Ynh"
# Dirty patch of DNS resolution. Force the DNS to 127.0.0.1 address even if dnsmasq have the public address. # Dirty patch of DNS resolution. Force the DNS to 127.0.0.1 address even if dnsmasq have the public address.
# Mainly used for 'can_access_webpage' function # Mainly used for 'can_access_webpage' function
import socket
prv_getaddrinfo = socket.getaddrinfo prv_getaddrinfo = socket.getaddrinfo
def clean_user_groups_permission(): def clean_user_groups_permission():
for u in user_list()['users']: for u in user_list()['users']:
user_delete(u) user_delete(u)
@ -44,6 +45,7 @@ def setup_function(function):
# Dirty patch of DNS resolution. Force the DNS to 127.0.0.1 address even if dnsmasq have the public address. # Dirty patch of DNS resolution. Force the DNS to 127.0.0.1 address even if dnsmasq have the public address.
# Mainly used for 'can_access_webpage' function # Mainly used for 'can_access_webpage' function
dns_cache = {(maindomain, 443, 0, 1): [(2, 1, 6, '', ('127.0.0.1', 443))]} dns_cache = {(maindomain, 443, 0, 1): [(2, 1, 6, '', ('127.0.0.1', 443))]}
def new_getaddrinfo(*args): def new_getaddrinfo(*args):
try: try:
return dns_cache[args] return dns_cache[args]
@ -397,6 +399,7 @@ def test_permission_redefine_url():
res = user_permission_list(full=True)['permissions'] res = user_permission_list(full=True)['permissions']
assert res["blog.main"]["url"] == "/pwet" assert res["blog.main"]["url"] == "/pwet"
def test_permission_remove_url(): def test_permission_remove_url():
permission_url("blog.main", url=None) permission_url("blog.main", url=None)

View file

@ -9,6 +9,7 @@ TEST_DOMAIN_NGINX_CONFIG = "/etc/nginx/conf.d/%s.conf" % TEST_DOMAIN
TEST_DOMAIN_DNSMASQ_CONFIG = "/etc/dnsmasq.d/%s" % TEST_DOMAIN TEST_DOMAIN_DNSMASQ_CONFIG = "/etc/dnsmasq.d/%s" % TEST_DOMAIN
SSHD_CONFIG = "/etc/ssh/sshd_config" SSHD_CONFIG = "/etc/ssh/sshd_config"
def setup_function(function): def setup_function(function):
_force_clear_hashes([TEST_DOMAIN_NGINX_CONFIG]) _force_clear_hashes([TEST_DOMAIN_NGINX_CONFIG])

View file

@ -64,11 +64,13 @@ def test_service_add():
service_add("dummyservice", description="A dummy service to run tests") service_add("dummyservice", description="A dummy service to run tests")
assert "dummyservice" in service_status().keys() assert "dummyservice" in service_status().keys()
def test_service_add_real_service(): def test_service_add_real_service():
service_add("networking") service_add("networking")
assert "networking" in service_status().keys() assert "networking" in service_status().keys()
def test_service_remove(): def test_service_remove():
service_add("dummyservice", description="A dummy service to run tests") service_add("dummyservice", description="A dummy service to run tests")

View file

@ -13,6 +13,7 @@ DEFAULTS["example.int"] = {"type": "int", "default": 42}
DEFAULTS["example.string"] = {"type": "string", "default": "yolo swag"} DEFAULTS["example.string"] = {"type": "string", "default": "yolo swag"}
DEFAULTS["example.enum"] = {"type": "enum", "default": "a", "choices": ["a", "b", "c"]} DEFAULTS["example.enum"] = {"type": "enum", "default": "a", "choices": ["a", "b", "c"]}
def setup_function(function): def setup_function(function):
os.system("mv /etc/yunohost/settings.json /etc/yunohost/settings.json.saved") os.system("mv /etc/yunohost/settings.json /etc/yunohost/settings.json.saved")
@ -69,6 +70,7 @@ def test_settings_set():
settings_set("example.bool", "on") settings_set("example.bool", "on")
assert settings_get("example.bool") is True assert settings_get("example.bool") is True
def test_settings_set_int(): def test_settings_set_int():
settings_set("example.int", 21) settings_set("example.int", 21)
assert settings_get("example.int") == 21 assert settings_get("example.int") == 21

View file

@ -29,6 +29,7 @@ from yunohost.utils.error import YunohostError
# to avoid re-authenticating in case we call _get_ldap_authenticator multiple times # to avoid re-authenticating in case we call _get_ldap_authenticator multiple times
_ldap_interface = None _ldap_interface = None
def _get_ldap_interface(): def _get_ldap_interface():
global _ldap_interface global _ldap_interface
@ -82,4 +83,5 @@ def _destroy_ldap_interface():
if _ldap_interface is not None: if _ldap_interface is not None:
del _ldap_interface del _ldap_interface
atexit.register(_destroy_ldap_interface) atexit.register(_destroy_ldap_interface)

View file

@ -58,6 +58,7 @@ def get_public_ip_from_remote_server(protocol=4):
# If we are indeed connected in ipv4 or ipv6, we should find a default route # If we are indeed connected in ipv4 or ipv6, we should find a default route
routes = check_output("ip -%s route show table all" % protocol).split("\n") routes = check_output("ip -%s route show table all" % protocol).split("\n")
def is_default_route(r): def is_default_route(r):
# Typically the default route starts with "default" # Typically the default route starts with "default"
# But of course IPv6 is more complex ... e.g. on internet cube there's # But of course IPv6 is more complex ... e.g. on internet cube there's

View file

@ -10,6 +10,7 @@ from yunohost.utils.error import YunohostError
logger = logging.getLogger('yunohost.utils.yunopaste') logger = logging.getLogger('yunohost.utils.yunopaste')
def yunopaste(data): def yunopaste(data):
paste_server = "https://paste.yunohost.org" paste_server = "https://paste.yunohost.org"
@ -44,7 +45,6 @@ def anonymize(data):
data = data.replace(domain.replace(".", "%2e"), redact.replace(".", "%2e")) data = data.replace(domain.replace(".", "%2e"), redact.replace(".", "%2e"))
return data return data
# First, let's replace every occurence of the main domain by "domain.tld" # First, let's replace every occurence of the main domain by "domain.tld"
# This should cover a good fraction of the info leaked # This should cover a good fraction of the info leaked
main_domain = _get_maindomain() main_domain = _get_maindomain()

View file

@ -1,4 +1,5 @@
import yaml import yaml
def test_yaml_syntax(): def test_yaml_syntax():
yaml.load(open("data/actionsmap/yunohost.yml")) yaml.load(open("data/actionsmap/yunohost.yml"))