Use a copy of global literal for each test

If global is used in OSC tests, it might be altered, and then the test
result depends on concurrency and order.
Use a copy of the global literal for deterministic results.

Change-Id: I177cc4345c5ed194f2c36d80acc53db113f814e4
This commit is contained in:
Yuval Brik
2017-08-15 10:13:10 +03:00
parent 6a53851650
commit e1f7540bac
8 changed files with 102 additions and 80 deletions

View File

@@ -11,6 +11,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
import json
from karborclient.osc.v1 import checkpoints as osc_checkpoints
@@ -51,7 +52,7 @@ class TestListCheckpoints(TestCheckpoints):
def setUp(self):
super(TestListCheckpoints, self).setUp()
self.checkpoints_mock.list.return_value = [checkpoints.Checkpoint(
None, CHECKPOINT_INFO)]
None, copy.deepcopy(CHECKPOINT_INFO))]
# Command to test
self.cmd = osc_checkpoints.ListCheckpoints(self.app, None)
@@ -88,7 +89,7 @@ class TestCreateCheckpoint(TestCheckpoints):
def setUp(self):
super(TestCreateCheckpoint, self).setUp()
self.checkpoints_mock.create.return_value = checkpoints.Checkpoint(
None, CHECKPOINT_INFO)
None, copy.deepcopy(CHECKPOINT_INFO))
# Command to test
self.cmd = osc_checkpoints.CreateCheckpoint(self.app, None)
@@ -113,7 +114,7 @@ class TestShowCheckpoint(TestCheckpoints):
def setUp(self):
super(TestShowCheckpoint, self).setUp()
self.checkpoints_mock.get.return_value = checkpoints.Checkpoint(
None, CHECKPOINT_INFO)
None, copy.deepcopy(CHECKPOINT_INFO))
# Command to test
self.cmd = osc_checkpoints.ShowCheckpoint(self.app, None)
@@ -138,7 +139,7 @@ class TestDeleteCheckpoint(TestCheckpoints):
def setUp(self):
super(TestDeleteCheckpoint, self).setUp()
self.checkpoints_mock.get.return_value = checkpoints.Checkpoint(
None, CHECKPOINT_INFO)
None, copy.deepcopy(CHECKPOINT_INFO))
# Command to test
self.cmd = osc_checkpoints.DeleteCheckpoint(self.app, None)

View File

@@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from karborclient.osc.v1 import operation_logs as osc_operation_logs
from karborclient.tests.unit.osc.v1 import fakes
from karborclient.v1 import operation_logs
@@ -45,7 +47,8 @@ class TestListOperationLogs(TestOperationLogs):
def setUp(self):
super(TestListOperationLogs, self).setUp()
self.operation_logs_mock.list.return_value = [
operation_logs.OperationLog(None, OPERATIONLOG_INFO)]
operation_logs.OperationLog(None,
copy.deepcopy(OPERATIONLOG_INFO))]
# Command to test
self.cmd = osc_operation_logs.ListOperationLogs(self.app, None)
@@ -85,8 +88,9 @@ class TestListOperationLogs(TestOperationLogs):
class TestShowOperationLog(TestOperationLogs):
def setUp(self):
super(TestShowOperationLog, self).setUp()
self._oplog_info = copy.deepcopy(OPERATIONLOG_INFO)
self.operation_logs_mock.get.return_value = (
operation_logs.OperationLog(None, OPERATIONLOG_INFO))
operation_logs.OperationLog(None, self._oplog_info))
# Command to test
self.cmd = osc_operation_logs.ShowOperationLog(self.app, None)
@@ -109,16 +113,16 @@ class TestShowOperationLog(TestOperationLogs):
self.assertEqual(expected_columns, columns)
# Check that data is correct
self.assertEqual(OPERATIONLOG_INFO['checkpoint_id'], data[0])
self.assertEqual(OPERATIONLOG_INFO['ended_at'], data[1])
self.assertEqual(OPERATIONLOG_INFO['error_info'], data[2])
self.assertEqual(OPERATIONLOG_INFO['extra_info'], data[3])
self.assertEqual(OPERATIONLOG_INFO['id'], data[4])
self.assertEqual(OPERATIONLOG_INFO['operation_type'], data[5])
self.assertEqual(OPERATIONLOG_INFO['plan_id'], data[6])
self.assertEqual(OPERATIONLOG_INFO['project_id'], data[7])
self.assertEqual(OPERATIONLOG_INFO['provider_id'], data[8])
self.assertEqual(OPERATIONLOG_INFO['restore_id'], data[9])
self.assertEqual(OPERATIONLOG_INFO['scheduled_operation_id'], data[10])
self.assertEqual(OPERATIONLOG_INFO['started_at'], data[11])
self.assertEqual(OPERATIONLOG_INFO['status'], data[12])
self.assertEqual(self._oplog_info['checkpoint_id'], data[0])
self.assertEqual(self._oplog_info['ended_at'], data[1])
self.assertEqual(self._oplog_info['error_info'], data[2])
self.assertEqual(self._oplog_info['extra_info'], data[3])
self.assertEqual(self._oplog_info['id'], data[4])
self.assertEqual(self._oplog_info['operation_type'], data[5])
self.assertEqual(self._oplog_info['plan_id'], data[6])
self.assertEqual(self._oplog_info['project_id'], data[7])
self.assertEqual(self._oplog_info['provider_id'], data[8])
self.assertEqual(self._oplog_info['restore_id'], data[9])
self.assertEqual(self._oplog_info['scheduled_operation_id'], data[10])
self.assertEqual(self._oplog_info['started_at'], data[11])
self.assertEqual(self._oplog_info['status'], data[12])

