Skip to content

Commit 6aaab49

Browse files
berkerpeksagagjohnson
authored andcommitted
Speed up test_comments by using setUpTestData (#2310)
Before patch: 42.19 seconds After patch: 31.37 seconds
1 parent 35346bc commit 6aaab49

File tree

1 file changed

+40
-41
lines changed

1 file changed

+40
-41
lines changed

readthedocs/rtd_tests/tests/test_comments.py

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,29 @@ def create_node(hash=None, commit=None, **kwargs):
3030

3131

3232
class ModerationTests(TestCase):
33-
def setUp(self):
34-
self.owner = create_user(username='owner', password='test')
33+
@classmethod
34+
def setUpTestData(cls):
35+
cls.owner = create_user(username='owner', password='test')
3536

36-
self.moderated_project = get(Project, comment_moderation=True)
37-
self.moderated_project.users.add(self.owner)
37+
cls.moderated_project = get(Project, comment_moderation=True)
38+
cls.moderated_project.users.add(cls.owner)
3839

39-
self.moderated_node = create_node(project=self.moderated_project)
40+
cls.moderated_node = create_node(project=cls.moderated_project)
4041

41-
self.first_moderated_comment = get(DocumentComment,
42-
node=self.moderated_node)
43-
self.second_moderated_comment = get(DocumentComment,
44-
node=self.moderated_node)
42+
cls.first_moderated_comment = get(DocumentComment,
43+
node=cls.moderated_node)
44+
cls.second_moderated_comment = get(DocumentComment,
45+
node=cls.moderated_node)
4546

46-
self.unmoderated_project = get(Project, comment_moderation=False)
47-
self.unmoderated_project.users.add(self.owner)
47+
cls.unmoderated_project = get(Project, comment_moderation=False)
48+
cls.unmoderated_project.users.add(cls.owner)
4849

49-
self.unmoderated_node = create_node(project=self.unmoderated_project)
50+
cls.unmoderated_node = create_node(project=cls.unmoderated_project)
5051

51-
self.first_unmoderated_comment = get(DocumentComment,
52-
node=self.unmoderated_node)
53-
self.second_unmoderated_comment = get(DocumentComment,
54-
node=self.unmoderated_node)
52+
cls.first_unmoderated_comment = get(DocumentComment,
53+
node=cls.unmoderated_node)
54+
cls.second_unmoderated_comment = get(DocumentComment,
55+
node=cls.unmoderated_node)
5556

5657
def test_approved_comments(self):
5758
c = self.first_unmoderated_comment
@@ -204,19 +205,20 @@ def test_nodes_with_same_hash_oddness(self):
204205

205206

206207
class CommentModerationViewsTests(TestCase):
207-
def setUp(self):
208-
self.owner = create_user(username='owner', password='test')
208+
@classmethod
209+
def setUpTestData(cls):
210+
cls.owner = create_user(username='owner', password='test')
209211

210-
self.moderated_project = get(Project, comment_moderation=True)
211-
self.moderated_project.users.add(self.owner)
212+
cls.moderated_project = get(Project, comment_moderation=True)
213+
cls.moderated_project.users.add(cls.owner)
212214

213-
self.moderated_node = get(DocumentNode,
214-
project=self.moderated_project)
215-
get(NodeSnapshot, node=self.moderated_node)
215+
cls.moderated_node = get(DocumentNode,
216+
project=cls.moderated_project)
217+
get(NodeSnapshot, node=cls.moderated_node)
216218

217-
self.moderated_comment = get(DocumentComment,
218-
text='Some comment text.',
219-
node=self.moderated_node)
219+
cls.moderated_comment = get(DocumentComment,
220+
text='Some comment text.',
221+
node=cls.moderated_node)
220222

221223
def test_unmoderated_comments_are_listed_in_view(self):
222224

@@ -232,17 +234,18 @@ class CommentAPIViewsTests(APITestCase):
232234

233235
request_factory = APIRequestFactory()
234236

235-
def setUp(self):
236-
self.owner = create_user(username='owner', password='test')
237+
@classmethod
238+
def setUpTestData(cls):
239+
cls.owner = create_user(username='owner', password='test')
237240

238-
self.moderated_project = get(Project, comment_moderation=True)
239-
self.moderated_project.users.add(self.owner)
240-
self.moderated_version = get(Version, project=self.moderated_project)
241+
cls.moderated_project = get(Project, comment_moderation=True)
242+
cls.moderated_project.users.add(cls.owner)
243+
cls.moderated_version = get(Version, project=cls.moderated_project)
241244

242-
self.moderated_node = get(DocumentNode,
243-
project=self.moderated_project,
244-
version=self.moderated_version)
245-
get(NodeSnapshot, node=self.moderated_node)
245+
cls.moderated_node = get(DocumentNode,
246+
project=cls.moderated_project,
247+
version=cls.moderated_version)
248+
get(NodeSnapshot, node=cls.moderated_node)
246249

247250
def test_get_comments_view(self):
248251

@@ -425,12 +428,6 @@ def test_add_comment_view_with_changed_hash(self):
425428

426429
self.assertEqual(response.data['results'][0]['text'], comment_text)
427430

428-
def test_retrieve_comment_on_old_hash(self):
429-
pass
430-
431-
def test_post_comment_on_old_hash(self):
432-
pass
433-
434431
def test_moderate_comment_by_approving(self):
435432
user = create_user(username='test', password='test')
436433

@@ -465,3 +462,5 @@ def test_stranger_cannot_moderate_comments(self):
465462
)
466463

467464
self.assertEqual(response.status_code, 403)
465+
466+
test_retrieve_comment_on_old_hash = test_post_comment_on_old_hash = None

0 commit comments

Comments
 (0)