From: Stephen Finucane Date: Thu, 30 Jun 2016 17:30:23 +0000 (+0100) Subject: tests: Move 'create_check' to utils X-Git-Tag: v2.0.0-rc1~305 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79563c2468a6092d14a1a66e58cc0178e39d2433;p=thirdparty%2Fpatchwork.git tests: Move 'create_check' to utils This is also useful for the REST API tests. Signed-off-by: Stephen Finucane Reviewed-by: Andy Doan --- diff --git a/patchwork/tests/test_checks.py b/patchwork/tests/test_checks.py index 0508704a..ea347bc2 100644 --- a/patchwork/tests/test_checks.py +++ b/patchwork/tests/test_checks.py @@ -23,6 +23,7 @@ from datetime import timedelta from django.test import TransactionTestCase from patchwork.models import Check +from patchwork.tests.utils import create_check from patchwork.tests.utils import create_patches from patchwork.tests.utils import create_user @@ -34,24 +35,14 @@ class PatchChecksTest(TransactionTestCase): self.patch = create_patches()[0] self.user = create_user() - def create_check(self, **kwargs): - check_values = { + def _create_check(self, **kwargs): + values = { 'patch': self.patch, 'user': self.user, - 'date': dt.now(), - 'state': Check.STATE_SUCCESS, - 'target_url': 'http://example.com/', - 'description': '', - 'context': 'intel/jenkins-ci', } + values.update(**kwargs) - for key in check_values: - if key in kwargs: - check_values[key] = kwargs[key] - - check = Check(**check_values) - check.save() - return check + return create_check(**values) def assertCheckEqual(self, patch, check_state): state_names = dict(Check.STATE_CHOICES) @@ -87,77 +78,77 @@ class PatchChecksTest(TransactionTestCase): self.assertChecksEqual(self.patch, []) def test_checks__single_check(self): - check = self.create_check() + check = self._create_check() self.assertChecksEqual(self.patch, [check]) def test_checks__multiple_checks(self): - check_a = self.create_check() - check_b = self.create_check(context='new-context/test1') + check_a = self._create_check() + check_b = self._create_check(context='new-context/test1') self.assertChecksEqual(self.patch, [check_a, check_b]) def test_checks__duplicate_checks(self): - self.create_check(date=(dt.now() - timedelta(days=1))) - check = self.create_check() + self._create_check(date=(dt.now() - timedelta(days=1))) + check = self._create_check() # this isn't a realistic scenario (dates shouldn't be set by user so # they will always increment), but it's useful to verify the removal # of older duplicates by the function - self.create_check(date=(dt.now() - timedelta(days=2))) + self._create_check(date=(dt.now() - timedelta(days=2))) self.assertChecksEqual(self.patch, [check]) def test_checks__nultiple_users(self): - check_a = self.create_check() - check_b = self.create_check(user=create_user()) + check_a = self._create_check() + check_b = self._create_check(user=create_user()) self.assertChecksEqual(self.patch, [check_a, check_b]) def test_check_count__no_checks(self): self.assertCheckCountEqual(self.patch, 0) def test_check_count__single_check(self): - self.create_check() + self._create_check() self.assertCheckCountEqual(self.patch, 1, {Check.STATE_SUCCESS: 1}) def test_check_count__multiple_checks(self): - self.create_check(date=(dt.now() - timedelta(days=1))) - self.create_check(context='new/test1') + self._create_check(date=(dt.now() - timedelta(days=1))) + self._create_check(context='new/test1') self.assertCheckCountEqual(self.patch, 2, {Check.STATE_SUCCESS: 2}) def test_check_count__multiple_users(self): - self.create_check() - self.create_check(user=create_user()) + self._create_check() + self._create_check(user=create_user()) self.assertCheckCountEqual(self.patch, 2, {Check.STATE_SUCCESS: 2}) def test_check_count__duplicate_check_same_state(self): - self.create_check(date=(dt.now() - timedelta(days=1))) + self._create_check(date=(dt.now() - timedelta(days=1))) self.assertCheckCountEqual(self.patch, 1, {Check.STATE_SUCCESS: 1}) - self.create_check() + self._create_check() self.assertCheckCountEqual(self.patch, 2, {Check.STATE_SUCCESS: 1}) def test_check_count__duplicate_check_new_state(self): - self.create_check(date=(dt.now() - timedelta(days=1))) + self._create_check(date=(dt.now() - timedelta(days=1))) self.assertCheckCountEqual(self.patch, 1, {Check.STATE_SUCCESS: 1}) - self.create_check(state=Check.STATE_FAIL) + self._create_check(state=Check.STATE_FAIL) self.assertCheckCountEqual(self.patch, 2, {Check.STATE_FAIL: 1}) def test_check__no_checks(self): self.assertCheckEqual(self.patch, Check.STATE_PENDING) def test_check__single_check(self): - self.create_check() + self._create_check() self.assertCheckEqual(self.patch, Check.STATE_SUCCESS) def test_check__failure_check(self): - self.create_check() - self.create_check(context='new/test1', state=Check.STATE_FAIL) + self._create_check() + self._create_check(context='new/test1', state=Check.STATE_FAIL) self.assertCheckEqual(self.patch, Check.STATE_FAIL) def test_check__warning_check(self): - self.create_check() - self.create_check(context='new/test1', state=Check.STATE_WARNING) + self._create_check() + self._create_check(context='new/test1', state=Check.STATE_WARNING) self.assertCheckEqual(self.patch, Check.STATE_WARNING) def test_check__success_check(self): - self.create_check() - self.create_check(context='new/test1') + self._create_check() + self._create_check(context='new/test1') self.assertCheckEqual(self.patch, Check.STATE_SUCCESS) diff --git a/patchwork/tests/utils.py b/patchwork/tests/utils.py index 1369119a..699f6d60 100644 --- a/patchwork/tests/utils.py +++ b/patchwork/tests/utils.py @@ -18,12 +18,14 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import codecs +from datetime import datetime as dt from email.utils import make_msgid import os from django.contrib.auth.models import User from patchwork.models import Bundle +from patchwork.models import Check from patchwork.models import Comment from patchwork.models import CoverLetter from patchwork.models import Patch @@ -135,8 +137,11 @@ def create_user(link_person=True, **kwargs): return user -def create_maintainer(project, **kwargs): +def create_maintainer(project=None, **kwargs): """Create a 'User' and set as maintainer for provided project.""" + if not project: + project = create_project() + user = create_user(**kwargs) profile = user.profile @@ -221,6 +226,25 @@ def create_comment(**kwargs): return comment +def create_check(**kwargs): + """Create 'Check' object.""" + values = { + 'patch': create_patch(), + 'user': create_user(), + 'date': dt.now(), + 'state': Check.STATE_SUCCESS, + 'target_url': 'http://example.com/', + 'description': '', + 'context': 'jenkins-ci', + } + values.update(**kwargs) + + check = Check(**values) + check.save() + + return check + + def _create_submissions(create_func, count=1, **kwargs): """Create 'count' Submission-based objects.