diff --git a/cue/manage/broker.py b/cue/manage/broker.py index 60eceabc..cdd0f519 100644 --- a/cue/manage/broker.py +++ b/cue/manage/broker.py @@ -51,7 +51,17 @@ class BrokerCommands(base.Commands): 'active': status, } broker = objects.Broker(**broker_values) - broker.create_broker(self.context) + new_broker = broker.create_broker(self.context) + + new_broker_table = prettytable.PrettyTable( + ["Broker id", "Broker Name", "Active", "Created Time", + "Updated Time", "Deleted Time", ]) + new_broker_table.add_row( + [new_broker.id, new_broker.name, new_broker.active, + new_broker.created_at, new_broker.updated_at, + new_broker.deleted_at]) + print(new_broker_table) + return new_broker def list(self): """List all the brokers.""" diff --git a/cue/objects/broker.py b/cue/objects/broker.py index bfe9501b..5760426b 100644 --- a/cue/objects/broker.py +++ b/cue/objects/broker.py @@ -47,7 +47,7 @@ class Broker(base.CueObject): broker_values = self.as_dict() db_broker = self.dbapi.create_broker(context, broker_values) - self._from_db_object(self, db_broker) + return self._from_db_object(self, db_broker) def delete_broker(self, context): """Deletes a Broker object for specified broker_id. diff --git a/cue/tests/functional/objects/test_broker.py b/cue/tests/functional/objects/test_broker.py index 17b70b6b..cafba752 100644 --- a/cue/tests/functional/objects/test_broker.py +++ b/cue/tests/functional/objects/test_broker.py @@ -102,11 +102,7 @@ class BrokerObjectsTests(base.FunctionalTestCase): test_broker_dict = func_utils.get_test_broker_dict() new_broker = objects.Broker(**test_broker_dict) self.validate_broker_values(new_broker, test_broker_dict) - new_broker.create_broker(self.context) - # retrieve created broker - broker_query = sqlalchemy_api.model_query( - self.context, models.Broker).filter_by(id=test_broker_dict['id']) - retrieved_broker = broker_query.one() + retrieved_broker = new_broker.create_broker(self.context) self.validate_broker_values(new_broker, retrieved_broker) diff --git a/cue/tests/unit/manage/broker/test_broker.py b/cue/tests/unit/manage/broker/test_broker.py index 480f5158..2207d383 100644 --- a/cue/tests/unit/manage/broker/test_broker.py +++ b/cue/tests/unit/manage/broker/test_broker.py @@ -80,6 +80,35 @@ class TestBroker(test_base.UnitTestCase): mock_add_broker.assert_called_once_with(self.cue_manage_broker.context) + def test_broker_add_check_result(self): + """Test 'cue-manage broker add' return value + + Mocks the cue/objects/broker.py create_broker() call to return a fake + broker object with specific attributes and asserts that broker object + is printed to std_out + """ + broker_name = "test_broker" + active_status = "True" + + fake_broker = FakeBroker('test_id', broker_name, active_status, + 'test_created_at', 'test_updated_at', + 'test_deleted_at') + + with stdout_redirect(StringIO.StringIO()) as new_stdout: + with mock.patch.object( + broker.Broker, 'create_broker') as mock_create_broker: + + mock_create_broker.return_value = fake_broker + + self.cue_manage_broker.add(broker_name, active_status) + + new_stdout.seek(0) + std_out = new_stdout.read().strip() + fake_broker_dict = fake_broker.__dict__ + + for key in fake_broker_dict: + self.assertIn(fake_broker_dict[key], std_out) + def test_broker_list(self): """Test 'cue-manage broker list'