View File

@@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from karborclient.osc.v1 import plans as osc_plans
from karborclient.tests.unit.osc.v1 import fakes
from karborclient.v1 import plans
@@ -41,7 +43,7 @@ class TestListPlans(TestPlans):
def setUp(self):
super(TestListPlans, self).setUp()
self.plans_mock.list.return_value = [plans.Plan(
None, PLAN_INFO)]
None, copy.deepcopy(PLAN_INFO))]
# Command to test
self.cmd = osc_plans.ListPlans(self.app, None)
@@ -72,7 +74,7 @@ class TestCreatePlan(TestPlans):
def setUp(self):
super(TestCreatePlan, self).setUp()
self.plans_mock.create.return_value = plans.Plan(
None, PLAN_INFO)
None, copy.deepcopy(PLAN_INFO))
# Command to test
self.cmd = osc_plans.CreatePlan(self.app, None)
@@ -104,9 +106,9 @@ class TestUpdatePlan(TestPlans):
def setUp(self):
super(TestUpdatePlan, self).setUp()
self.plans_mock.get.return_value = plans.Plan(
None, PLAN_INFO)
None, copy.deepcopy(PLAN_INFO))
self.plans_mock.update.return_value = plans.Plan(
None, PLAN_INFO)
None, copy.deepcopy(PLAN_INFO))
# Command to test
self.cmd = osc_plans.UpdatePlan(self.app, None)
@@ -130,7 +132,7 @@ class TestDeletePlan(TestPlans):
def setUp(self):
super(TestDeletePlan, self).setUp()
self.plans_mock.get.return_value = plans.Plan(
None, PLAN_INFO)
None, copy.deepcopy(PLAN_INFO))
# Command to test
self.cmd = osc_plans.DeletePlan(self.app, None)
@@ -150,8 +152,9 @@ class TestDeletePlan(TestPlans):
class TestShowPlan(TestPlans):
def setUp(self):
super(TestShowPlan, self).setUp()
self._plan_info = copy.deepcopy(PLAN_INFO)
self.plans_mock.get.return_value = plans.Plan(
None, PLAN_INFO)
None, self._plan_info)
# Command to test
self.cmd = osc_plans.ShowPlan(self.app, None)
@@ -171,10 +174,10 @@ class TestShowPlan(TestPlans):
self.assertEqual(expected_columns, columns)
# Check that data is correct
self.assertEqual(PLAN_INFO['description'], data[0])
self.assertEqual(PLAN_INFO['id'], data[1])
self.assertEqual(PLAN_INFO['name'], data[2])
self.assertEqual(PLAN_INFO['parameters'], data[3])
self.assertEqual(PLAN_INFO['provider_id'], data[4])
self.assertEqual(PLAN_INFO['resources'], data[5])
self.assertEqual(PLAN_INFO['status'], data[6])
self.assertEqual(self._plan_info['description'], data[0])
self.assertEqual(self._plan_info['id'], data[1])
self.assertEqual(self._plan_info['name'], data[2])
self.assertEqual(self._plan_info['parameters'], data[3])
self.assertEqual(self._plan_info['provider_id'], data[4])
self.assertEqual(self._plan_info['resources'], data[5])
self.assertEqual(self._plan_info['status'], data[6])

View File

