def test_get_config_path_no_default_files(isfile, logger):
    isfile.return_value = False
    assert docker2ami.get_config_path(None) is None
    isfile_calls = [
        mock.call('~/.docker-build-ami.conf'),
        mock.call('/etc/docker-build-ami.conf')
    ]
    assert isfile.has_calls(isfile_calls)
    assert not logger.error.called
def test_get_config_path_default_file(isfile, logger):
    isfile.side_effect = (False, True)
    assert docker2ami.get_config_path(None) == \
        os.path.expanduser('/etc/docker-build-ami.conf')
    isfile_calls = [
        mock.call('~/.docker-build-ami.conf'),
        mock.call('/etc/docker-build-ami.conf')
    ]
    assert isfile.has_calls(isfile_calls)
    assert not logger.error.called
def test_get_config_path_default_user_file(isfile, logger):
    isfile.side_effect = (True, False)
    assert docker2ami.get_config_path(None) == \
        os.path.expanduser('~/.docker-build-ami.conf')
    assert isfile.called_with(os.path.expanduser('~/.docker-build-ami.conf'))
    assert not logger.error.called
def test_get_config_path_invalid_user_file(isfile, logger):
    isfile.return_value = False
    with pytest.raises(SystemExit):
        docker2ami.get_config_path('~/foo.conf')
    assert isfile.called_with(os.path.expanduser('foo.conf'))
    assert logger.error.called
def test_get_config_path_valid_user_file(isfile, logger):
    isfile.return_value = True
    assert docker2ami.get_config_path('~/foo.conf') == \
        os.path.expanduser('~/foo.conf')
    assert isfile.called_with(os.path.expanduser('foo.conf'))
    assert not logger.error.called
def test_get_config_path_valid_non_user_file(isfile, logger):
    isfile.return_value = True
    assert docker2ami.get_config_path('foo.conf') == 'foo.conf'
    assert isfile.called_with('foo.conf')
    assert not logger.error.called