diff mbox

[2/6] tests: Move 'create_check' to utils

Message ID 1467307827-7243-2-git-send-email-stephen.finucane@intel.com
State Accepted
Headers show

Commit Message

Stephen Finucane June 30, 2016, 5:30 p.m. UTC
This is also useful for the REST API tests.

Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
---
 patchwork/tests/test_checks.py |   67 +++++++++++++++++----------------------
 patchwork/tests/utils.py       |   26 +++++++++++++++-
 2 files changed, 54 insertions(+), 39 deletions(-)

Comments

Andy Doan July 12, 2016, 2:30 p.m. UTC | #1
On 06/30/2016 12:30 PM, Stephen Finucane wrote:
> This is also useful for the REST API tests.
>
> Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>

Reviewed-by: Andy Doan <andy.doan@linaro.org>

> diff --git a/patchwork/tests/utils.py b/patchwork/tests/utils.py

> +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

Its a bit of nit, but you can do that more concisely with:

     return Check.objects.create(**values)
diff mbox

Patch

diff --git a/patchwork/tests/test_checks.py b/patchwork/tests/test_checks.py
index 0508704..ea347bc 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 1369119..699f6d6 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.