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

1"""Provide a compatibility layer for requests.auth.HTTPDigestAuth.""" 

2import requests 

3 

4 

5class _ThreadingDescriptor(object): 

6 def __init__(self, prop, default): 

7 self.prop = prop 

8 self.default = default 

9 

10 def __get__(self, obj, objtype=None): 

11 return getattr(obj._thread_local, self.prop, self.default) 

12 

13 def __set__(self, obj, value): 

14 setattr(obj._thread_local, self.prop, value) 

15 

16 

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) 

24 

25 

26if requests.__build__ < 0x020800: 

27 HTTPDigestAuth = requests.auth.HTTPDigestAuth 

28else: 

29 HTTPDigestAuth = _HTTPDigestAuth