Example #1
0
def test_get_deploy_group_mappings():
    fake_service = 'fake_service'
    fake_soa_dir = '/no/yes/maybe'

    fake_service_configs = [
        MarathonServiceConfig(
            service=fake_service,
            cluster='clusterA',
            instance='main',
            branch_dict={},
            config_dict={'deploy_group': 'no_thanks'},
        ),
        MarathonServiceConfig(
            service=fake_service,
            cluster='clusterB',
            instance='main',
            branch_dict={},
            config_dict={'deploy_group': 'try_me'},
        ),
    ]

    fake_remote_refs = {
        'refs/tags/paasta-try_me-20160308T053933-deploy': '123456',
        'refs/tags/paasta-clusterB.main-123-stop': '123456',
        'refs/tags/paasta-okay-20160308T053933-deploy': 'ijowarg',
        'refs/tags/paasta-no_thanks-20160308T053933-deploy': '789009',
        'refs/tags/paasta-nah-20160308T053933-deploy': 'j8yiomwer',
    }

    fake_old_mappings = ['']
    expected = {
        'fake_service:paasta-clusterA.main': {
            'docker_image': 'services-fake_service:paasta-789009',
            'desired_state': 'start',
            'force_bounce': None,
        },
        'fake_service:paasta-clusterB.main': {
            'docker_image': 'services-fake_service:paasta-123456',
            'desired_state': 'stop',
            'force_bounce': '123',
        },
    }
    with contextlib.nested(
            mock.patch(
                'paasta_tools.generate_deployments_for_service.get_instance_config_for_service',
                return_value=fake_service_configs,
                autospec=True),
            mock.patch('paasta_tools.remote_git.list_remote_refs',
                       return_value=fake_remote_refs,
                       autospec=True),
    ) as (
            get_instance_config_for_service_patch,
            list_remote_refs_patch,
    ):
        actual = generate_deployments_for_service.get_deploy_group_mappings(
            fake_soa_dir, fake_service, fake_old_mappings)
        get_instance_config_for_service_patch.assert_called_once_with(
            soa_dir=fake_soa_dir, service=fake_service)
        assert list_remote_refs_patch.call_count == 1
        assert expected == actual
def test_get_deploy_group_mappings():
    fake_service = 'fake_service'
    fake_soa_dir = '/no/yes/maybe'

    fake_service_configs = [
        MarathonServiceConfig(
            service=fake_service,
            cluster='clusterA',
            instance='main',
            branch_dict={},
            config_dict={'deploy_group': 'no_thanks'},
        ),
        MarathonServiceConfig(
            service=fake_service,
            cluster='clusterB',
            instance='main',
            branch_dict={},
            config_dict={'deploy_group': 'try_me'},
        ),
    ]

    fake_remote_refs = {
        'refs/heads/paasta-try_me': '123456',
        'refs/tags/paasta-clusterB.main-123-stop': '123456',
        'refs/heads/paasta-okay': 'ijowarg',
        'refs/heads/paasta-no_thanks': '789009',
        'refs/heads/paasta-nah': 'j8yiomwer',
    }

    fake_old_mappings = ['']
    expected = {
        'fake_service:paasta-clusterA.main': {
            'docker_image': 'services-fake_service:paasta-789009',
            'desired_state': 'start',
            'force_bounce': None,
        },
        'fake_service:paasta-clusterB.main': {
            'docker_image': 'services-fake_service:paasta-123456',
            'desired_state': 'stop',
            'force_bounce': '123',
        },
    }
    with contextlib.nested(
        mock.patch('paasta_tools.generate_deployments_for_service.get_instance_config_for_service',
                   return_value=fake_service_configs),
        mock.patch('paasta_tools.remote_git.list_remote_refs',
                   return_value=fake_remote_refs),
    ) as (
        get_instance_config_for_service_patch,
        list_remote_refs_patch,
    ):
        actual = generate_deployments_for_service.get_deploy_group_mappings(fake_soa_dir,
                                                                            fake_service, fake_old_mappings)
        get_instance_config_for_service_patch.assert_called_once_with(soa_dir=fake_soa_dir, service=fake_service)
        assert list_remote_refs_patch.call_count == 1
        assert expected == actual
