def test_serializer(self): self.job.worker_options['sentry'] = Client() serialized = Job.serializer(self.job) self.assertEqual(serialized['id'], self.job.id) self.assertEqual(serialized['finished'], self.job.finished) self.assertEqual(serialized['owner'], self.job.owner) self.assertEqual(serialized['name'], self.job.name) self.assertEqual(serialized['results'], []) self.assertNotIn('worker_options', serialized) self.assertNotIn('docker', serialized) self.assertNotIn('api', serialized) self.job.tasks.append('tox') self.job.results['tox'] = Result('tox') serialized = Job.serializer(self.job) self.assertEqual(serialized['setup_results'], []) self.assertEqual(serialized['results'], [{'task': 'tox', 'pending': True}]) result = ProcessResult('tox') result.out = 'Success' result.return_code = 0 self.job.results['tox'].update_result(result) self.assertEqual(serialized['results'], [{'task': 'tox', 'pending': False, 'log': 'Success', 'return_code': 0, 'succeeded': True}]) self.assertEqual(serialized['setup_results'], [])
def test_update_result_failure(self): result = ProcessResult('tox') result.out = 'Oh snap' result.return_code = 1 failure = Result('tox') failure.update_result(result) self.assertFalse(failure.succeeded) self.assertEquals(failure.log, 'Oh snap') self.assertEquals(failure.task, 'tox')
def test_update_result_success(self): result = ProcessResult('tox') result.out = 'Success' result.return_code = 0 success = Result('tox') success.update_result(result) self.assertTrue(success.succeeded) self.assertEquals(success.log, 'Success') self.assertEquals(success.task, 'tox')
def test_succeeded(self): result = ProcessResult('tox') self.assertIsNone(result.succeeded) result.return_code = 0 self.assertTrue(result.succeeded) result.return_code = 1 self.assertFalse(result.succeeded) result.return_code = 127 self.assertFalse(result.succeeded)
def test_run_build_should_call_after_failure_on_failed_build(mocker): result = ProcessResult('tox') result.return_code = 1 mocker.patch('frigg_worker.builds.Build.clone_repo') mocker.patch('frigg_worker.builds.Build.run_task') mocker.patch('frigg_worker.builds.Build.report_run') mocker.patch('frigg_worker.builds.Build.succeeded', False) mocker.patch('frigg_worker.jobs.build_settings', return_value=BUILD_SETTINGS_WITH_AFTER_TASKS) mock_run_after = mocker.patch('frigg_worker.builds.Build.run_after_task') build = Build(1, DATA, Docker(), WORKER_OPTIONS) build.run_tests() mock_run_after.assert_called_once_with('failure_task')
def test_serializer_with_setup_and_tasks(self): self.job.worker_options['sentry'] = Client() self.job.tasks.append('tox') self.job.setup_tasks.append('apt-get install nginx') self.job.results['tox'] = Result('tox') self.job.setup_results['apt-get install nginx'] = Result('apt-get install nginx') serialized = Job.serializer(self.job) self.assertEqual(serialized['setup_results'], [{'task': 'apt-get install nginx', 'pending': True}]) self.assertEqual(serialized['results'], [{'task': 'tox', 'pending': True}]) result = ProcessResult('tox') result.out = 'Success' result.return_code = 0 self.job.results['tox'].update_result(result) setup_result = ProcessResult('apt-get install nginx') setup_result.out = 'Success' setup_result.return_code = 0 self.job.setup_results['apt-get install nginx'].update_result(setup_result) self.assertEqual(serialized['results'], [{'task': 'tox', 'pending': False, 'log': 'Success', 'return_code': 0, 'succeeded': True}]) self.assertEqual(serialized['setup_results'], [{'task': 'apt-get install nginx', 'pending': False, 'log': 'Success', 'return_code': 0, 'succeeded': True}]) self.assertIn('worker_host', serialized)
import unittest from random import randint import six from docker.errors import DockerFileNotFoundError, DockerWrapperBaseError from docker.helpers import ProcessResult from docker.manager import Docker try: from unittest import mock except ImportError: import mock unknown_error_result = ProcessResult('test') unknown_error_result.err = 'Unknown error' class DockerManagerTests(unittest.TestCase): """ This test class should contain tests for the docker manager that does not invoke docker. """ def test__get_working_directory(self): self.assertEqual(Docker._get_working_directory('directory'), '~/directory') self.assertEqual(Docker._get_working_directory('/absolute/path'), '/absolute/path') self.assertEqual(Docker._get_working_directory('~/home/path'), '~/home/path') @mock.patch('docker.manager.Docker.stop') @mock.patch('docker.manager.Docker.start')
import unittest from random import randint import six from docker.errors import DockerFileNotFoundError, DockerWrapperBaseError from docker.helpers import ProcessResult from docker.manager import Docker try: from unittest import mock except ImportError: import mock unknown_error_result = ProcessResult('test') unknown_error_result.err = 'Unknown error' class DockerManagerTests(unittest.TestCase): """ This test class should contain tests for the docker manager that does not invoke docker. """ def test__get_working_directory(self): self.assertEqual(Docker._get_working_directory('directory'), '~/directory') self.assertEqual(Docker._get_working_directory('/absolute/path'), '/absolute/path') self.assertEqual(Docker._get_working_directory('~/home/path'), '~/home/path')
def test_start_unknown_service(self, mock_logger_warning): failed_result = ProcessResult('tox') failed_result.return_code = 1 with mock.patch('docker.manager.Docker.run', lambda *x: failed_result): self.build.start_services() mock_logger_warning.assert_called_with('Service "redis-server" did not start.')