Пример #1
0
def test_path_allow_range_incl(test):
    domain = 'website.com'
    r = OriginRule(rule=f'http://test[1y].{domain}', kind=RuleKind.PATH)
    req_allow = f'http://{test}.{domain}'
    assert r.allow_origin(req_allow) == req_allow
Пример #2
0
def test_path_disallow_range_excl(test):
    domain = 'website.com'
    r = OriginRule(rule=f'http://test[!1y].{domain}', kind=RuleKind.PATH)
    req_allow = f'{test}.{domain}'
    assert r.allow_origin(req_allow) is None
Пример #3
0
def test_path_disallow_singlechar(test):
    domain = 'website.com'
    r = OriginRule(rule=f'http://test?.{domain}', kind=RuleKind.PATH)
    req_allow = f'http://{test}.{domain}'
    assert r.allow_origin(req_allow) is None
Пример #4
0
def test_default_create():
    r = OriginRule(rule='*')
    assert r.kind == RuleKind.STR
Пример #5
0
def test_invalid_path_rule_open_ended(rule):
    with pytest.raises(InsecureRule, match='open ended') as e:
        OriginRule(rule=rule, kind=RuleKind.PATH)
    assert e.value.rule == rule
Пример #6
0
def test_path_disallow_star(test):
    r = OriginRule(rule='http://*.website.com', kind=RuleKind.PATH)
    assert r.allow_origin(test) is None
Пример #7
0
def test_invalid_regex_rule_too_broad(rule):
    with pytest.raises(InsecureRule, match='too broad') as e:
        OriginRule(rule=rule, kind=RuleKind.REGEX)
    assert e.value.rule == rule
Пример #8
0
def test_invalid_regex_rule_partial_regex(rule):
    with pytest.raises(InsecureRule, match='partial match regex') as e:
        OriginRule(rule=rule, kind=RuleKind.REGEX)
    assert e.value.rule == rule
Пример #9
0
def test_str(allow):
    r = OriginRule(rule=allow)
    assert r.allow_origin('dummy.net') == r.rule
Пример #10
0
def test_null_regex_not_allowed():
    r = OriginRule(rule='^null$', kind=RuleKind.REGEX)
    req_allow = 'null'
    assert r.allow_origin(req_allow) is None
Пример #11
0
def test_null_path_not_allowed():
    r = OriginRule(rule='null', kind=RuleKind.PATH)
    req_allow = 'null'
    assert r.allow_origin(req_allow) is None