def test_get_deploy_group_mappings():
    fake_service = "fake_service"
    fake_soa_dir = "/no/yes/maybe"

    fake_service_configs = [
        MarathonServiceConfig(
            service=fake_service,
            cluster="clusterA",
            instance="main",
            branch_dict={},
            config_dict={"deploy_group": "no_thanks"},
        ),
        MarathonServiceConfig(
            service=fake_service,
            cluster="clusterB",
            instance="main",
            branch_dict={},
            config_dict={"deploy_group": "try_me"},
        ),
    ]

    fake_remote_refs = {
        "refs/tags/paasta-try_me-20160308T053933-deploy": "123456",
        "refs/tags/paasta-clusterB.main-123-stop": "123456",
        "refs/tags/paasta-okay-20160308T053933-deploy": "ijowarg",
        "refs/tags/paasta-no_thanks-20160308T053933-deploy": "789009",
        "refs/tags/paasta-nah-20160308T053933-deploy": "j8yiomwer",
    }

    fake_old_mappings = [""]
    expected = {
        "fake_service:paasta-clusterA.main": {
            "docker_image": "services-fake_service:paasta-789009",
            "desired_state": "start",
            "force_bounce": None,
        },
        "fake_service:paasta-clusterB.main": {
            "docker_image": "services-fake_service:paasta-123456",
            "desired_state": "stop",
            "force_bounce": "123",
        },
    }
    with contextlib.nested(
        mock.patch(
            "paasta_tools.generate_deployments_for_service.get_instance_config_for_service",
            return_value=fake_service_configs,
        ),
        mock.patch("paasta_tools.remote_git.list_remote_refs", return_value=fake_remote_refs),
    ) as (get_instance_config_for_service_patch, list_remote_refs_patch):
        actual = generate_deployments_for_service.get_deploy_group_mappings(
            fake_soa_dir, fake_service, fake_old_mappings
        )
        get_instance_config_for_service_patch.assert_called_once_with(soa_dir=fake_soa_dir, service=fake_service)
        assert list_remote_refs_patch.call_count == 1
        assert expected == actual
Example #4
0
def test_get_deploy_group_mappings():
    fake_service = "fake_service"
    fake_soa_dir = "/no/yes/maybe"

    fake_service_configs = [
        MarathonServiceConfig(
            service=fake_service,
            cluster="clusterA",
            instance="main",
            branch_dict=None,
            config_dict={"deploy_group": "no_thanks"},
        ),
        MarathonServiceConfig(
            service=fake_service,
            cluster="clusterB",
            instance="main",
            branch_dict=None,
            config_dict={"deploy_group": "try_me"},
        ),
        MarathonServiceConfig(
            service=fake_service,
            cluster="clusterC",
            instance="main",
            branch_dict=None,
            config_dict={"deploy_group": "but-why"},
        ),
    ]

    fake_remote_refs = {
        "refs/tags/paasta-try_me-20160308T053933-deploy": "123456",
        "refs/tags/paasta-clusterB.main-123-stop": "123456",
        "refs/tags/paasta-okay-20160308T053933-deploy": "ijowarg",
        "refs/tags/paasta-no_thanks-20160308T053933-deploy": "789009",
        "refs/tags/paasta-nah-20160308T053933-deploy": "j8yiomwer",
        "refs/tags/paasta-but-why+extrastuff-20220308T053933-deploy": "123456",
    }

    expected = {
        "fake_service:paasta-clusterA.main": {
            "docker_image": "services-fake_service:paasta-789009",
            "desired_state": "start",
            "force_bounce": None,
        },
        "fake_service:paasta-clusterB.main": {
            "docker_image": "services-fake_service:paasta-123456",
            "desired_state": "stop",
            "force_bounce": "123",
        },
        "fake_service:paasta-clusterC.main": {
            "docker_image": "services-fake_service:paasta-123456-extrastuff",
            "desired_state": "start",
            "force_bounce": None,
        },
    }
    expected_v2 = {
        "deployments": {
            "try_me": {
                "docker_image": "services-fake_service:paasta-123456",
                "git_sha": "123456",
                "image_version": None,
            },
            "no_thanks": {
                "docker_image": "services-fake_service:paasta-789009",
                "git_sha": "789009",
                "image_version": None,
            },
            "but-why": {
                "docker_image":
                "services-fake_service:paasta-123456-extrastuff",
                "git_sha": "123456",
                "image_version": "extrastuff",
            },
        },
        "controls": {
            "fake_service:clusterA.main": {
                "desired_state": "start",
                "force_bounce": None,
            },
            "fake_service:clusterB.main": {
                "desired_state": "stop",
                "force_bounce": "123",
            },
            "fake_service:clusterC.main": {
                "desired_state": "start",
                "force_bounce": None,
            },
        },
    }
    with mock.patch(
            "paasta_tools.generate_deployments_for_service.get_instance_configs_for_service",
            return_value=fake_service_configs,
            autospec=True,
    ) as get_instance_configs_for_service_patch, mock.patch(
            "paasta_tools.remote_git.list_remote_refs",
            return_value=fake_remote_refs,
            autospec=True,
    ) as list_remote_refs_patch:
        actual, actual_v2 = generate_deployments_for_service.get_deploy_group_mappings(
            fake_soa_dir, fake_service)
        get_instance_configs_for_service_patch.assert_called_once_with(
            soa_dir=fake_soa_dir, service=fake_service)
        assert list_remote_refs_patch.call_count == 1
        assert expected == actual
        assert expected_v2 == actual_v2