@@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from karborclient.osc.v1 import protectables as osc_protectables
from karborclient.tests.unit.osc.v1 import fakes
from karborclient.v1 import protectables
@@ -65,7 +67,7 @@ class TestListProtectables(TestProtectables):
def setUp(self):
super(TestListProtectables, self).setUp()
self.protectables_mock.list.return_value = [protectables.Protectable(
None, PROTECTABLE_LIST_INFO)]
None, copy.deepcopy(PROTECTABLE_LIST_INFO))]
# Command to test
self.cmd = osc_protectables.ListProtectables(self.app, None)
@@ -95,7 +97,7 @@ class TestShowProtectable(TestProtectables):
def setUp(self):
super(TestShowProtectable, self).setUp()
self.protectables_mock.get.return_value = protectables.Protectable(
None, PROTECTABLE_SHOW_INFO)
None, copy.deepcopy(PROTECTABLE_SHOW_INFO))
# Command to test
self.cmd = osc_protectables.ShowProtectable(self.app, None)
@@ -117,7 +119,7 @@ class TestListProtectableInstances(TestProtectables):
super(TestListProtectableInstances, self).setUp()
pm = self.protectables_mock
pm.list_instances.return_value = protectables.Instances(
None, PROTECTABLE_INSTANCE_LIST_INFO)
None, copy.deepcopy(PROTECTABLE_INSTANCE_LIST_INFO))
# Command to test
self.cmd = osc_protectables.ListProtectableInstances(self.app, None)
@@ -141,7 +143,7 @@ class TestShowProtectableInstance(TestProtectables):
super(TestShowProtectableInstance, self).setUp()
pm = self.protectables_mock
pm.get_instance.return_value = protectables.Instances(
None, PROTECTABLE_INSTANCE_SHOW_INFO)
None, copy.deepcopy(PROTECTABLE_INSTANCE_SHOW_INFO))
# Command to test
self.cmd = osc_protectables.ShowProtectableInstance(self.app, None)

View File

@@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from karborclient.osc.v1 import providers as osc_providers
from karborclient.tests.unit.osc.v1 import fakes
from karborclient.v1 import providers
@@ -87,7 +89,7 @@ class TestListProviders(TestProviders):
def setUp(self):
super(TestListProviders, self).setUp()
self.providers_mock.list.return_value = [providers.Provider(
None, PROVIDER_INFO)]
None, copy.deepcopy(PROVIDER_INFO))]
# Command to test
self.cmd = osc_providers.ListProviders(self.app, None)
@@ -115,8 +117,9 @@ class TestListProviders(TestProviders):
class TestShowProvider(TestProviders):
def setUp(self):
super(TestShowProvider, self).setUp()
self._provider_info = copy.deepcopy(PROVIDER_INFO)
self.providers_mock.get.return_value = providers.Provider(
None, PROVIDER_INFO)
None, self._provider_info)
# Command to test
self.cmd = osc_providers.ShowProvider(self.app, None)
@@ -135,7 +138,7 @@ class TestShowProvider(TestProviders):
self.assertEqual(expected_columns, columns)
# Check that data is correct
self.assertEqual(PROVIDER_INFO['description'], data[0])
self.assertEqual(PROVIDER_INFO['extended_info_schema'], data[1])
self.assertEqual(PROVIDER_INFO['id'], data[2])
self.assertEqual(PROVIDER_INFO['name'], data[3])
self.assertEqual(self._provider_info['description'], data[0])
self.assertEqual(self._provider_info['extended_info_schema'], data[1])
self.assertEqual(self._provider_info['id'], data[2])
self.assertEqual(self._provider_info['name'], data[3])

View File

@@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from karborclient.osc.v1 import restores as osc_restores
from karborclient.tests.unit.osc.v1 import fakes
from karborclient.v1 import restores
@@ -41,7 +43,7 @@ class TestListRestores(TestRestores):
def setUp(self):
super(TestListRestores, self).setUp()
self.restores_mock.list.return_value = [restores.Restore(
None, RESTORE_INFO)]
None, copy.deepcopy(RESTORE_INFO))]
# Command to test
self.cmd = osc_restores.ListRestores(self.app, None)
@@ -75,7 +77,7 @@ class TestCreateRestore(TestRestores):
def setUp(self):
super(TestCreateRestore, self).setUp()
self.restores_mock.create.return_value = restores.Restore(
None, RESTORE_INFO)
None, copy.deepcopy(RESTORE_INFO))
# Command to test
self.cmd = osc_restores.CreateRestore(self.app, None)
@@ -100,8 +102,9 @@ class TestCreateRestore(TestRestores):
class TestShowRestore(TestRestores):
def setUp(self):
super(TestShowRestore, self).setUp()
self._restore_info = copy.deepcopy(RESTORE_INFO)
self.restores_mock.get.return_value = restores.Restore(
None, RESTORE_INFO)
None, self._restore_info)
# Command to test
self.cmd = osc_restores.ShowRestore(self.app, None)
@@ -122,13 +125,13 @@ class TestShowRestore(TestRestores):
self.assertEqual(expected_columns, columns)
# Check that data is correct
self.assertEqual(RESTORE_INFO['checkpoint_id'], data[0])
self.assertEqual(RESTORE_INFO['id'], data[1])
self.assertEqual(RESTORE_INFO['parameters'], data[2])
self.assertEqual(RESTORE_INFO['project_id'], data[3])
self.assertEqual(RESTORE_INFO['provider_id'], data[4])
self.assertEqual(RESTORE_INFO['resources_reason'], data[5])
self.assertEqual(RESTORE_INFO['resources_status'], data[6])
self.assertEqual(RESTORE_INFO['restore_auth'], data[7])
self.assertEqual(RESTORE_INFO['restore_target'], data[8])
self.assertEqual(RESTORE_INFO['status'], data[9])
self.assertEqual(self._restore_info['checkpoint_id'], data[0])
self.assertEqual(self._restore_info['id'], data[1])
self.assertEqual(self._restore_info['parameters'], data[2])
self.assertEqual(self._restore_info['project_id'], data[3])
self.assertEqual(self._restore_info['provider_id'], data[4])
self.assertEqual(self._restore_info['resources_reason'], data[5])
self.assertEqual(self._restore_info['resources_status'], data[6])
self.assertEqual(self._restore_info['restore_auth'], data[7])
self.assertEqual(self._restore_info['restore_target'], data[8])
self.assertEqual(self._restore_info['status'], data[9])

View File

@@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from karborclient.osc.v1 import scheduled_operations as osc_so
from karborclient.tests.unit.osc.v1 import fakes
from karborclient.v1 import scheduled_operations
@@ -25,7 +27,7 @@ SCHEDULEDOPERATION_INFO = {
"operation_definition": {
"provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
"plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398"
},
},
"enabled": 1
}
@@ -41,9 +43,10 @@ class TestScheduledOperations(fakes.TestDataProtection):
class TestListScheduledOperations(TestScheduledOperations):
def setUp(self):
super(TestListScheduledOperations, self).setUp()
self.so_mock.list.return_value = \
[scheduled_operations.ScheduledOperation(None,
SCHEDULEDOPERATION_INFO)]
self.so_mock.list.return_value = [
scheduled_operations.ScheduledOperation(
None, copy.deepcopy(SCHEDULEDOPERATION_INFO))
]
# Command to test
self.cmd = osc_so.ListScheduledOperations(self.app, None)
@@ -80,7 +83,7 @@ class TestCreateScheduledOperation(TestScheduledOperations):
def setUp(self):
super(TestCreateScheduledOperation, self).setUp()
self.so_mock.create.return_value = scheduled_operations.\
ScheduledOperation(None, SCHEDULEDOPERATION_INFO)
ScheduledOperation(None, copy.deepcopy(SCHEDULEDOPERATION_INFO))
# Command to test
self.cmd = osc_so.CreateScheduledOperation(self.app, None)
@@ -114,7 +117,7 @@ class TestDeleteScheduledOperation(TestScheduledOperations):
def setUp(self):
super(TestDeleteScheduledOperation, self).setUp()
self.so_mock.get.return_value = scheduled_operations.\
ScheduledOperation(None, SCHEDULEDOPERATION_INFO)
ScheduledOperation(None, copy.deepcopy(SCHEDULEDOPERATION_INFO))
# Command to test
self.cmd = osc_so.DeleteScheduledOperation(self.app, None)
@@ -135,8 +138,9 @@ class TestDeleteScheduledOperation(TestScheduledOperations):
class TestShowScheduledOperation(TestScheduledOperations):
def setUp(self):
super(TestShowScheduledOperation, self).setUp()
self._schedop_info = copy.deepcopy(SCHEDULEDOPERATION_INFO)
self.so_mock.get.return_value = scheduled_operations.\
ScheduledOperation(None, SCHEDULEDOPERATION_INFO)
ScheduledOperation(None, self._schedop_info)
# Command to test
self.cmd = osc_so.ShowScheduledOperation(self.app, None)
@@ -157,11 +161,10 @@ class TestShowScheduledOperation(TestScheduledOperations):
self.assertEqual(expected_columns, columns)
# Check that data is correct
self.assertEqual(SCHEDULEDOPERATION_INFO['description'], data[0])
self.assertEqual(SCHEDULEDOPERATION_INFO['enabled'], data[1])
self.assertEqual(SCHEDULEDOPERATION_INFO['id'], data[2])
self.assertEqual(SCHEDULEDOPERATION_INFO['name'], data[3])
self.assertEqual(SCHEDULEDOPERATION_INFO['operation_definition'],
data[4])
self.assertEqual(SCHEDULEDOPERATION_INFO['operation_type'], data[5])
self.assertEqual(SCHEDULEDOPERATION_INFO['trigger_id'], data[6])
self.assertEqual(self._schedop_info['description'], data[0])
self.assertEqual(self._schedop_info['enabled'], data[1])
self.assertEqual(self._schedop_info['id'], data[2])
self.assertEqual(self._schedop_info['name'], data[3])
self.assertEqual(self._schedop_info['operation_definition'], data[4])
self.assertEqual(self._schedop_info['operation_type'], data[5])
self.assertEqual(self._schedop_info['trigger_id'], data[6])

