Add verification_status field to test

This patch adds the ability for Foundation admins
to mark a test that has been associated to a target program and
guideline as 'verified' so that the test can not be deleted or updated.

Updated error messages to reflect that products/vendors can not
be deleted if a test is associated.

Change-Id: Ifa7cc2eff9d2bce9129ec1738adebfa3a0a4966f
Implements-Spec: https://review.openstack.org/#/c/343954
This commit is contained in:
Paul Van Eck
2016-09-27 16:24:01 -07:00
parent 96c8679314
commit 02307f3a1e
9 changed files with 193 additions and 17 deletions

View File

@@ -141,7 +141,8 @@ class ResultsControllerTestCase(BaseControllerTestCase):
mock_get_test.assert_called_once_with(
'fake_arg', allowed_keys=['id', 'cpid', 'created_at',
'duration_seconds', 'meta',
'product_version_id']
'product_version_id',
'verification_status']
)
@mock.patch('refstack.db.store_results')
@@ -248,7 +249,8 @@ class ResultsControllerTestCase(BaseControllerTestCase):
const.START_DATE,
const.END_DATE,
const.CPID,
const.SIGNED
const.SIGNED,
const.VERIFICATION_STATUS,
]
page_number = 1
total_pages_number = 10
@@ -286,13 +288,21 @@ class ResultsControllerTestCase(BaseControllerTestCase):
db_get_test.assert_called_once_with(page_number, per_page, filters)
@mock.patch('refstack.db.get_test')
@mock.patch('refstack.db.delete_test')
def test_delete(self, mock_db_delete):
def test_delete(self, mock_db_delete, mock_get_test):
self.mock_get_user_role.return_value = const.ROLE_OWNER
self.controller.delete('test_id')
self.assertEqual(204, self.mock_response.status)
# Verified test deletion attempt should raise error.
mock_get_test.return_value = {'verification_status':
const.TEST_VERIFIED}
self.assertRaises(webob.exc.HTTPError,
self.controller.delete, 'test_id')
self.mock_get_user_role.return_value = const.ROLE_USER
self.mock_abort.side_effect = webob.exc.HTTPError()
self.assertRaises(webob.exc.HTTPError,
self.controller.delete, 'test_id')
@@ -634,9 +644,13 @@ class MetadataControllerTestCase(BaseControllerTestCase):
self.mock_get_user_role.return_value = const.ROLE_FOUNDATION
self.assertEqual(42, self.controller.get_one('test_id', 'user'))
@mock.patch('refstack.db.get_test')
@mock.patch('refstack.db.save_test_meta_item')
def test_post(self, mock_save_test_meta_item):
def test_post(self, mock_save_test_meta_item, mock_get_test):
self.mock_get_user_role.return_value = const.ROLE_OWNER
mock_get_test.return_value = {
'verification_status': const.TEST_NOT_VERIFIED
}
# Test trying to post a valid key.
self.controller.post('test_id', 'shared')
@@ -654,9 +668,13 @@ class MetadataControllerTestCase(BaseControllerTestCase):
self.assertRaises(webob.exc.HTTPError,
self.controller.post, 'test_id', 'shared')
@mock.patch('refstack.db.get_test')
@mock.patch('refstack.db.delete_test_meta_item')
def test_delete(self, mock_delete_test_meta_item):
def test_delete(self, mock_delete_test_meta_item, mock_get_test):
self.mock_get_user_role.return_value = const.ROLE_OWNER
mock_get_test.return_value = {
'verification_status': const.TEST_NOT_VERIFIED
}
self.controller.delete('test_id', 'shared')
self.assertEqual(204, self.mock_response.status)
mock_delete_test_meta_item.assert_called_once_with('test_id', 'shared')