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)
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_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_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_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)
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)
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)
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)
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)
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')
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')
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') ])
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') ])
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)
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') ])
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)
def test_fail_with_wrong_release(): with pytest.raises(RuntimeError): compose_releases_dictionary('foobar', {}, False)