Exemple #1
0
    def test_load_tron_service_config_empty(self, mock_read_file,
                                            mock_read_service_info):
        mock_read_file.return_value = {}
        mock_read_service_info.return_value = {}
        soa_dir = '/other/services'

        with pytest.raises(NoConfigurationForServiceError):
            tron_tools.load_tron_service_config('foo', 'dev', soa_dir=soa_dir)

        assert mock_read_file.call_count == 1
        assert mock_read_service_info.call_count == 1
        mock_read_file.assert_has_calls(
            [mock.call('/other/services/tron/dev/foo.yaml')])
        mock_read_service_info.assert_has_calls(
            [mock.call('foo', 'tron-dev', soa_dir)])
Exemple #2
0
 def test_load_tron_service_config(self, mock_load_tron_yaml):
     mock_load_tron_yaml.return_value = {
         '_template': {'actions': {'action1': {}}},
         'extra': 'data',
         'jobs': {
             'job1': {
                 'actions': {'action1': {}},
             },
         },
     }
     job_configs, extra_config = tron_tools.load_tron_service_config(
         service='service', cluster='test-cluster', load_deployments=False, soa_dir='fake',
     )
     assert job_configs == [
         tron_tools.TronJobConfig(
             name='job1',
             service='service',
             cluster='test-cluster',
             config_dict={'actions': {'action1': {}}},
             load_deployments=False,
             soa_dir='fake',
         ),
     ]
     assert extra_config == {'extra': 'data'}  # template filtered out
     mock_load_tron_yaml.assert_called_once_with(
         service='service',
         cluster='test-cluster',
         soa_dir='fake',
     )
Exemple #3
0
    def test_load_tron_from_tron_dir(self, mock_job_config, mock_read_file,
                                     mock_read_service_info):
        job_1 = mock.Mock()
        job_2 = mock.Mock()
        config_dict = {
            'value_a': 20,
            'other_value': 'string',
            'jobs': [job_1, job_2],
        }
        mock_read_service_info.return_value = {}
        mock_read_file.return_value = config_dict
        soa_dir = '/other/services'

        job_configs, extra_config = tron_tools.load_tron_service_config(
            'foo', 'dev', soa_dir=soa_dir)
        assert extra_config == {
            'value_a': 20,
            'other_value': 'string',
        }
        assert job_configs == [mock_job_config.return_value for i in range(2)]
        assert mock_job_config.call_args_list == [
            mock.call(job_1, soa_dir),
            mock.call(job_2, soa_dir),
        ]
        assert mock_read_service_info.call_count == 1
        assert mock_read_file.call_count == 1
        mock_read_service_info.assert_has_calls(
            [mock.call('foo', 'tron-dev', '/other/services')])
        mock_read_file.assert_has_calls(
            [mock.call('/other/services/tron/dev/foo.yaml')])
Exemple #4
0
    def test_load_tron_service_config_jobs_list(self, mock_load_yaml):
        job_1 = {'name': 'job_1'}
        config_dict = {
            'jobs': [job_1],
        }
        mock_load_yaml.return_value = config_dict
        soa_dir = '/other/services'

        job_configs, extra_config = tron_tools.load_tron_service_config(
            service='foo',
            cluster='dev',
            load_deployments=True,
            soa_dir=soa_dir,
        )
        assert extra_config == {}
        assert job_configs == [
            tron_tools.TronJobConfig(
                name='job_1',
                config_dict=job_1,
                cluster='dev',
                load_deployments=True,
                service='foo',
                soa_dir=soa_dir,
            ),
        ]
Exemple #5
0
 def test_load_tron_service_config(self, mock_load_tron_yaml):
     mock_load_tron_yaml.return_value = {
         "_template": {
             "actions": {
                 "action1": {}
             }
         },
         "job1": {
             "actions": {
                 "action1": {}
             }
         },
     }
     job_configs = tron_tools.load_tron_service_config(
         service="service",
         cluster="test-cluster",
         load_deployments=False,
         soa_dir="fake",
     )
     assert job_configs == [
         tron_tools.TronJobConfig(
             name="job1",
             service="service",
             cluster="test-cluster",
             config_dict={"actions": {
                 "action1": {}
             }},
             load_deployments=False,
             soa_dir="fake",
         )
     ]
     mock_load_tron_yaml.assert_called_once_with(service="service",
                                                 cluster="test-cluster",
                                                 soa_dir="fake")
