From: Stephen Finucane Date: Thu, 18 Feb 2016 15:27:11 +0000 (+0000) Subject: tests: Remove duplicated bulk patch creation X-Git-Tag: v1.1.0~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f981513791358260c7510dd8479b0bfb24de05f5;p=thirdparty%2Fpatchwork.git tests: Remove duplicated bulk patch creation A number of tests were bulk creating patches. Seeing as this is a common operation, it's better to move this into a common location. Signed-off-by: Stephen Finucane --- diff --git a/patchwork/tests/test_bundles.py b/patchwork/tests/test_bundles.py index 958bb554..cbed216b 100644 --- a/patchwork/tests/test_bundles.py +++ b/patchwork/tests/test_bundles.py @@ -25,11 +25,12 @@ import unittest from django.conf import settings from django.test import TestCase from django.utils.http import urlencode - -from patchwork.models import Patch, Bundle, BundlePatch, Person -from patchwork.tests.utils import defaults, create_user, find_in_context from django.utils.six.moves import range, zip +from patchwork.models import Bundle, BundlePatch +from patchwork.tests.utils import (defaults, create_user, find_in_context, + create_patches) + def bundle_url(bundle): return '/bundle/%s/%s/' % (bundle.owner.username, bundle.name) @@ -65,7 +66,6 @@ class BundleTestBase(TestCase): fixtures = ['default_states'] def setUp(self, patch_count=3): - patch_names = ['testpatch%d' % (i) for i in range(1, patch_count + 1)] self.user = create_user() self.client.login(username=self.user.username, password=self.user.username) @@ -73,15 +73,7 @@ class BundleTestBase(TestCase): self.bundle = Bundle(owner=self.user, project=defaults.project, name='testbundle') self.bundle.save() - self.patches = [] - - for patch_name in patch_names: - patch = Patch(project=defaults.project, - msgid=patch_name, name=patch_name, - submitter=Person.objects.get(user=self.user), - content='') - patch.save() - self.patches.append(patch) + self.patches = create_patches(patch_count) def tearDown(self): for patch in self.patches: diff --git a/patchwork/tests/test_updates.py b/patchwork/tests/test_updates.py index d40a0a2b..15504f8a 100644 --- a/patchwork/tests/test_updates.py +++ b/patchwork/tests/test_updates.py @@ -20,8 +20,8 @@ from django.core.urlresolvers import reverse from django.test import TestCase -from patchwork.models import Patch, Person, State -from patchwork.tests.utils import defaults, create_maintainer +from patchwork.models import Patch, State +from patchwork.tests.utils import defaults, create_maintainer, create_patches class MultipleUpdateTest(TestCase): @@ -38,13 +38,7 @@ class MultipleUpdateTest(TestCase): 'action': 'Update', 'project': str(defaults.project.id), 'form': 'patchlistform', 'archived': '*', 'delegate': '*', 'state': '*'} - self.patches = [] - for name in ['patch one', 'patch two', 'patch three']: - patch = Patch(project=defaults.project, msgid=name, - name=name, content='', - submitter=Person.objects.get(user=self.user)) - patch.save() - self.patches.append(patch) + self.patches = create_patches(3) def _selectAllPatches(self, data): for patch in self.patches: diff --git a/patchwork/tests/test_user.py b/patchwork/tests/test_user.py index bd97eb74..2d8ebf65 100644 --- a/patchwork/tests/test_user.py +++ b/patchwork/tests/test_user.py @@ -23,9 +23,9 @@ from django.core import mail from django.core.urlresolvers import reverse from django.test import TestCase -from patchwork.models import (EmailConfirmation, Person, Bundle, UserProfile, - Patch) +from patchwork.models import EmailConfirmation, Person, Bundle, UserProfile from patchwork.tests.utils import defaults, error_strings +from patchwork.tests import utils def _confirmation_url(conf): @@ -144,23 +144,6 @@ class UserProfileTest(TestCase): self.client.login(username=self.user.username, password=self.user.password) - # FIXME(stephenfin) Remove duplication from this and test_xmlrpc - def _createPatches(self, count=1): - defaults.project.save() - defaults.patch_author_person.save() - - patches = [] - - for _ in range(0, count): - patch = Patch(project=defaults.project, - submitter=defaults.patch_author_person, - msgid=make_msgid(), - content=defaults.patch) - patch.save() - patches.append(patch) - - return patches - def testUserProfile(self): response = self.client.get('/user/') self.assertContains(response, 'User Profile: %s' % self.user.username) @@ -183,7 +166,7 @@ class UserProfileTest(TestCase): self.assertContains(response, bundle.get_absolute_url()) def testUserProfileTodos(self): - patches = self._createPatches(5) + patches = utils.create_patches(5) for patch in patches: patch.delegate = self.user.user patch.save() diff --git a/patchwork/tests/test_xmlrpc.py b/patchwork/tests/test_xmlrpc.py index bbb7dfbb..a5b69fb9 100644 --- a/patchwork/tests/test_xmlrpc.py +++ b/patchwork/tests/test_xmlrpc.py @@ -17,7 +17,6 @@ # along with Patchwork; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -from email.utils import make_msgid import unittest from django.conf import settings @@ -25,8 +24,7 @@ from django.core.urlresolvers import reverse from django.test import LiveServerTestCase from django.utils.six.moves import xmlrpc_client -from patchwork.models import Patch -from patchwork.tests.utils import defaults +from patchwork.tests import utils @unittest.skipUnless(settings.ENABLE_XMLRPC, @@ -44,41 +42,25 @@ class XMLRPCTest(LiveServerTestCase): self.assertRedirects(response, reverse('help', kwargs={'path': 'pwclient/'})) - def _createPatches(self, count=1): - defaults.project.save() - defaults.patch_author_person.save() - - patches = [] - - for _ in range(0, count): - patch = Patch(project=defaults.project, - submitter=defaults.patch_author_person, - msgid=make_msgid(), - content=defaults.patch) - patch.save() - patches.append(patch) - - return patches - def testListSingle(self): - patch_objs = self._createPatches() + patch_objs = utils.create_patches() patches = self.rpc.patch_list() self.assertEqual(len(patches), 1) self.assertEqual(patches[0]['id'], patch_objs[0].id) def testListMultiple(self): - self._createPatches(5) + utils.create_patches(5) patches = self.rpc.patch_list() self.assertEqual(len(patches), 5) def testListMaxCount(self): - patch_objs = self._createPatches(5) + patch_objs = utils.create_patches(5) patches = self.rpc.patch_list({'max_count': 2}) self.assertEqual(len(patches), 2) self.assertEqual(patches[0]['id'], patch_objs[0].id) def testListNegativeMaxCount(self): - patch_objs = self._createPatches(5) + patch_objs = utils.create_patches(5) patches = self.rpc.patch_list({'max_count': -1}) self.assertEqual(len(patches), 1) self.assertEqual(patches[0]['id'], patch_objs[-1].id) diff --git a/patchwork/tests/utils.py b/patchwork/tests/utils.py index 04250a8c..45eb2d3f 100644 --- a/patchwork/tests/utils.py +++ b/patchwork/tests/utils.py @@ -26,7 +26,7 @@ import os from django.contrib.auth.models import User -from patchwork.models import Project, Person +from patchwork.models import Project, Person, Patch # helper functions for tests @@ -86,6 +86,25 @@ def create_maintainer(project): return user +def create_patches(count=1): + """Create 'count' unique patches.""" + defaults.project.save() + defaults.patch_author_person.save() + + patches = [] + + for i in range(0, count): + patch = Patch(project=defaults.project, + submitter=defaults.patch_author_person, + msgid=make_msgid(), + name='testpatch%d' % (i + 1), + content=defaults.patch) + patch.save() + patches.append(patch) + + return patches + + def find_in_context(context, key): if isinstance(context, list): for c in context: