aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_authentication.py
blob: cc797d68b911e84b0b83627fd71ac46bff09d164 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import binascii
from libmproxy import authentication
from netlib import odict
import tutils


class TestNullProxyAuth:
    def test_simple(self):
        na = authentication.NullProxyAuth(authentication.PermissivePasswordManager())
        assert not na.auth_challenge_headers()
        assert na.authenticate("foo")


class TestBasicProxyAuth:
    def test_simple(self):
        ba = authentication.BasicProxyAuth(authentication.PermissivePasswordManager())
        h = odict.ODictCaseless()
        assert ba.auth_challenge_headers()
        assert not ba.authenticate(h)

    def test_parse_auth_value(self):
        ba = authentication.BasicProxyAuth(authentication.PermissivePasswordManager())
        vals = ("basic", "foo", "bar")
        assert ba.parse_auth_value(ba.unparse_auth_value(*vals)) == vals
        tutils.raises(ValueError, ba.parse_auth_value, "")
        tutils.raises(ValueError, ba.parse_auth_value, "foo bar")

        v = "basic " + binascii.b2a_base64("foo")
        tutils.raises(ValueError, ba.parse_auth_value, v)