def test_normalize_permission_path_conflicting_path(): app_install(os.path.join(get_test_apps_dir(), "register_url_app_ynh"), args="domain=%s&path=%s" % (maindomain, "/url/registerapp"), force=True) with pytest.raises(YunohostError): _validate_and_sanitize_permission_url("/registerapp", maindomain + '/url', 'test_permission') with pytest.raises(YunohostError): _validate_and_sanitize_permission_url(maindomain + "/url/registerapp", maindomain + '/path', 'test_permission')
def test_normalize_permission_path_with_unknown_domain(): with pytest.raises(YunohostError): _validate_and_sanitize_permission_url("shouldntexist.tld/hey", maindomain + "/path", "test_permission") with pytest.raises(YunohostError): _validate_and_sanitize_permission_url("re:shouldntexist.tld/hey.*", maindomain + "/path", "test_permission")
def test_normalize_permission_path(): # Relative path assert _validate_and_sanitize_permission_url("/wiki/", maindomain + '/path', 'test_permission') == "/wiki" assert _validate_and_sanitize_permission_url("/", maindomain + '/path', 'test_permission') == "/" assert _validate_and_sanitize_permission_url("//salut/", maindomain + '/path', 'test_permission') == "/salut" # Full path assert _validate_and_sanitize_permission_url(maindomain + "/hey/", maindomain + '/path', 'test_permission') == maindomain + "/hey" assert _validate_and_sanitize_permission_url(maindomain + "//", maindomain + '/path', 'test_permission') == maindomain + "/" assert _validate_and_sanitize_permission_url(maindomain + "/", maindomain + '/path', 'test_permission') == maindomain + "/" # Relative Regex assert _validate_and_sanitize_permission_url("re:/yolo.*/", maindomain + '/path', 'test_permission') == "re:/yolo.*/" assert _validate_and_sanitize_permission_url("re:/y.*o(o+)[a-z]*/bo\1y", maindomain + '/path', 'test_permission') == "re:/y.*o(o+)[a-z]*/bo\1y" # Full Regex assert _validate_and_sanitize_permission_url("re:" + maindomain + "/yolo.*/", maindomain + '/path', 'test_permission') == "re:" + maindomain + "/yolo.*/" assert _validate_and_sanitize_permission_url("re:" + maindomain + "/y.*o(o+)[a-z]*/bo\1y", maindomain + '/path', 'test_permission') == "re:" + maindomain + "/y.*o(o+)[a-z]*/bo\1y"
def test_normalize_permission_path_with_bad_regex(): # Relative Regex with pytest.raises(YunohostError): _validate_and_sanitize_permission_url("re:/yolo.*[1-7]^?/", maindomain + '/path', 'test_permission') with pytest.raises(YunohostError): _validate_and_sanitize_permission_url("re:/yolo.*[1-7](]/", maindomain + '/path', 'test_permission') # Full Regex with pytest.raises(YunohostError): _validate_and_sanitize_permission_url("re:" + maindomain + "/yolo?+/", maindomain + '/path', 'test_permission') with pytest.raises(YunohostError): _validate_and_sanitize_permission_url("re:" + maindomain + "/yolo[1-9]**/", maindomain + '/path', 'test_permission')
def test_normalize_permission_path(): # Relative path assert (_validate_and_sanitize_permission_url( "/wiki/", maindomain + "/path", "test_permission") == "/wiki") assert (_validate_and_sanitize_permission_url("/", maindomain + "/path", "test_permission") == "/") assert (_validate_and_sanitize_permission_url( "//salut/", maindomain + "/path", "test_permission") == "/salut") # Full path assert (_validate_and_sanitize_permission_url( maindomain + "/hey/", maindomain + "/path", "test_permission") == maindomain + "/hey") assert (_validate_and_sanitize_permission_url( maindomain + "//", maindomain + "/path", "test_permission") == maindomain + "/") assert (_validate_and_sanitize_permission_url( maindomain + "/", maindomain + "/path", "test_permission") == maindomain + "/") # Relative Regex assert (_validate_and_sanitize_permission_url( "re:/yolo.*/", maindomain + "/path", "test_permission") == "re:/yolo.*/") assert (_validate_and_sanitize_permission_url( "re:/y.*o(o+)[a-z]*/bo\1y", maindomain + "/path", "test_permission") == "re:/y.*o(o+)[a-z]*/bo\1y") # Full Regex assert (_validate_and_sanitize_permission_url( "re:" + maindomain + "/yolo.*/", maindomain + "/path", "test_permission") == "re:" + maindomain + "/yolo.*/") assert (_validate_and_sanitize_permission_url( "re:" + maindomain + "/y.*o(o+)[a-z]*/bo\1y", maindomain + "/path", "test_permission", ) == "re:" + maindomain + "/y.*o(o+)[a-z]*/bo\1y")