コード例 #1
0
ファイル: test_jobs.py プロジェクト: Taylorsjoy/frigg-worker
    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'], [])
コード例 #2
0
ファイル: test_jobs.py プロジェクト: Taylorsjoy/frigg-worker
 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')
コード例 #3
0
ファイル: test_jobs.py プロジェクト: Taylorsjoy/frigg-worker
 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')
コード例 #4
0
 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)
コード例 #5
0
ファイル: test_builds.py プロジェクト: frigg/frigg-worker
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')
コード例 #6
0
ファイル: test_jobs.py プロジェクト: Taylorsjoy/frigg-worker
    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)
コード例 #7
0
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')
コード例 #8
0
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')
コード例 #9
0
 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.')