matplotlib.testing
matplotlib.testing
Вспомогательные функции для тестирования.
-
matplotlib.testing.is_called_from_pytest()[source] -
Определяет, выполняются ли тесты в рамках pytest.
-
matplotlib.testing.set_font_settings_for_testing()[source]
-
matplotlib.testing.set_reproducibility_for_testing()[source]
-
matplotlib.testing.setup()[source]
matplotlib.testing.compare
Предоставляет набор утилит для сравнения результатов (изображений).
-
matplotlib.testing.compare.compare_float(expected, actual, relTol=None, absTol=None)[source] -
[Устаревшее] Прерывает выполнение, если значения с плавающей запятой недостаточно близки, с указанным сообщением.
Можно указать относительную и/или абсолютную толерантность.
Примечания
Устарело начиная с версии 3.0.
-
matplotlib.testing.compare.compare_images(expected, actual, tol, in_decorator=False)[source] -
Сравнивает два файла "изображения", проверяя различия в пределах заданной толерантности.
Два указанных имени файла могут указывать на файлы, которые можно преобразовать в PNG с помощью
converterсловаря. Базовое значение RMS вычисляется с помощью функцииcalculate_rms.Параметры: -
expected : str -
Имя файла ожидаемого изображения.
-
actual : str -
Имя файла фактического изображения.
-
tol : float -
Толерантность (разница в значениях цвета, где 255 — максимальная разница). Тест прерывается, если среднее различие пикселей превышает это значение.
-
in_decorator : bool -
Определяет формат вывода. Если вызов осуществляется из декоратора image_comparison, это значение должно быть True. (по умолчанию False)
Возвращаемые значения: -
comparison_result : None or dict or str -
Возвращает None, если изображения равны в пределах заданной толерантности.
Если изображения отличаются, возвращаемое значение зависит от in_decorator. Если in_decorator истинно, возвращается словарь со следующими элементами:
- rms: Значение RMS разницы изображений.
- expected: Имя файла ожидаемого изображения.
- actual: Имя файла фактического изображения.
- diff_image: Имя файла изображения разницы.
- tol: Толерантность сравнения.
В противном случае возвращается многострочная строка с удобочитаемым представлением этой информации.
Примеры
img1 = "./baseline/plot.png" img2 = "./output/plot.png" compare_images(img1, img2, 0.001)
-
-
matplotlib.testing.compare.comparable_formats()[source] -
Возвращает список форматов файлов, которые
compare_imagesможет сравнивать на этой системе.Возвращаемые значения: -
supported_formats : list of str -
Например,
['png', 'pdf', 'svg', 'eps'].
-
matplotlib.testing.decorators
-
class matplotlib.testing.decorators.CleanupTest(**kwargs)[source] -
Базовый класс:
object[Устаревшее]
Примечания
Устарело начиная с версии 3.0:
-
classmethod setup_class()
-
classmethod teardown_class()
-
test(self)[source]
-
-
class matplotlib.testing.decorators.CleanupTestCase(methodName='runTest')[source] -
Базовый класс:
unittest.case.TestCaseОбёртка над unittest.TestCase, включающая операции по очистке.
Создаёт экземпляр класса, который будет использовать указанный метод теста при выполнении. Вызывает ValueError, если у экземпляра нет метода с указанным именем.
-
classmethod setUpClass()[source] -
Метод настройки класса перед запуском тестов в классе.
-
classmethod tearDownClass()[source] -
Метод разборки класса после запуска всех тестов в классе.
-
-
class matplotlib.testing.decorators.ImageComparisonTest(**kwargs)[source] -
Базовый класс:
matplotlib.testing.decorators.CleanupTest,matplotlib.testing.decorators._ImageComparisonBase[Устаревшее] Класс для сравнения изображений на основе Nose.
Этот класс генерирует тесты для фреймворка тестирования на основе Nose. В идеале этот класс не должен быть публичным, и единственным публичным API должен быть декоратор
image_comparison(). К сожалению, существуют существующие пользователи этого класса (например, pytest-mpl), поэтому его пока нельзя удалить.Примечания
Устарело начиная с версии 3.0.
-
nose_runner(self)[source]
-
setup(self)[source]
-
teardown(self)[source]
-
-
matplotlib.testing.decorators.check_figures_equal(*, extensions=('png', 'pdf', 'svg'), tol=0)[source] -
Декоратор для тестовых случаев, которые генерируют и сравнивают две фигуры.
Декорированная функция должна принимать два аргумента, fig_test и fig_ref, и отрисовывать тестовое и эталонное изображения на них. После возвращения функции фигуры сохраняются и сравниваются.
Этот декоратор следует предпочитать
image_comparison, когда это возможно, чтобы предотвратить чрезмерный рост размера набора тестов.Параметры: -
extensions : list, default: ["png", "pdf", "svg"] -
Расширения для тестирования.
-
tol : float -
Пороговое значение RMS, превышение которого указывает на сбой теста.
Примеры
Проверка того, что вызов
Axes.plotс одним аргументом строит его по сравнению с[0, 1, 2, ...].@check_figures_equal() def test_plot(fig_test, fig_ref): fig_test.subplots().plot([1, 3, 5]) fig_ref.subplots().plot([0, 1, 2], [1, 3, 5]) -
-
matplotlib.testing.decorators.check_freetype_version(ver)[source]
-
matplotlib.testing.decorators.cleanup(style=None)[source] -
Декоратор, гарантирующий сброс любого глобального состояния перед запуском теста.
Параметры: -
style : str, optional -
Имя стиля, который нужно применить.
-
-
matplotlib.testing.decorators.image_comparison(baseline_images, extensions=None, tol=0, freetype_version=None, remove_text=False, savefig_kwarg=None, style='_classic_test')[source] -
Сравнивает изображения, сгенерированные тестом, с изображениями в baseline_images. Они должны совпадать, иначе будет поднято исключение
ImageComparisonFailure.Параметры: -
baseline_images : list or None -
Список строк, содержащих имена изображений, сгенерированных вызовами
matplotlib.figure.savefig().Если None, функция теста должна использовать фикстуру
baseline_images, либо в качестве параметра, либо сpytest.mark.usefixtures. Это значение разрешается только при использовании pytest. -
extensions : None or list of str -
Список расширений для проверки, например,
['png', 'pdf'].Если None, по умолчанию используются все поддерживаемые расширения: png, pdf и svg.
Для того чтобы размер набора тестов не раздувался, мы включаем только
svgилиpdfвыходные данные, если тест явно использует функциональность, зависящую от этого бэкэнда (см. также декораторcheck_figures_equalдля этой цели). -
tol : float, optional, default: 0 -
Пороговое значение RMS, превышение которого указывает на провал теста.
-
freetype_version : str or tuple -
Ожидаемая версия FreeType или диапазон версий для успешного прохождения теста.
-
remove_text : bool -
Удалить заголовок и метки с осей из рисунка перед сравнением. Это полезно для того, чтобы базовые изображения не зависели от вариаций в рендеринге текста между различными версиями FreeType.
Это не удаляет другой, более преднамеренный текст, такой как легенды и аннотации.
-
savefig_kwarg : dict -
Дополнительные аргументы, передаваемые методу savefig.
-
style : string -
Необязательное имя базового стиля, который нужно применить к тесту изображения. Сам тест может также применять дополнительные стили, если это необходимо. По умолчанию используется стиль '_classic_test'.
-
-
matplotlib.testing.decorators.remove_ticks_and_titles(figure)[source]
-
[Устаревший] Пропускает тест, если команда недоступна.
Параметры: -
cmd : list of str -
должна быть полной командой, которая не должна возвращать ненулевой код выхода, например, ["latex", "-version"]
Примечания
Устарело начиная с версии 3.0.
-
-
matplotlib.testing.decorators.switch_backend(backend)[source] -
[Устаревший]
Примечания
Устарело начиная с версии 3.1:
matplotlib.testing.disable_internet
-
matplotlib.testing.disable_internet.check_internet_off(original_function)[source] -
Обертывает
original_function, которое в большинстве случаев предполагается, что это методsocket.socket, для повышения исключенияIOErrorдля любых операций с сокетами AF_INET, не относящимися к локальному устройству.
-
matplotlib.testing.disable_internet.no_internet(verbose=False)[source] -
Менеджер контекста для временного отключения доступа в интернет (если он еще не отключен). Если он был отключен до входа в менеджер контекста (т. е.
turn_off_internetбыл вызван ранее), то это просто бездействие и доступ в интернет остается отключенным до явного вызоваturn_on_internet.
-
matplotlib.testing.disable_internet.turn_off_internet(verbose=False)[source] -
Отключить доступ в интернет через python, предотвратив создание подключений с помощью модуля socket. Предполагается, что это можно обойти, используя другие способы доступа в интернет, но все стандартные модули python (urllib, requests и т. д.) используют socket [ссылка на источник необходима].
-
matplotlib.testing.disable_internet.turn_on_internet(verbose=False)[source] -
Восстановить доступ в интернет. Не используется, но сохраняется на случай необходимости.
matplotlib.testing.exceptions
-
exception matplotlib.testing.exceptions.ImageComparisonFailure[source] -
Базовый класс:
AssertionErrorПоднимает это исключение, чтобы отметить тест как сравнение двух изображений.
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/testing_api.html