Merge "Reduce unit testing changes required for emit_releases_file"

This commit is contained in:
Zuul 2018-11-10 03:42:44 +00:00 committed by Gerrit Code Review
commit 2dd285da07
2 changed files with 271 additions and 437 deletions

View File

@ -4,88 +4,27 @@ import mock
import pytest
@mock.patch('emit_releases_file.get_dlrn_hash')
@pytest.mark.parametrize('stable_release,expected_releases',
[('master', {
'undercloud_install_release': 'master',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'master',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'rocky',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'master',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'master',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'master',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}), ('rocky', {
'undercloud_install_release': 'rocky',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'rocky',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'queens',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'rocky',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'rocky',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'rocky',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}), ('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'pike',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'queens',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}), ('pike', {
'undercloud_install_release': 'pike',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'pike',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'ocata',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'pike',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'pike',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'pike',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
})])
def test_overcloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo']
featureset = {
'mixed_upgrade': True,
'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'),
mock.call(stable_release, 'current-tripleo'),
mock.call(expected_releases['overcloud_deploy_release'],
'current-tripleo')])
@pytest.fixture
def hash_mock_setup():
# We need this variables to be arrays to emulate a reference in python
# https://stackoverflow.com/questions/12116127/python-yield-generator-variable-scope
# For python3 we have special keyword nonlocal so we can refer the variable
# in the inner factory function
setup_mock = []
calls_args = []
def _hash_mock_setup(get_hash_mock, calls):
get_hash_mock.side_effect = lambda r, h: calls[(r, h)]
# Store the references to use them at tear down
setup_mock.append(get_hash_mock)
calls_args.append([mock.call(*cargs) for cargs in calls])
yield _hash_mock_setup
# Tear down code here
setup_mock[0].assert_has_calls(calls_args[0], any_order=True)
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -120,97 +59,83 @@ def test_overcloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
'standalone_target_release': 'rocky',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}), ('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'pike',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'queens',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}), ('pike', {
'undercloud_install_release': 'pike',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'pike',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'ocata',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'pike',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'pike',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'pike',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
})])
def test_period_overcloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo']
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'):
'old-current-tripleo',
})
featureset = {
'mixed_upgrade': True,
'overcloud_upgrade': True,
}
upgrade_from = False
assert (compose_releases_dictionary(stable_release,
featureset,
upgrade_from,
is_periodic=True) == expected_releases)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'tripleo-ci-testing'),
mock.call(expected_releases['overcloud_deploy_release'],
'current-tripleo')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@pytest.mark.parametrize('stable_release,expected_releases', [
('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'newton',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'queens',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}),
])
def test_ffu_overcloud_upgrade_is_n_minus_three_to_n(mock_get_hash,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo']
featureset = {
'mixed_upgrade': True,
'ffu_overcloud_upgrade': True,
}
upgrade_from = False
assert (compose_releases_dictionary(stable_release,
featureset,
assert (compose_releases_dictionary(stable_release, featureset,
upgrade_from) == expected_releases)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'current-tripleo'),
mock.call(expected_releases['overcloud_deploy_release'],
'current-passed-ci')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@pytest.mark.parametrize('stable_release,expected_releases',
[('master', {
'undercloud_install_release': 'master',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'master',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'rocky',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'master',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'master',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'master',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}), ('rocky', {
'undercloud_install_release': 'rocky',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'rocky',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'queens',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'rocky',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'rocky',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'rocky',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
})])
def test_period_overcloud_upgrade_is_n_minus_one_to_n(
hash_mock, hash_mock_setup, stable_release, expected_releases):
hash_mock_setup(
hash_mock, {
(stable_release, 'tripleo-ci-testing'):
'current-tripleo',
(stable_release, 'current'):
'current',
(expected_releases['overcloud_deploy_release'], 'current-tripleo'):
'old-current-tripleo',
})
featureset = {
'mixed_upgrade': True,
'overcloud_upgrade': True,
}
upgrade_from = False
assert (compose_releases_dictionary(
stable_release, featureset, upgrade_from,
is_periodic=True) == expected_releases)
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -232,26 +157,73 @@ def test_ffu_overcloud_upgrade_is_n_minus_three_to_n(mock_get_hash,
'standalone_target_hash': 'current-tripleo',
}),
])
def test_period_ffu_overcloud_upgrade_is_n_minus_three_to_n(mock_get_hash,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo']
def test_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, 'current-tripleo'):
'current-tripleo',
(stable_release, 'current'):
'current',
(expected_oc_deploy_release, 'current-passed-ci'):
'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.patch('emit_releases_file.get_dlrn_hash')
@pytest.mark.parametrize('stable_release,expected_releases', [
('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'newton',
'overcloud_deploy_hash': 'old-current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'queens',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}),
])
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'):
'old-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)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'tripleo-ci-testing'),
mock.call(expected_releases['overcloud_deploy_release'],
'current-passed-ci')])
assert (compose_releases_dictionary(
stable_release, featureset, upgrade_from,
is_periodic=True) == expected_releases)
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -288,57 +260,30 @@ def test_period_ffu_overcloud_upgrade_is_n_minus_three_to_n(mock_get_hash,
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}),
('queens', {
'undercloud_install_release': 'pike',
'undercloud_install_hash': 'old-current-tripleo',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'queens',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'queens',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}),
('pike', {
'undercloud_install_release': 'ocata',
'undercloud_install_hash': 'old-current-tripleo',
'undercloud_target_release': 'pike',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'pike',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'pike',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_release': 'pike',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_target_release': 'pike',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
}),
])
def test_undercloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
def test_undercloud_upgrade_is_n_minus_one_to_n(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo']
expected_release = expected_releases['undercloud_install_release']
hash_mock_setup(
hash_mock, {
(stable_release, 'current-tripleo'):
'current-tripleo',
(stable_release, 'current'):
'current',
(expected_release, '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'),
mock.call(stable_release, 'current-tripleo'),
mock.call(expected_releases['undercloud_install_release'],
'current-tripleo')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -360,25 +305,32 @@ def test_undercloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
'standalone_target_hash': 'current-tripleo',
}),
])
def test_period_undercloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
def test_period_undercloud_upgrade_is_n_minus_one_to_n(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo']
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'):
'old-current-tripleo',
})
featureset = {
'undercloud_upgrade': True,
}
upgrade_from = False
assert (compose_releases_dictionary(stable_release,
featureset,
upgrade_from,
is_periodic=True) == expected_releases)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'tripleo-ci-testing'),
mock.call(expected_releases['undercloud_install_release'],
'current-tripleo')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -400,27 +352,33 @@ def test_period_undercloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
'standalone_target_hash': 'current-tripleo',
}),
])
def test_standalone_upgrade_is_n_minus_one_to_n(mock_get_hash,
def test_standalone_upgrade_is_n_minus_one_to_n(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo',
'old-current']
expected_release = expected_releases['standalone_deploy_release']
hash_mock_setup(
hash_mock, {
(stable_release, 'current-tripleo'):
'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) == expected_releases)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'current-tripleo'),
mock.call(expected_releases['standalone_deploy_release'],
'current-tripleo'),
mock.call(expected_releases['standalone_deploy_release'],
'current')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -442,13 +400,25 @@ def test_standalone_upgrade_is_n_minus_one_to_n(mock_get_hash,
'standalone_target_hash': 'current-tripleo',
}),
])
def test_period_standalone_upgrade_is_n_minus_one_to_n(mock_get_hash,
def test_period_standalone_upgrade_is_n_minus_one_to_n(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'old-current-tripleo',
'old-current']
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,
}
@ -457,13 +427,6 @@ def test_period_standalone_upgrade_is_n_minus_one_to_n(mock_get_hash,
featureset,
upgrade_from,
is_periodic=True) == expected_releases)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'tripleo-ci-testing'),
mock.call(expected_releases['standalone_deploy_release'],
'current-tripleo'),
mock.call(expected_releases['standalone_deploy_release'],
'current')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -499,72 +462,32 @@ def test_period_standalone_upgrade_is_n_minus_one_to_n(mock_get_hash,
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'rocky'
}), ('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'queens',
'overcloud_deploy_hash': 'previous-current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_deploy_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'queens',
}), ('pike', {
'undercloud_install_release': 'pike',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'pike',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'pike',
'standalone_deploy_newest_hash': 'current',
'overcloud_deploy_hash': 'previous-current-tripleo',
'overcloud_target_release': 'pike',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_deploy_release': 'pike',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'pike'
}), ('ocata', {
'undercloud_install_release': 'ocata',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'ocata',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'ocata',
'overcloud_deploy_hash': 'previous-current-tripleo',
'overcloud_target_release': 'ocata',
'overcloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'ocata',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_deploy_release': 'ocata',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'ocata'
})])
def test_overcloud_update_target_is_hash(mock_get_hash,
def test_overcloud_update_target_is_hash(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'current-tripleo',
'previous-current-tripleo']
expected_release = expected_releases['overcloud_deploy_release']
hash_mock_setup(
hash_mock, {
(stable_release, 'current-tripleo'):
'current-tripleo',
(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) == expected_releases)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'current-tripleo'),
mock.call(expected_releases['overcloud_deploy_release'],
'previous-current-tripleo')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -600,29 +523,24 @@ def test_overcloud_update_target_is_hash(mock_get_hash,
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'tripleo-ci-testing',
'standalone_target_release': 'rocky'
}), ('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'tripleo-ci-testing',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'tripleo-ci-testing',
'overcloud_deploy_release': 'queens',
'overcloud_deploy_hash': 'previous-current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'tripleo-ci-testing',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'tripleo-ci-testing',
'standalone_deploy_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'tripleo-ci-testing',
'standalone_target_release': 'queens'
})])
def test_period_overcloud_update_target_is_hash(mock_get_hash,
def test_period_overcloud_update_target_is_hash(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current',
'tripleo-ci-testing',
'previous-current-tripleo',
'old-current']
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,
}
@ -631,11 +549,6 @@ def test_period_overcloud_update_target_is_hash(mock_get_hash,
featureset,
upgrade_from,
is_periodic=True) == expected_releases)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'tripleo-ci-testing'),
mock.call(expected_releases['overcloud_deploy_release'],
'previous-current-tripleo')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -671,64 +584,24 @@ def test_period_overcloud_update_target_is_hash(mock_get_hash,
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'rocky'
}), ('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'queens',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_deploy_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'queens'
}), ('pike', {
'undercloud_install_release': 'pike',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'pike',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'pike',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'pike',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_deploy_release': 'pike',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'pike'
}), ('ocata', {
'undercloud_install_release': 'ocata',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'ocata',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'ocata',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'ocata',
'overcloud_target_hash': 'current-tripleo',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'current-tripleo',
'standalone_deploy_release': 'ocata',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'current-tripleo',
'standalone_target_release': 'ocata'
})])
def test_noop_target_is_the_same(mock_get_hash,
def test_noop_target_is_the_same(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current', 'current-tripleo']
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)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'current-tripleo')])
@mock.patch('emit_releases_file.get_dlrn_hash')
@ -763,62 +636,23 @@ def test_noop_target_is_the_same(mock_get_hash,
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'tripleo-ci-testing',
'standalone_target_release': 'rocky'
}), ('queens', {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'tripleo-ci-testing',
'undercloud_target_release': 'queens',
'undercloud_target_hash': 'tripleo-ci-testing',
'overcloud_deploy_release': 'queens',
'overcloud_deploy_hash': 'tripleo-ci-testing',
'overcloud_target_release': 'queens',
'overcloud_target_hash': 'tripleo-ci-testing',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'tripleo-ci-testing',
'standalone_deploy_release': 'queens',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'tripleo-ci-testing',
'standalone_target_release': 'queens'
}), ('pike', {
'undercloud_install_release': 'pike',
'undercloud_install_hash': 'tripleo-ci-testing',
'undercloud_target_release': 'pike',
'undercloud_target_hash': 'tripleo-ci-testing',
'overcloud_deploy_release': 'pike',
'overcloud_deploy_hash': 'tripleo-ci-testing',
'overcloud_target_release': 'pike',
'overcloud_target_hash': 'tripleo-ci-testing',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'tripleo-ci-testing',
'standalone_deploy_release': 'pike',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'tripleo-ci-testing',
'standalone_target_release': 'pike'
}), ('ocata', {
'undercloud_install_release': 'ocata',
'undercloud_install_hash': 'tripleo-ci-testing',
'undercloud_target_release': 'ocata',
'undercloud_target_hash': 'tripleo-ci-testing',
'overcloud_deploy_release': 'ocata',
'overcloud_deploy_hash': 'tripleo-ci-testing',
'overcloud_target_release': 'ocata',
'overcloud_target_hash': 'tripleo-ci-testing',
'standalone_deploy_newest_hash': 'current',
'standalone_deploy_hash': 'tripleo-ci-testing',
'standalone_deploy_release': 'ocata',
'standalone_target_newest_hash': 'current',
'standalone_target_hash': 'tripleo-ci-testing',
'standalone_target_release': 'ocata'
})])
def test_periodic_noop_target_is_the_same(mock_get_hash,
def test_periodic_noop_target_is_the_same(hash_mock,
hash_mock_setup,
stable_release,
expected_releases):
mock_get_hash.side_effect = ['current', 'tripleo-ci-testing']
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)
mock_get_hash.assert_has_calls(
[mock.call(stable_release, 'current'),
mock.call(stable_release, 'tripleo-ci-testing')])

View File

@ -45,7 +45,7 @@ commands = bindep test
[testenv:py27]
deps = {[testenv]deps}
changedir = scripts/emit_releases_file
commands = pytest
commands = pytest {posargs:--cov=emit_releases_file}
[testenv:py35]
deps={[testenv]deps}