def test_match_os_version_regex_upgrade():
    new_cfg_data = copy.deepcopy(cfg_data)
    new_cfg_data['group_a']['regex_match'] = '3\.1\.[23]'
    item_match = namedtuple('item_match', ['hw_match', 'data'])
    hw_match = item_match('group_a', new_cfg_data['group_a'])
    upgrade = aztp_os_selector.match_os_version(dev_data, hw_match.data)
    assert upgrade == new_cfg_data['group_a']['image']
def test_match_os_version_exact_match_no_upgrade():
    new_cfg_data = copy.deepcopy(cfg_data)
    new_cfg_data['group_a'].pop('regex_match')
    new_cfg_data['group_a']['exact_match'] = '3.1.1'
    item_match = namedtuple('item_match', ['hw_match', 'data'])
    hw_match = item_match('group_a', new_cfg_data['group_a'])
    upgrade = aztp_os_selector.match_os_version(dev_data, hw_match.data)
    assert not upgrade
def test_match_os_version_cfgerror():
    with pytest.raises(aztp_os_selector.CfgError):
        dev_data = {'os_version': '1.A'}
        hw_match = []
        aztp_os_selector.match_os_version(dev_data, hw_match)
def test_match_os_version_regex_no_upgrade():
    item_match = namedtuple('item_match', ['hw_match', 'data'])
    hw_match = item_match('group_a', cfg_data['group_a'])
    upgrade = aztp_os_selector.match_os_version(dev_data, hw_match.data)
    assert not upgrade