@@ -47,7 +47,11 @@ class DependencyManager(object):
47
47
"""Dependency manager, stores the results of tests.
48
48
"""
49
49
50
- ScopeCls = {'class' :pytest .Class , 'module' :pytest .Module , 'session' :pytest .Session }
50
+ ScopeCls = {
51
+ 'session' : pytest .Session ,
52
+ 'module' : pytest .Module ,
53
+ 'class' : pytest .Class ,
54
+ }
51
55
52
56
@classmethod
53
57
def getManager (cls , item , scope = 'module' ):
@@ -67,12 +71,16 @@ def __init__(self, scope):
67
71
68
72
def addResult (self , item , name , rep ):
69
73
if not name :
70
- if self .scope == "session" :
71
- name = item .nodeid .replace ("::()::" , "::" )
72
- elif item .cls and self .scope == "module" :
73
- name = "%s::%s" % (item .cls .__name__ , item .name )
74
+ nodeid = item .nodeid .replace ("::()::" , "::" )
75
+ if self .scope == 'session' or self .scope == 'package' :
76
+ name = nodeid
77
+ elif self .scope == 'module' :
78
+ name = nodeid .split ("::" , maxsplit = 1 )[1 ]
79
+ elif self .scope == 'class' :
80
+ name = nodeid .split ("::" , maxsplit = 2 )[2 ]
74
81
else :
75
- name = item .name
82
+ raise RuntimeError ("Internal error: invalid scope '%s'"
83
+ % self .scope )
76
84
status = self .results .setdefault (name , DependencyItemStatus ())
77
85
status .addResult (rep )
78
86
@@ -144,10 +152,9 @@ def pytest_runtest_makereport(item, call):
144
152
if marker is not None or _automark :
145
153
rep = outcome .get_result ()
146
154
name = marker .kwargs .get ('name' ) if marker is not None else None
147
- """ Store the test outcome for each scope if it exists"""
148
155
for scope in DependencyManager .ScopeCls :
149
156
manager = DependencyManager .getManager (item , scope = scope )
150
- if (manager ):
157
+ if (manager ):
151
158
manager .addResult (item , name , rep )
152
159
153
160
@@ -159,6 +166,6 @@ def pytest_runtest_setup(item):
159
166
if marker is not None :
160
167
depends = marker .kwargs .get ('depends' )
161
168
if depends :
162
- scope = marker .kwargs .get ('scope' , 'module' ) if marker is not None else 'module'
169
+ scope = marker .kwargs .get ('scope' , 'module' )
163
170
manager = DependencyManager .getManager (item , scope = scope )
164
171
manager .checkDepend (depends , item )
0 commit comments