Esempio n. 1
0
    def test_validate_complete_config_passes(
        self,
        mock_run,
        mock_format_job,
        mock_load_config,
    ):
        job_config = mock.Mock(spec_set=tron_tools.TronJobConfig)
        job_config.get_name.return_value = 'my_job'
        job_config.validate = mock.Mock(return_value=[])
        mock_load_config.return_value = ([job_config], {})
        mock_format_job.return_value = {}
        mock_run.return_value = mock.Mock(
            returncode=0,
            stdout='OK',
            stderr='',
        )

        result = tron_tools.validate_complete_config(
            'a_service',
            'a-cluster',
        )

        assert mock_load_config.call_count == 1
        assert mock_format_job.call_count == 1
        assert mock_run.call_count == 1
        assert not result
Esempio n. 2
0
    def test_validate_complete_config_tronfig_fails(
        self,
        mock_run,
        mock_format_job,
        mock_load_config,
    ):
        job_config = mock.Mock(spec_set=tron_tools.TronJobConfig)
        job_config.validate = mock.Mock(return_value=[])
        mock_load_config.return_value = ([job_config], {})
        mock_format_job.return_value = {}
        mock_run.return_value = mock.Mock(
            returncode=1,
            stdout='tronfig error',
            stderr='',
        )

        result = tron_tools.validate_complete_config(
            'a_service',
            'a-cluster',
        )

        assert mock_load_config.call_count == 1
        assert mock_format_job.call_count == 1
        assert mock_run.call_count == 1
        assert result == ['tronfig error']
Esempio n. 3
0
    def test_validate_complete_config_non_job_keys(
        self,
        mock_run,
        mock_format_job,
        mock_load_config,
        namespace,
        valid,
    ):
        job_config = mock.Mock(spec_set=tron_tools.TronJobConfig)
        job_config.get_name.return_value = 'my_job'
        job_config.validate = mock.Mock(return_value=[])
        mock_load_config.return_value = ([job_config], {
            'time_zone': 'US/Pacific'
        })
        mock_format_job.return_value = {}

        result = tron_tools.validate_complete_config(
            namespace,
            'a-cluster',
        )

        assert mock_load_config.call_count == 1
        if not valid:
            assert len(result) == 1
            assert 'time_zone' in result[0]
Esempio n. 4
0
    def test_validate_complete_config_paasta_validate_fails(
            self, mock_run, mock_format_job, mock_load_config):
        job_config = mock.Mock(spec_set=tron_tools.TronJobConfig)
        job_config.get_name.return_value = "my_job"
        job_config.validate = mock.Mock(return_value=["some error"])
        mock_load_config.return_value = [job_config]

        result = tron_tools.validate_complete_config("a_service", "a-cluster")

        assert mock_load_config.call_count == 1
        assert mock_format_job.call_count == 0
        assert mock_run.call_count == 0
        assert result == ["some error"]
Esempio n. 5
0
    def test_validate_complete_config_passes(self, mock_run, mock_format_job,
                                             mock_load_config):
        job_config = mock.Mock(spec_set=tron_tools.TronJobConfig)
        job_config.get_name.return_value = "my_job"
        job_config.validate = mock.Mock(return_value=[])
        mock_load_config.return_value = [job_config]
        mock_format_job.return_value = {}
        mock_run.return_value = mock.Mock(returncode=0, stdout="OK", stderr="")

        result = tron_tools.validate_complete_config("a_service", "a-cluster")

        assert mock_load_config.call_count == 1
        assert mock_format_job.call_count == 1
        assert mock_run.call_count == 1
        assert not result
Esempio n. 6
0
def validate_tron_namespace(service, cluster, soa_dir, tron_dir=False):
    if tron_dir:
        display_name = f'{cluster}/{service}.yaml'
    else:
        display_name = f'tron-{cluster}.yaml'

    messages = validate_complete_config(service, cluster, soa_dir)
    returncode = len(messages) == 0

    if messages:
        paasta_print(invalid_tron_namespace(cluster, "\n  ".join(messages), display_name))
    else:
        paasta_print(valid_tron_namespace(cluster, display_name))

    return returncode
Esempio n. 7
0
    def test_validate_complete_config_paasta_validate_fails(
        self,
        mock_run,
        mock_format_job,
        mock_load_config,
    ):
        job_config = mock.Mock(spec_set=tron_tools.TronJobConfig)
        job_config.validate = mock.Mock(return_value=['some error'])
        mock_load_config.return_value = ([job_config], {})

        result = tron_tools.validate_complete_config(
            'a_service',
            'a-cluster',
        )

        assert mock_load_config.call_count == 1
        assert mock_format_job.call_count == 0
        assert mock_run.call_count == 0
        assert result == ['some error']