Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/requests_toolbelt/auth/_digest_auth_compat.py: 84%
19 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:53 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:53 +0000
1"""Provide a compatibility layer for requests.auth.HTTPDigestAuth."""
2import requests
5class _ThreadingDescriptor(object):
6 def __init__(self, prop, default):
7 self.prop = prop
8 self.default = default
10 def __get__(self, obj, objtype=None):
11 return getattr(obj._thread_local, self.prop, self.default)
13 def __set__(self, obj, value):
14 setattr(obj._thread_local, self.prop, value)
17class _HTTPDigestAuth(requests.auth.HTTPDigestAuth):
18 init = _ThreadingDescriptor('init', True)
19 last_nonce = _ThreadingDescriptor('last_nonce', '')
20 nonce_count = _ThreadingDescriptor('nonce_count', 0)
21 chal = _ThreadingDescriptor('chal', {})
22 pos = _ThreadingDescriptor('pos', None)
23 num_401_calls = _ThreadingDescriptor('num_401_calls', 1)
26if requests.__build__ < 0x020800:
27 HTTPDigestAuth = requests.auth.HTTPDigestAuth
28else:
29 HTTPDigestAuth = _HTTPDigestAuth