def test_match_hw_model_no_default():
    new_dev_data = copy.deepcopy(dev_data)
    new_dev_data['hw_model'] = 'cvx2000'
    new_cfg_data = copy.deepcopy(cfg_data)
    new_cfg_data.pop('default')
    try:
        aztp_os_selector.match_hw_model(new_dev_data, new_cfg_data)
    except aztp_os_selector.HwNoMatchError as e:
        pass
    assert isinstance(e, aztp_os_selector.HwNoMatchError)
def test_match_hw_model_multi_match():
    new_cfg_data = copy.deepcopy(cfg_data)
    new_cfg_data['group_b'] = {
        'regex_match': '3\.1\.[12]',
        'image': 'CumulusLinux-3.1.2-amd64.bin',
        'matches': {
            'hw_model': ['cvx1000'],
            'mac_address': ['0123456789012', '2109876543210']
        }
    }
    try:
        aztp_os_selector.match_hw_model(dev_data, new_cfg_data)
    except aztp_os_selector.HwMultiMatchError as e:
        pass
    assert isinstance(e, aztp_os_selector.HwMultiMatchError)
def test_match_hw_model_no_match():
    new_dev_data = copy.deepcopy(dev_data)
    new_dev_data['hw_model'] = 'cvx2000'
    match = aztp_os_selector.match_hw_model(new_dev_data, cfg_data)
    assert match[0] == 'default'
    assert match[1] == cfg_data['default']
def test_match_hw_model():
    match = aztp_os_selector.match_hw_model(dev_data, cfg_data)
    assert match[0] == 'group_a'
    assert match[1] == cfg_data['group_a']