def test_bind(self, *mocks): mock_agent = mocks[0] mock_context = mocks[1] mock_factory = mocks[2] mock_bindings = mocks[3] mock_task_status = mocks[4] mock_uuid = mocks[5] consumer = {'id': '1234'} mock_consumer_manager = Mock() mock_consumer_manager.get_consumer = Mock(return_value=consumer) mock_factory.consumer_manager = Mock(return_value=mock_consumer_manager) binding = {} mock_bind_manager = Mock() mock_bind_manager.get_bind = Mock(return_value=binding) mock_bind_manager.action_pending = Mock() mock_factory.consumer_bind_manager = Mock(return_value=mock_bind_manager) agent_bindings = [] mock_bindings.return_value = agent_bindings task_id = '2345' mock_context.return_value = {} mock_uuid.return_value = task_id # test manager repo_id = '100' distributor_id = '200' options = {} agent_manager = AgentManager() agent_manager.bind(consumer['id'], repo_id, distributor_id, options) # validations task_tags = [ tags.resource_tag(tags.RESOURCE_CONSUMER_TYPE, consumer['id']), tags.resource_tag(tags.RESOURCE_REPOSITORY_TYPE, repo_id), tags.resource_tag(tags.RESOURCE_REPOSITORY_DISTRIBUTOR_TYPE, distributor_id), tags.action_tag(tags.ACTION_AGENT_BIND) ] mock_consumer_manager.get_consumer.assert_called_with(consumer['id']) mock_bind_manager.get_bind.assert_called_with(consumer['id'], repo_id, distributor_id) mock_bindings.assert_called_with([binding]) mock_context.assert_called_with( consumer, task_id=task_id, action='bind', consumer_id=consumer['id'], repo_id=repo_id, distributor_id=distributor_id) mock_task_status.assert_called_with(task_id, 'agent', tags=task_tags) mock_agent.bind.assert_called_with(mock_context.return_value, agent_bindings, options) mock_bind_manager.action_pending.assert_called_with( consumer['id'], repo_id, distributor_id, Bind.Action.BIND, task_id)
def test_unregistered(self, mock_agent, mock_context, mock_factory, mock_delete_queue): url = 'test-url' queue = 'test-queue' consumer_id = 'abc' consumer = {'id': consumer_id} mock_consumer_manager = Mock() mock_consumer_manager.get_consumer = Mock(return_value=consumer) mock_factory.consumer_manager = Mock(return_value=mock_consumer_manager) mock_context.return_value = Mock(url=url, address=queue) # test manager agent_manager = AgentManager() agent_manager.unregister(consumer_id) # validations task_tags = [ tags.resource_tag(tags.ACTION_AGENT_QUEUE_DELETE, consumer['id']) ] mock_context.assert_called_with(consumer) mock_agent.unregister.assert_called_with(mock_context.return_value) mock_delete_queue.apply_async.assert_called_once_with( args=[url, queue, consumer_id], countdown=QUEUE_DELETE_DELAY, tags=task_tags)
def test_cancel(self, agent, context, mock_factory): consumer = {'id': 'xyz'} mock_consumer_manager = Mock() mock_consumer_manager.get_consumer = Mock(return_value=consumer) mock_factory.consumer_manager = Mock( return_value=mock_consumer_manager) mock_context = Mock() mock_context.uuid = 'test-uuid' mock_context.url = 'http://broker.com' context.return_value = mock_context mock_agent = Mock() agent.return_value = mock_agent # test manager task_id = '1234' agent_manager = AgentManager() consumer_id = 'abc' agent_manager.cancel_request(consumer_id, task_id) # validations mock_agent.cancel.assert_called_with(mock_context, task_id)
def test_uninstall_content(self, *mocks): mock_agent = mocks[0] mock_context = mocks[1] mock_factory = mocks[2] mock_get_profiler = mocks[3] mock_get_profiled_consumer = mocks[4] mock_task_status = mocks[5] mock_uuid = mocks[6] unit = {'type_id': 'xyz', 'unit_key': {}} consumer = {'id': '1234'} mock_consumer_manager = Mock() mock_consumer_manager.get_consumer = Mock(return_value=consumer) mock_factory.consumer_manager = Mock( return_value=mock_consumer_manager) mock_get_profiled_consumer.return_value = consumer mock_profiler = Mock() mock_profiler.uninstall_units = Mock(return_value=[unit]) mock_get_profiler.return_value = (mock_profiler, {}) task_id = '2345' mock_context.return_value = {} mock_uuid.return_value = task_id # test manager options = {'a': 1} agent_manager = AgentManager() agent_manager.uninstall_content(consumer['id'], [unit], options) # validations task_tags = [ tags.resource_tag(tags.RESOURCE_CONSUMER_TYPE, consumer['id']), tags.action_tag(tags.ACTION_AGENT_UNIT_UNINSTALL) ] mock_consumer_manager.get_consumer.assert_called_with(consumer['id']) mock_context.assert_called_with(consumer, task_id=task_id, consumer_id=consumer['id']) mock_task_status.assert_called_with(task_id=task_id, worker_name='agent', tags=task_tags) mock_profiler.uninstall_units.assert_called_with( consumer, [unit], options, {}, ANY) mock_agent.uninstall.assert_called_with(mock_context.return_value, [unit], options) mock_factory.consumer_history_manager( ).record_event.assert_called_with(consumer['id'], 'content_unit_uninstalled', {'units': [unit]})
def test_update_content(self, *mocks): mock_agent = mocks[0] mock_context = mocks[1] mock_factory = mocks[2] mock_get_profiler = mocks[3] mock_get_profiled_consumer = mocks[4] mock_task_status = mocks[5] mock_uuid = mocks[6] unit = {'type_id': 'xyz', 'unit_key': {}} consumer = {'id': '1234'} mock_consumer_manager = Mock() mock_consumer_manager.get_consumer = Mock(return_value=consumer) mock_factory.consumer_manager = Mock(return_value=mock_consumer_manager) mock_get_profiled_consumer.return_value = consumer mock_profiler = Mock() mock_profiler.update_units = Mock(return_value=[unit]) mock_get_profiler.return_value = (mock_profiler, {}) task_id = '2345' mock_task = TaskStatus(task_id=task_id) mock_task_status.save = Mock(return_value=mock_task) mock_context.return_value = {} mock_uuid.return_value = task_id # test manager options = {'a': 1} agent_manager = AgentManager() task = agent_manager.update_content(consumer['id'], [unit], options) # validations task_tags = [ tags.resource_tag(tags.RESOURCE_CONSUMER_TYPE, consumer['id']), tags.action_tag(tags.ACTION_AGENT_UNIT_UPDATE) ] mock_consumer_manager.get_consumer.assert_called_with(consumer['id']) mock_context.assert_called_with(consumer, task_id=task_id, consumer_id=consumer['id']) self.assertEqual(task['task_id'], task_id) self.assertEqual(task['worker_name'], 'agent') self.assertEqual(task['tags'], task_tags) mock_profiler.update_units.assert_called_with(consumer, [unit], options, {}, ANY) mock_agent.update.assert_called_with(mock_context.return_value, [unit], options)
def test_unregistered(self, mock_agent, mock_context, mock_factory): consumer = {'id': 'xyz'} mock_consumer_manager = Mock() mock_consumer_manager.get_consumer = Mock(return_value=consumer) mock_factory.consumer_manager = Mock(return_value=mock_consumer_manager) mock_context.return_value = {} # test manager agent_manager = AgentManager() consumer_id = 'abc' agent_manager.unregistered(consumer_id) # validations mock_context.assert_called_with(consumer) mock_agent.unregistered.assert_called_with(mock_context.return_value)