Coverage for britney2/excusedeps.py: 100%

27 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2024-04-18 20:48 +0000

1from typing import Optional 

2 

3from britney2.policies import PolicyVerdict 

4 

5 

6class DependencySpec(object): 

7 

8 def __init__(self, deptype, architecture: Optional[str] = None): 

9 self.deptype = deptype 

10 self.architecture = architecture 

11 assert self.architecture != 'all', "all not allowed for DependencySpec" 

12 

13 

14class DependencyState(object): 

15 

16 def __init__(self, dep): 

17 """State of a dependency 

18 

19 :param dep: the excuse that we are depending on 

20 

21 """ 

22 self.valid = True 

23 self.verdict = PolicyVerdict.PASS 

24 self.dep = dep 

25 

26 @property 

27 def possible(self) -> bool: 

28 return True 

29 

30 def invalidate(self, verdict: PolicyVerdict) -> None: 

31 self.valid = False 

32 self.verdict = PolicyVerdict.worst_of(verdict) 

33 

34 

35class ImpossibleDependencyState(DependencyState): 

36 """Object tracking an impossible dependency""" 

37 

38 def __init__(self, verdict, desc): 

39 """ 

40 

41 :param desc: description of the impossible dependency 

42 

43 """ 

44 self.valid = False 

45 self.verdict = verdict 

46 self.desc = desc 

47 self.dep = None 

48 

49 @property 

50 def possible(self): 

51 return False