Skip to content

Commit

Permalink
Allow username for reviewer in rpc testcase.update
Browse files Browse the repository at this point in the history
  • Loading branch information
RMadjev authored and atodorov committed Apr 20, 2020
1 parent 823e67c commit a92d13c
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 18 deletions.
1 change: 1 addition & 0 deletions tcms/rpc/api/forms/testcase.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ class Meta:

default_tester = UserField()
author = UserField()
reviewer = UserField()
118 changes: 100 additions & 18 deletions tcms/rpc/tests/test_testcase.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ def test_filter_by_product_id(self):


class TestUpdate(APITestCase):
fake_username = 'FakeUsername'
fake_user_id = 999
fake_email = '[email protected]'
non_existing_username = 'FakeUsername'
non_existing_user_id = 999
non_existing_email = '[email protected]'

def _fixture_setup(self):
super()._fixture_setup()
Expand Down Expand Up @@ -119,17 +119,18 @@ def test_update_author_issue_630(self):
self.assertEqual(self.new_author, self.testcase.author)
self.assertEqual(self.new_author.pk, updated['author_id'])

def test_update_auth_should_fail_for_fake_user_id(self):
def test_update_author_should_fail_for_non_existing_user_id(self):
initial_author_id = self.testcase.author.pk
with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'author': self.fake_user_id,
'author': self.non_existing_user_id,
}
)

self.testcase.refresh_from_db()
self.assertNotEqual(self.fake_user_id, self.testcase.author)
self.assertEqual(initial_author_id, self.testcase.author.pk)

def test_update_author_accepts_username(self):
self.assertNotEqual(self.new_author, self.testcase.author)
Expand All @@ -146,17 +147,18 @@ def test_update_author_accepts_username(self):
self.assertEqual(self.new_author, self.testcase.author)
self.assertEqual(self.new_author.pk, updated['author_id'])

def test_update_auth_should_fail_for_fake_username(self):
def test_update_author_should_fail_for_non_existing_username(self):
initial_author_username = self.testcase.author.username
with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'author': self.fake_username,
'author': self.non_existing_username,
}
)

self.testcase.refresh_from_db()
self.assertNotEqual(self.fake_username, self.testcase.author.username)
self.assertEqual(initial_author_username, self.testcase.author.username)

def test_update_author_accepts_email(self):
self.assertNotEqual(self.new_author, self.testcase.author)
Expand All @@ -173,17 +175,18 @@ def test_update_author_accepts_email(self):
self.assertEqual(self.new_author, self.testcase.author)
self.assertEqual(self.new_author.pk, updated['author_id'])

def test_update_auth_should_fail_for_fake_email(self):
def test_update_author_should_fail_for_non_existing_email(self):
initial_author_email = self.testcase.author.email
with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'author': self.fake_email,
'author': self.non_existing_email,
}
)

self.testcase.refresh_from_db()
self.assertNotEqual(self.fake_email, self.testcase.author.email)
self.assertEqual(initial_author_email, self.testcase.author.email)

def test_update_priority_issue_1318(self):
expected_priority = Priority.objects.exclude(pk=self.testcase.priority.pk).first()
Expand Down Expand Up @@ -223,14 +226,14 @@ def test_update_default_tester_accepts_user_id(self):

self.assertEqual(self.new_author.pk, self.testcase.default_tester.pk)

def test_update_default_tester_should_fail_with_fake_user_id(self):
def test_update_default_tester_should_fail_with_non_existing_user_id(self):
self.assertIsNone(self.testcase.default_tester)

with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'default_tester': self.fake_user_id,
'default_tester': self.non_existing_user_id,
}
)

Expand All @@ -252,14 +255,14 @@ def test_update_default_tester_accepts_username(self):

self.assertEqual(self.new_author.pk, self.testcase.default_tester.pk)

def test_update_default_tester_should_fail_with_fake_username(self):
def test_update_default_tester_should_fail_with_non_existing_username(self):
self.assertIsNone(self.testcase.default_tester)

with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'default_tester': self.fake_username,
'default_tester': self.non_existing_username,
}
)

Expand All @@ -280,21 +283,100 @@ def test_update_default_tester_accepts_email(self):

self.assertEqual(self.new_author.pk, self.testcase.default_tester.pk)

def test_update_default_tester_should_fail_with_fake_email(self):
def test_update_default_tester_should_fail_with_non_existing_email(self):
self.assertIsNone(self.testcase.default_tester)

with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'default_tester': self.fake_email,
'default_tester': self.non_existing_email,
}
)

self.testcase.refresh_from_db()

self.assertIsNone(self.testcase.default_tester)

def test_update_reviewer_accepts_user_id(self):
self.assertNotEqual(self.new_author, self.testcase.reviewer)

self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'reviewer': self.new_author.pk,
}
)

self.testcase.refresh_from_db()

self.assertEqual(self.new_author.pk, self.testcase.reviewer.pk)

def test_update_reviewer_should_fail_with_non_existing_user_id(self):
initial_reviewer_id = self.testcase.reviewer.pk
with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'reviewer': self.non_existing_user_id,
}
)

self.testcase.refresh_from_db()
self.assertEqual(initial_reviewer_id, self.testcase.reviewer.pk)

def test_update_reviewer_accepts_username(self):
self.assertNotEqual(self.new_author, self.testcase.reviewer)

self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'reviewer': self.new_author.username,
}
)

self.testcase.refresh_from_db()
self.assertEqual(self.new_author, self.testcase.reviewer)

def test_update_reviewer_should_fail_for_non_existing_username(self):
initial_reviewer_username = self.testcase.reviewer.username
with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'reviewer': self.non_existing_username,
}
)

self.testcase.refresh_from_db()
self.assertEqual(initial_reviewer_username, self.testcase.reviewer.username)

def test_update_reviewer_accepts_email(self):
self.assertNotEqual(self.new_author, self.testcase.author)

self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'reviewer': self.new_author.email,
}
)

self.testcase.refresh_from_db()
self.assertEqual(self.new_author, self.testcase.reviewer)

def test_update_reviewer_should_fail_for_non_existing_email(self):
initial_reviewer_email = self.testcase.reviewer.email
with self.assertRaises(Fault):
self.rpc_client.TestCase.update( # pylint: disable=objects-update-used
self.testcase.pk,
{
'reviewer': self.non_existing_email,
}
)

self.testcase.refresh_from_db()
self.assertEqual(initial_reviewer_email, self.testcase.reviewer.email)


class TestCreate(APITestCase):
def _fixture_setup(self):
Expand Down

0 comments on commit a92d13c

Please sign in to comment.