import pytest

from nltk.corpus.reader import CorpusReader


@pytest.fixture(autouse=True)
def mock_plot(mocker):
    """ Disable matplotlib plotting in test code """

    try:
        import matplotlib.pyplot as plt
        mocker.patch.object(plt, 'gca')
        mocker.patch.object(plt, 'show')
    except ImportError:
        pass


@pytest.fixture(scope="module", autouse=True)
def teardown_loaded_corpora():
    """
    After each test session ends (either doctest or unit test),
    unload any loaded corpora
    """

    yield  # first, wait for the test to end

    import nltk.corpus

    for name in dir(nltk.corpus):
        obj = getattr(nltk.corpus, name, None)
        if isinstance(obj, CorpusReader) and hasattr(obj, "_unload"):
            obj._unload()
