# -*- coding: utf-8 -*-

import contextlib
import pytest


def pytest_error_str(error):
    """Different for different versions of Pytest"""
    try:
        return str(error.value)
    except AttributeError:
        return str(error)


def pytest_warning_messages(warnings):
    """Get the warning messages for captured warnings"""
    return [str(w.message) for w in warnings.list]


@contextlib.contextmanager
def raises(exception):
    """Allows context managers for catching NO errors"""
    if exception is None:
        yield None

    else:
        with pytest.raises(exception) as e:
            yield e
