示例#1
0
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')
示例#2
0
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")
示例#3
0
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"
示例#4
0
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')
示例#5
0
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")