def test_run(self): # Setup sim = TaskSimulator() sim.install(self.bindings) fake_progress_report = {'steps': [('name', 'status')], 'details': {}} sim.add_task_state('1', STATE_FINISHED, progress_report=fake_progress_report) self.server_mock.request.return_value = 201, POSTPONED_TASK kwargs = { OPTION_CONSUMER_ID.keyword: 'test-consumer', consumer_content.OPTION_CONTENT_TYPE_ID.keyword: 'rpm', consumer_content.OPTION_CONTENT_UNIT.keyword: [] } self.command.run(**kwargs) self.assertEqual(self.server_mock.request.call_count, 1) self.assertEqual(self.server_mock.request.call_args[0][0], 'POST') url = self.server_mock.request.call_args[0][1] self.assertTrue(url.find('test-consumer') > 0) body = json.loads(self.server_mock.request.call_args[0][2]) self.assertEqual(body['units'], [])
def test_run(self): # Setup sim = TaskSimulator() sim.install(self.bindings) fake_progress_report = {"steps": [("name", "status")], "details": {}} sim.add_task_state("1", STATE_FINISHED, progress_report=fake_progress_report) self.server_mock.request.return_value = 201, POSTPONED_TASK kwargs = { OPTION_CONSUMER_ID.keyword: "test-consumer", consumer_content.OPTION_CONTENT_TYPE_ID.keyword: "rpm", consumer_content.OPTION_CONTENT_UNIT.keyword: [], } self.command.run(**kwargs) self.assertEqual(self.server_mock.request.call_count, 1) self.assertEqual(self.server_mock.request.call_args[0][0], "POST") url = self.server_mock.request.call_args[0][1] self.assertTrue(url.find("test-consumer") > 0) body = json.loads(self.server_mock.request.call_args[0][2]) self.assertEqual(body["units"], [])
def test_run(self): # Setup sim = TaskSimulator() sim.install(self.bindings) fake_progress_report = {'steps': [('name', 'status')], 'details': {}} sim.add_task_state('1', STATE_FINISHED, progress_report=fake_progress_report) self.server_mock.request.return_value = 201, POSTPONED_TASK kwargs = {OPTION_CONSUMER_ID.keyword: 'test-consumer', consumer_content.OPTION_CONTENT_TYPE_ID.keyword: 'rpm', consumer_content.OPTION_CONTENT_UNIT.keyword: []} self.command.run(**kwargs) self.assertEqual(self.server_mock.request.call_count, 1) self.assertEqual(self.server_mock.request.call_args[0][0], 'POST') url = self.server_mock.request.call_args[0][1] self.assertTrue(url.find('test-consumer') > 0) body = json.loads(self.server_mock.request.call_args[0][2]) self.assertEqual(body['units'], [])
def test_postponed_task(self): """ Task Count: 1 Statuses: Postponed (test will eventually run it) Results: 1 Success """ # Setup sim = TaskSimulator() sim.install(self.bindings) # Remain postponed for two polls and then runs successfully sim.add_task_state('1', STATE_WAITING, response=RESPONSE_POSTPONED) sim.add_task_state('1', STATE_WAITING, response=RESPONSE_POSTPONED) states = [STATE_RUNNING, STATE_FINISHED] sim.add_task_states('1', states) # Test task_list = sim.get_all_tasks().response_body completed_tasks = self.command.poll(task_list, {}) # Verify self.assertTrue(isinstance(completed_tasks, list)) self.assertEqual(1, len(completed_tasks)) expected_tags = ['abort', 'delayed-spinner', 'delayed-spinner', 'running-spinner', 'running-spinner', 'succeeded'] self.assertEqual(expected_tags, self.prompt.get_write_tags())
def test_get_tasks_to_poll_duplicate_tasks(self): sim = TaskSimulator() sim.add_task_state('1', STATE_FINISHED) task_list = sim.get_all_tasks().response_body tasks_to_poll = self.command._get_tasks_to_poll([task_list[0], task_list[0]]) self.assertEquals(1, len(tasks_to_poll))
def test_get_tasks_to_poll_duplicate_tasks(self): sim = TaskSimulator() sim.add_task_state('1', STATE_FINISHED) task_list = sim.get_all_tasks().response_body tasks_to_poll = self.command._get_tasks_to_poll( [task_list[0], task_list[0]]) self.assertEquals(1, len(tasks_to_poll))
def test_get_tasks_to_poll_source_task_list(self): sim = TaskSimulator() sim.add_task_state('1', STATE_FINISHED) sim.add_task_state('2', STATE_FINISHED) task_list = sim.get_all_tasks().response_body source_task = task_list[0] nested_task = task_list[1] source_task.spawned_tasks = [nested_task] tasks_to_poll = self.command._get_tasks_to_poll([source_task]) self.assertEquals(2, len(tasks_to_poll))
def test_poll_background(self): # Setup sim = TaskSimulator() sim.add_task_state('1', STATE_FINISHED) # Test task_list = sim.get_all_tasks().response_body result = self.command.poll(task_list, {FLAG_BACKGROUND.keyword : True}) # Verify self.assertEqual(result, RESULT_BACKGROUND)
def test_poll_background(self): # Setup sim = TaskSimulator() sim.add_task_state('1', STATE_FINISHED) # Test task_list = sim.get_all_tasks().response_body result = self.command.poll(task_list, {FLAG_BACKGROUND.keyword: True}) # Verify self.assertEqual(result, RESULT_BACKGROUND)
def test_install(self): # Setup sim = TaskSimulator() sim.install(self.bindings) progress_report = {"steps": [], "details": {}} final_task = sim.add_task_state("TASK123", STATE_FINISHED) final_task.progress = progress_report final_task.result = TASK["result"] command = package.YumConsumerPackageInstallCommand(self.context) self.server_mock.request = Mock(side_effect=Request("install")) # Test args = { "consumer-id": "xyz", "name": ["zsh", "fail-test"], "no-commit": False, "import-keys": False, "reboot": False, } command.run(**args) # Verify passed = self.server_mock.request.call_args[0] self.assertEqual("POST", passed[0])
def test_update(self): # Setup sim = TaskSimulator() sim.install(self.bindings) progress_report = {'steps': [], 'details': {}} final_task = sim.add_task_state('TASK123', STATE_FINISHED) final_task.progress = progress_report final_task.result = TASK['result'] command = package.YumConsumerPackageUpdateCommand(self.context) self.server_mock.request = Mock(side_effect=Request('update')) # Test args = { 'consumer-id': 'xyz', 'name': ['zsh'], 'no-commit': False, 'import-keys': False, 'reboot': False, 'all': False, } command.run(**args) # Verify passed = self.server_mock.request.call_args[0] self.assertEqual('POST', passed[0])
def test_run(self, mock_poll): # Setup data = {OPTION_REPO_ID.keyword: "test-repo"} sim = TaskSimulator() sim.add_task_state("123", STATE_FINISHED) mock_binding_delete = mock.MagicMock().delete mock_binding_delete.return_value = sim.get_all_tasks() self.bindings.repo.delete = mock_binding_delete # Test self.command.run(**data) # Verify self.assertEqual(1, mock_binding_delete.call_count) self.assertEqual("test-repo", mock_binding_delete.call_args[0][0]) self.assertEqual(1, mock_poll.call_count)
def test_keyboard_interrupt(self): # Setup mock_poll_call = mock.MagicMock()._poll_task mock_poll_call.side_effect = KeyboardInterrupt() self.command._poll_task = mock_poll_call sim = TaskSimulator() sim.install(self.bindings) sim.add_task_state('1', STATE_WAITING) # Test task_list = sim.get_all_tasks().response_body result = self.command.poll(task_list, {}) # Verify self.assertEqual(result, RESULT_ABORTED) self.assertEqual(['abort'], self.prompt.get_write_tags())
def test_run(self, mock_poll): # Setup data = { OPTION_REPO_ID.keyword: 'test-repo', } sim = TaskSimulator() sim.add_task_state('123', STATE_FINISHED) mock_binding_delete = mock.MagicMock().delete mock_binding_delete.return_value = sim.get_all_tasks() self.bindings.repo.delete = mock_binding_delete # Test self.command.run(**data) # Verify self.assertEqual(1, mock_binding_delete.call_count) self.assertEqual('test-repo', mock_binding_delete.call_args[0][0]) self.assertEqual(1, mock_poll.call_count)
def test_poll_rejected(self): """ Task Count: 2 Statuses: Rejected (according to server behavior, all will be rejected if one is) """ # Setup sim = TaskSimulator() sim.install(self.bindings) sim.add_task_state('1', STATE_ERROR, response=RESPONSE_REJECTED) sim.add_task_state('2', STATE_ERROR, response=RESPONSE_REJECTED) # Test task_list = sim.get_all_tasks().response_body completed_tasks = self.command.poll(task_list, {}) # Verify self.assertEqual(completed_tasks, RESULT_REJECTED) self.assertEqual(self.prompt.get_write_tags(), ['rejected'])
def test_add_task_state(self): # Setup task_id = "123" state = "running" progress_report = "1/10" # Test sim = TaskSimulator() task = sim.add_task_state(task_id, state, progress_report=progress_report) # Verify self.assertTrue(task_id in sim.ordered_task_ids) self.assertTrue(task_id in sim.tasks_by_id) self.assertTrue(1, len(sim.tasks_by_id[task_id])) self.assertEqual(task.task_id, task_id) self.assertEqual(task.state, state) self.assertEqual(task.progress_report, progress_report)
def test_add_task_state(self): # Setup task_id = '123' state = 'running' response = 'success' progress_report = '1/10' # Test sim = TaskSimulator() task = sim.add_task_state(task_id, state, progress_report=progress_report) # Verify self.assertTrue(task_id in sim.ordered_task_ids) self.assertTrue(task_id in sim.tasks_by_id) self.assertTrue(1, len(sim.tasks_by_id[task_id])) self.assertEqual(task.task_id, task_id) self.assertEqual(task.state, state) self.assertEqual(task.progress_report, progress_report)
def test_add_task_state(self): # Setup task_id = '123' state = 'running' progress_report = '1/10' # Test sim = TaskSimulator() task = sim.add_task_state(task_id, state, progress_report=progress_report) # Verify self.assertTrue(task_id in sim.ordered_task_ids) self.assertTrue(task_id in sim.tasks_by_id) self.assertTrue(1, len(sim.tasks_by_id[task_id])) self.assertEqual(task.task_id, task_id) self.assertEqual(task.state, state) self.assertEqual(task.progress_report, progress_report)