def test_main():
    soa_dir = 'anw'
    crit = 1
    services = [('a', 'main'), ('b', 'main'), ('c', 'main')]
    args = mock.Mock(soa_dir=soa_dir, crit=crit, verbose=False)
    with contextlib.nested(
        mock.patch('paasta_tools.check_marathon_services_replication.parse_args',
                   return_value=args, autospec=True),
        mock.patch('paasta_tools.check_marathon_services_replication.get_services_for_cluster',
                   return_value=services, autospec=True),
        mock.patch('paasta_tools.check_marathon_services_replication.check_service_replication',
                   autospec=True),
        mock.patch('paasta_tools.check_marathon_services_replication.load_system_paasta_config',
                   autospec=True),
        mock.patch('paasta_tools.check_marathon_services_replication.marathon_tools.load_marathon_config')
    ) as (
        mock_parse_args,
        mock_get_services_for_cluster,
        mock_check_service_replication,
        mock_load_system_paasta_config,
        mock_load_marathon_config,
    ):
        mock_config = mock.Mock()
        mock_load_marathon_config.return_value = mock_config
        mock_load_system_paasta_config.return_value.get_cluster = mock.Mock(return_value='fake_cluster')
        check_marathon_services_replication.main()
        mock_parse_args.assert_called_once_with()
        mock_get_services_for_cluster.assert_called_once_with(
            cluster='fake_cluster', instance_type='marathon', soa_dir=soa_dir)
def test_main():
    soa_dir = 'anw'
    crit = 1
    services = [('a', 'main'), ('b', 'main'), ('c', 'main')]
    args = mock.Mock(soa_dir=soa_dir, crit=crit, verbose=False)
    with mock.patch(
            'paasta_tools.check_marathon_services_replication.parse_args',
            return_value=args,
            autospec=True,
    ) as mock_parse_args, mock.patch(
            'paasta_tools.check_marathon_services_replication.get_services_for_cluster',
            return_value=services,
            autospec=True,
    ) as mock_get_services_for_cluster, mock.patch(
            'paasta_tools.check_marathon_services_replication.check_service_replication',
            autospec=True,
    ), mock.patch(
            'paasta_tools.check_marathon_services_replication.load_system_paasta_config',
            autospec=True,
    ) as mock_load_system_paasta_config, mock.patch(
            'paasta_tools.check_marathon_services_replication.marathon_tools.load_marathon_config',
            autospec=True,
    ) as mock_load_marathon_config:
        mock_config = mock.Mock()
        mock_load_marathon_config.return_value = mock_config
        mock_load_system_paasta_config.return_value.get_cluster = mock.Mock(
            return_value='fake_cluster')
        check_marathon_services_replication.main()
        mock_parse_args.assert_called_once_with()
        mock_get_services_for_cluster.assert_called_once_with(
            cluster='fake_cluster', instance_type='marathon', soa_dir=soa_dir)
def test_main():
    soa_dir = "anw"
    crit = 1
    services = [("a", "main"), ("b", "main"), ("c", "main")]
    args = mock.Mock(soa_dir=soa_dir, crit=crit, verbose=False)
    with contextlib.nested(
        mock.patch("paasta_tools.check_marathon_services_replication.parse_args", return_value=args, autospec=True),
        mock.patch(
            "paasta_tools.check_marathon_services_replication.get_services_for_cluster",
            return_value=services,
            autospec=True,
        ),
        mock.patch("paasta_tools.check_marathon_services_replication.check_service_replication", autospec=True),
        mock.patch("paasta_tools.check_marathon_services_replication.load_system_paasta_config", autospec=True),
        mock.patch(
            "paasta_tools.check_marathon_services_replication.marathon_tools.load_marathon_config", autospec=True
        ),
    ) as (
        mock_parse_args,
        mock_get_services_for_cluster,
        mock_check_service_replication,
        mock_load_system_paasta_config,
        mock_load_marathon_config,
    ):
        mock_config = mock.Mock()
        mock_load_marathon_config.return_value = mock_config
        mock_load_system_paasta_config.return_value.get_cluster = mock.Mock(return_value="fake_cluster")
        check_marathon_services_replication.main()
        mock_parse_args.assert_called_once_with()
        mock_get_services_for_cluster.assert_called_once_with(
            cluster="fake_cluster", instance_type="marathon", soa_dir=soa_dir
        )
def test_main(instance_config):
    soa_dir = 'anw'
    crit = 1
    args = mock.Mock(soa_dir=soa_dir, crit=crit, verbose=False)
    instance_config.get_docker_image.return_value = True
    with mock.patch(
            'paasta_tools.check_marathon_services_replication.parse_args',
            return_value=args,
            autospec=True,
    ) as mock_parse_args, mock.patch(
            'paasta_tools.check_marathon_services_replication.list_services',
            autospec=True,
            return_value=['a'],
    ), mock.patch(
            'paasta_tools.check_marathon_services_replication.check_service_replication',
            autospec=True,
    ) as mock_check_service_replication, mock.patch(
            'paasta_tools.check_marathon_services_replication.load_system_paasta_config',
            autospec=True,
    ) as mock_load_system_paasta_config, mock.patch(
            'paasta_tools.check_marathon_services_replication.marathon_tools.get_marathon_clients',
            autospec=True,
    ) as mock_get_marathon_clients, mock.patch(
            'paasta_tools.check_marathon_services_replication.get_slaves',
            autospec=True,
    ), mock.patch(
            'paasta_tools.check_marathon_services_replication.PaastaServiceConfigLoader',
            autospec=True,
    ) as mock_paasta_service_config_loader:
        mock_paasta_service_config_loader.return_value.instance_configs.return_value = [
            instance_config
        ]
        mock_client = mock.Mock()
        mock_client.list_tasks.return_value = []
        mock_get_marathon_clients.return_value = mock.Mock(
            get_all_clients=mock.Mock(return_value=[mock_client]))
        mock_load_system_paasta_config.return_value.get_cluster = mock.Mock(
            return_value='fake_cluster')
        check_marathon_services_replication.main()
        mock_parse_args.assert_called_once_with()
        mock_paasta_service_config_loader.assert_called_once_with(
            service='a',
            soa_dir=soa_dir,
        )
        instance_config.get_docker_image.assert_called_once_with()
        assert mock_check_service_replication.called