Exemple #6
0
def test_load_tron_service_config_interprets_correctly(mock_load_tron_yaml):
    mock_load_tron_yaml.return_value = {
        'extra': 'data',
        'jobs': [{
            'job1': {
                'actions': [{
                    'action1': {}
                }],
            },
        }],
    }
    actual1, actual2 = tron_tools.load_tron_service_config(
        service='service',
        cluster='test-cluster',
        load_deployments=False,
        soa_dir='fake',
    )
    expected1 = [
        tron_tools.TronJobConfig(
            service='service',
            cluster='test-cluster',
            config_dict={'job1': {
                'actions': [{
                    'action1': {}
                }]
            }},
            load_deployments=False,
            soa_dir='fake',
        ),
    ]
    expected2 = {'extra': 'data'}
    assert actual1 == expected1
    assert actual2 == expected2
Exemple #7
0
    def test_load_tron_service_config_jobs_none(self, mock_load_yaml):
        mock_load_yaml.return_value = {'jobs': None}
        soa_dir = '/other/services'

        jc, _ = tron_tools.load_tron_service_config('foo',
                                                    'dev',
                                                    soa_dir=soa_dir)
        assert jc == []
Exemple #8
0
    def test_load_tron_service_config_jobs_none(self, mock_read_file,
                                                mock_read_service_info):
        mock_read_file.return_value = {'jobs': None}
        mock_read_service_info.return_value = None
        soa_dir = '/other/services'

        jc, _ = tron_tools.load_tron_service_config('foo',
                                                    'dev',
                                                    soa_dir=soa_dir)
        assert jc == []
Exemple #9
0
 def test_load_tron_service_config_empty(self, mock_load_tron_yaml):
     mock_load_tron_yaml.return_value = {}
     job_configs = tron_tools.load_tron_service_config(
         service="service",
         cluster="test-cluster",
         load_deployments=False,
         soa_dir="fake",
     )
     assert job_configs == []
     mock_load_tron_yaml.assert_called_once_with(service="service",
                                                 cluster="test-cluster",
                                                 soa_dir="fake")
Exemple #10
0
 def test_load_tron_service_config_empty(
         self, mock_read_extra_service_information):
     mock_read_extra_service_information.return_value = {}
     job_configs = tron_tools.load_tron_service_config(
         service="service",
         cluster="test-cluster",
         load_deployments=False,
         soa_dir="fake",
     )
     assert job_configs == []
     mock_read_extra_service_information.assert_called_once_with(
         service_name="service",
         extra_info="tron-test-cluster",
         soa_dir="fake")
Exemple #11
0
    def test_load_tron_from_service_dir(self, mock_job_config, mock_read_file,
                                        mock_read_service_info):
        job_1 = mock.Mock()
        job_2 = mock.Mock()
        config_dict = {
            'value_a': 20,
            'other_value': 'string',
            'jobs': [job_1, job_2],
        }
        mock_read_service_info.return_value = config_dict
        mock_read_file.return_value = {}
        soa_dir = '/other/services'

        job_configs, extra_config = tron_tools.load_tron_service_config(
            service='foo',
            cluster='dev',
            load_deployments=True,
            soa_dir=soa_dir,
        )
        assert extra_config == {
            'value_a': 20,
            'other_value': 'string',
        }
        assert job_configs == [mock_job_config.return_value for i in range(2)]
        assert mock_job_config.call_args_list == [
            mock.call(config_dict=job_1,
                      cluster='dev',
                      service='foo',
                      load_deployments=True,
                      soa_dir=soa_dir),
            mock.call(config_dict=job_2,
                      cluster='dev',
                      service='foo',
                      load_deployments=True,
                      soa_dir=soa_dir),
        ]
        assert mock_read_service_info.call_count == 1
        assert mock_read_file.call_count == 0
        mock_read_service_info.assert_has_calls(
            [mock.call('foo', 'tron-dev', '/other/services')])