def test_standalone_upgrade_only_supported_from_stein(stable_release):
    featureset = {
        'standalone_upgrade': True,
    }
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
예제 #2
0
def test_standalone_upgrade_only_supported_from_stein(stable_release):
    featureset = {
        'standalone_upgrade': True,
    }
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
def test_ffu_overcloud_upgrade_only_supported_from_newton(stable_release):
    featureset = {
        'mixed_upgrade': True,
        'ffu_overcloud_upgrade': True,
    }
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
예제 #4
0
def test_overcloud_upgrades_has_to_be_mixed(upgrade_type):
    featureset = {
        upgrade_type: True,
    }
    stable_release = 'queens'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
def test_overcloud_upgrades_has_to_be_mixed(upgrade_type):
    featureset = {
        upgrade_type: True,
    }
    stable_release = 'queens'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
예제 #6
0
def test_ffu_overcloud_upgrade_only_supported_from_newton(stable_release):
    featureset = {
        'mixed_upgrade': True,
        'ffu_overcloud_upgrade': True,
    }
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
예제 #7
0
def test_undercloud_upgrades_from_newton_to_ocata_are_unsupported():
    featureset = {
        'undercloud_upgrade': True,
    }

    stable_release = 'ocata'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
def test_undercloud_upgrades_from_newton_to_ocata_are_unsupported():
    featureset = {
        'undercloud_upgrade': True,
    }

    stable_release = 'ocata'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
예제 #9
0
def test_only_mixed_overcloud_upgrades_are_supported():
    featureset = {
        'overcloud_upgrade': True,
        'undercloud_upgrade': True,
    }

    stable_release = 'queens'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
def test_only_mixed_overcloud_upgrades_are_supported():
    featureset = {
        'overcloud_upgrade': True,
        'undercloud_upgrade': True,
    }

    stable_release = 'queens'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
예제 #11
0
def test_period_overcloud_update_target_is_hash(hash_mock,
                                                hash_mock_setup,
                                                stable_release,
                                                expected_releases):

    expected_release = expected_releases['overcloud_deploy_release']

    hash_mock_setup(
        hash_mock, {
            (stable_release, 'tripleo-ci-testing'):
            'tripleo-ci-testing',
            (stable_release, 'current'):
            'current',
            (expected_release, 'previous-current-tripleo'):
            'previous-current-tripleo'
        })

    featureset = {
        'overcloud_update': True,
    }
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release,
                                        featureset,
                                        upgrade_from,
                                        is_periodic=True) == expected_releases)
예제 #12
0
def test_overcloud_upgrade_is_n_minus_one_to_n(hash_mock, hash_mock_setup,
                                               stable_release,
                                               expected_releases):

    hash_mock_setup(
        hash_mock,
        {
            (stable_release, 'current-tripleo'):
            'current-tripleo',
            (stable_release, 'current'):
            'current',
            (
                expected_releases['overcloud_deploy_release'],
                'current-tripleo',
            ):
            'previous-current-tripleo',
        },
    )

    featureset = {
        'mixed_upgrade': True,
        'overcloud_upgrade': True,
    }
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release, featureset,
                                        upgrade_from) == expected_releases)
예제 #13
0
def test_period_standalone_upgrade_is_n_minus_one_to_n(hash_mock,
                                                       hash_mock_setup,
                                                       stable_release,
                                                       expected_releases):

    expected_release = expected_releases['standalone_deploy_release']

    hash_mock_setup(
        hash_mock, {
            (stable_release, 'tripleo-ci-testing'):
            'current-tripleo',
            (stable_release, 'current'):
            'current',
            (expected_release, 'current-tripleo'):
            'old-current-tripleo',
            (expected_release, 'current'):
            'old-current',
        })

    featureset = {
        'standalone_upgrade': True,
    }
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release,
                                        featureset,
                                        upgrade_from,
                                        is_periodic=True) == expected_releases)
예제 #14
0
def test_period_undercloud_upgrade_is_n_minus_one_to_n(hash_mock,
                                                       hash_mock_setup,
                                                       stable_release,
                                                       expected_releases):

    expected_release = expected_releases['undercloud_install_release']

    hash_mock_setup(
        hash_mock,
        {
            (stable_release, 'tripleo-ci-testing'): 'current-tripleo',
            (stable_release, 'current'): 'current',
            (expected_release, 'current-tripleo'): 'previous-current-tripleo',
        },
    )

    featureset = {
        'undercloud_upgrade': True,
    }

    upgrade_from = False
    assert (compose_releases_dictionary(stable_release,
                                        featureset,
                                        upgrade_from,
                                        is_periodic=True) == expected_releases)