View File

@@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from karborclient.osc.v1 import triggers as osc_triggers
from karborclient.tests.unit.osc.v1 import fakes
from karborclient.v1 import triggers
@@ -41,7 +43,7 @@ class TestListTriggers(TestTriggers):
def setUp(self):
super(TestListTriggers, self).setUp()
self.triggers_mock.list.return_value = [triggers.Trigger(
None, TRIGGER_INFO)]
None, copy.deepcopy(TRIGGER_INFO))]
# Command to test
self.cmd = osc_triggers.ListTriggers(self.app, None)
@@ -75,7 +77,7 @@ class TestCreateTrigger(TestTriggers):
def setUp(self):
super(TestCreateTrigger, self).setUp()
self.triggers_mock.create.return_value = triggers.Trigger(
None, TRIGGER_INFO)
None, copy.deepcopy(TRIGGER_INFO))
# Command to test
self.cmd = osc_triggers.CreateTrigger(self.app, None)
@@ -114,9 +116,9 @@ class TestUpdateTrigger(TestTriggers):
def setUp(self):
super(TestUpdateTrigger, self).setUp()
self.triggers_mock.get.return_value = triggers.Trigger(
None, TRIGGER_INFO)
None, copy.deepcopy(TRIGGER_INFO))
self.triggers_mock.update.return_value = triggers.Trigger(
None, TRIGGER_INFO)
None, copy.deepcopy(TRIGGER_INFO))
# Command to test
self.cmd = osc_triggers.UpdateTrigger(self.app, None)
@@ -140,7 +142,7 @@ class TestDeleteTrigger(TestTriggers):
def setUp(self):
super(TestDeleteTrigger, self).setUp()
self.triggers_mock.get.return_value = triggers.Trigger(
None, TRIGGER_INFO)
None, copy.deepcopy(TRIGGER_INFO))
# Command to test
self.cmd = osc_triggers.DeleteTrigger(self.app, None)
@@ -160,8 +162,9 @@ class TestDeleteTrigger(TestTriggers):
class TestShowTrigger(TestTriggers):
def setUp(self):
super(TestShowTrigger, self).setUp()
self._trigger_info = copy.deepcopy(TRIGGER_INFO)
self.triggers_mock.get.return_value = triggers.Trigger(
None, TRIGGER_INFO)
None, self._trigger_info)
# Command to test
self.cmd = osc_triggers.ShowTrigger(self.app, None)
@@ -180,7 +183,7 @@ class TestShowTrigger(TestTriggers):
self.assertEqual(expected_columns, columns)
# Check that data is correct
self.assertEqual(TRIGGER_INFO['id'], data[0])
self.assertEqual(TRIGGER_INFO['name'], data[1])
self.assertEqual(TRIGGER_INFO['properties'], data[2])
self.assertEqual(TRIGGER_INFO['type'], data[3])
self.assertEqual(self._trigger_info['id'], data[0])
self.assertEqual(self._trigger_info['name'], data[1])
self.assertEqual(self._trigger_info['properties'], data[2])
self.assertEqual(self._trigger_info['type'], data[3])