@@ -141,6 +141,77 @@ def test_pass(self):
141
141
])
142
142
assert result .ret == 1
143
143
144
+ def test_setUpClass_multiple_subclasses (self , django_testdir ):
145
+ django_testdir .create_test_module ('''
146
+ from django.test import TestCase
147
+
148
+
149
+ class TestFoo(TestCase):
150
+ @classmethod
151
+ def setUpClass(cls):
152
+ super(TestFoo, cls).setUpClass()
153
+
154
+ def test_shared_TestFoo(self):
155
+ pass
156
+
157
+
158
+ class TestBar(TestFoo):
159
+ def test_bar1(self):
160
+ pass
161
+
162
+
163
+ class TestBar2(TestFoo):
164
+ def test_bar21(self):
165
+ pass
166
+ ''' )
167
+
168
+ result = django_testdir .runpytest_subprocess ('-v' , '-s' )
169
+ result .stdout .fnmatch_lines ([
170
+ "TestFoo::test_shared PASSED" ,
171
+ "TestBar::test_bar1 PASSED" ,
172
+ "TestBar::test_shared PASSED" ,
173
+ "TestBar2::test_bar21 PASSED" ,
174
+ "TestBar2::test_shared PASSED" ,
175
+ ])
176
+ assert result .ret == 1
177
+
178
+ def test_setUpClass_skip (self , django_testdir ):
179
+ django_testdir .create_test_module ('''
180
+ from django.test import TestCase
181
+ import pytest
182
+
183
+
184
+ class TestFoo(TestCase):
185
+ @classmethod
186
+ def setUpClass(cls):
187
+ if cls is TestFoo:
188
+ raise pytest.skip("Skip base class")
189
+ super(TestFoo, cls).setUpClass()
190
+
191
+ def test_shared(self):
192
+ pass
193
+
194
+
195
+ class TestBar(TestFoo):
196
+ def test_bar1(self):
197
+ pass
198
+
199
+
200
+ class TestBar2(TestFoo):
201
+ def test_bar21(self):
202
+ pass
203
+ ''' )
204
+
205
+ result = django_testdir .runpytest_subprocess ('-v' , '-s' )
206
+ result .stdout .fnmatch_lines ([
207
+ "TestFoo::test_shared SKIPPED" ,
208
+ "TestBar::test_bar1 PASSED" ,
209
+ "TestBar::test_shared PASSED" ,
210
+ "TestBar2::test_bar21 PASSED" ,
211
+ "TestBar2::test_shared PASSED" ,
212
+ ])
213
+ assert result .ret == 1
214
+
144
215
def test_multi_inheritance_setUpClass (self , django_testdir ):
145
216
django_testdir .create_test_module ('''
146
217
from django.test import TestCase
0 commit comments