예제 #15
0
def test_period_ffu_overcloud_upgrade_is_n_minus_three_to_n(
        hash_mock, hash_mock_setup, stable_release, expected_releases):

    expected_oc_deploy_release = expected_releases['overcloud_deploy_release']

    hash_mock_setup(
        hash_mock,
        {
            (stable_release, 'tripleo-ci-testing'):
            'current-tripleo',
            (stable_release, 'current'):
            'current',
            (
                expected_oc_deploy_release,
                'current-passed-ci',
            ):
            'previous-current-tripleo',
        },
    )

    featureset = {
        'mixed_upgrade': True,
        'ffu_overcloud_upgrade': True,
    }
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release,
                                        featureset,
                                        upgrade_from,
                                        is_periodic=True) == expected_releases)
예제 #16
0
def test_noop_target_is_the_same(mock_get_hash, stable_release,
                                 expected_releases):
    mock_get_hash.return_value = 'current-tripleo'
    featureset = {}
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release, featureset,
                                        upgrade_from) == expected_releases)
    mock_get_hash.assert_called_once_with(stable_release, 'current-tripleo')
예제 #17
0
def test_periodic_noop_target_is_the_same(mock_get_hash, stable_release,
                                          expected_releases):
    mock_get_hash.return_value = 'tripleo-ci-testing'
    featureset = {}
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release,
                                        featureset,
                                        upgrade_from,
                                        is_periodic=True) == expected_releases)
    mock_get_hash.assert_called_once_with(stable_release, 'tripleo-ci-testing')
예제 #18
0
def test_overcloud_update_target_is_hash(mock_get_hash, stable_release,
                                         expected_releases):
    mock_get_hash.side_effect = ['current-tripleo', 'previous-current-tripleo']
    featureset = {
        'overcloud_update': True,
    }
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release, featureset,
                                        upgrade_from) == expected_releases)
    mock_get_hash.assert_has_calls([
        mock.call(stable_release, 'current-tripleo'),
        mock.call(expected_releases['overcloud_deploy_release'],
                  'previous-current-tripleo')
    ])
예제 #19
0
def test_undercloud_upgrade_is_n_minus_one_to_n(mock_get_hash, stable_release,
                                                expected_releases):
    mock_get_hash.side_effect = ['current-tripleo', 'old-current-tripleo']
    featureset = {
        'undercloud_upgrade': True,
    }
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release, featureset,
                                        upgrade_from) == expected_releases)
    mock_get_hash.assert_has_calls([
        mock.call(stable_release, 'current-tripleo'),
        mock.call(expected_releases['undercloud_install_release'],
                  'current-tripleo')
    ])
예제 #20
0
def test_noop_target_is_the_same(hash_mock, hash_mock_setup, stable_release,
                                 expected_releases):
    hash_mock_setup(
        hash_mock,
        {
            (stable_release, 'current-tripleo'): 'current-tripleo',
            (stable_release, 'current'): 'current',
        },
    )

    featureset = {}
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release, featureset,
                                        upgrade_from) == expected_releases)
예제 #21
0
def test_ffu_overcloud_upgrade_is_n_minus_three_to_n(mock_get_hash,
                                                     stable_release,
                                                     expected_releases):
    mock_get_hash.side_effect = ['current-tripleo', 'old-current-tripleo']
    featureset = {
        'mixed_upgrade': True,
        'ffu_overcloud_upgrade': True,
    }
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release, featureset,
                                        upgrade_from) == expected_releases)
    mock_get_hash.assert_has_calls([
        mock.call(stable_release, 'current-tripleo'),
        mock.call(expected_releases['overcloud_deploy_release'],
                  'current-passed-ci')
    ])
예제 #22
0
def test_periodic_noop_target_is_the_same(hash_mock, hash_mock_setup,
                                          stable_release, expected_releases):

    hash_mock_setup(
        hash_mock,
        {
            (stable_release, 'tripleo-ci-testing'): 'tripleo-ci-testing',
            (stable_release, 'current'): 'current',
        },
    )

    featureset = {}
    upgrade_from = False
    assert (compose_releases_dictionary(stable_release,
                                        featureset,
                                        upgrade_from,
                                        is_periodic=True) == expected_releases)
def test_upgrade_to_newton_is_unsupported(featureset):
    stable_release = 'newton'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)
예제 #24
0
def test_fail_with_wrong_release():
    with pytest.raises(RuntimeError):
        compose_releases_dictionary('foobar', {}, False)
def test_fail_with_wrong_release():
    with pytest.raises(RuntimeError):
        compose_releases_dictionary('foobar', {}, False)
예제 #26
0
def test_upgrade_to_newton_is_unsupported(featureset):
    stable_release = 'newton'
    upgrade_from = False
    with pytest.raises(RuntimeError):
        compose_releases_dictionary(stable_release, featureset, upgrade_from)