import pytest

import pandas


def test_matplotlib_backend_error():
    msg = ('matplotlib is required for plotting when the default backend '
           '"matplotlib" is selected.')
    try:
        import matplotlib  # noqa
    except ImportError:
        with pytest.raises(ImportError, match=msg):
            pandas.set_option('plotting.backend', 'matplotlib')


def test_backend_is_not_module():
    msg = ('"not_an_existing_module" does not seem to be an installed module. '
           'A pandas plotting backend must be a module that can be imported')
    with pytest.raises(ValueError, match=msg):
        pandas.set_option('plotting.backend', 'not_an_existing_module')


def test_backend_is_correct(monkeypatch):
    monkeypatch.setattr('pandas.core.config_init.importlib.import_module',
                        lambda name: None)
    pandas.set_option('plotting.backend', 'correct_backend')
    assert pandas.get_option('plotting.backend') == 'correct_backend'

    # Restore backend for other tests (matplotlib can be not installed)
    try:
        pandas.set_option('plotting.backend', 'matplotlib')
    except ImportError:
        pass
