- class ImageComparison(image_path, image_name, reltol=1, adjust_tolerance=True, plt_close_all_enter=True, plt_close_all_exit=True, *args, **kwargs)¶
Handles the comparison against a baseline image in an image test.
Baseline images are created using matplotlib version 1.3.1.
- image_path (str) Path to directory where the baseline image is located
- image_name (str) Filename (with suffix, without directory path) of the baseline image
- reltol (float, optional) Multiplier that is applied to the default tolerance value (i.e. 10 means a 10 times harder to pass test tolerance).
- adjust_tolerance (bool, optional) Adjust the tolerance based on the matplotlib version. Can optionally be turned off to simply compare two images.
- plt_close_all_enter (bool) Whether to close all open figures when entering context (matplotlib.pyplot.close() with “all” as first argument.
- plt_close_all_exit (bool) Whether to call matplotlib.pyplot.close() with “all” as first argument (close all figures) or no arguments (close active figure). Has no effect if plt_close=False.
The class should be used with Python’s “with” statement. When setting up, the matplotlib rcdefaults are set to ensure consistent image testing. After the plotting is completed, the ImageComparison.compare() method is called automatically at the end of the “with” block, comparing against the previously specified baseline image. This raises an exception (if the test fails) with the message string from matplotlib.testing.compare.compare_images(). Afterwards all temporary files are deleted automatically.
If images created during the testrun should be kept after the test, set environment variable OBSPY_KEEP_IMAGES to any value before executing the test (e.g. with $ OBSPY_KEEP_IMAGES= obspy-runtests or $ OBSPY_KEEP_IMAGES= python test_sometest.py). For obspy-runtests the option “keep-images” can also be used instead of setting an environment variable. Created images and diffs for failing tests are then stored in a subfolder “testrun” under the baseline image’s directory. To only keep failed images and the corresponding diff image, additionally set environment variable OBSPY_KEEP_ONLY_FAILED_IMAGES to any value before executing the test.
>>> from obspy import read >>> with ImageComparison("/my/baseline/folder", 'plot.png') as ic: ... st = read() ... st.plot(outfile=ic.name) ... # image is compared against baseline image automatically
__abstractmethods__ frozenset() -> empty frozenset object __dict__ __doc__ str(object=’‘) -> str __module__ str(object=’‘) -> str closed
close compare Run a custom version detach Disconnect this buffer from its underlying raw stream and return it. fileno Returns underlying file descriptor if one exists. flush Flush write buffers, if applicable. isatty Return whether this is an ‘interactive’ stream. read read1 Read and return up to n bytes, with at most one read() call to the underlying raw stream. readable Return whether object was opened for reading. readinto readline Read and return a line from the stream. readlines Return a list of lines from the stream. seek seekable Return whether object supports random access. tell truncate Truncate file to size bytes. writable Return whether object was opened for writing. write writelines
Private methods are mainly for internal/developer use and their API might change without notice.
_checkClosed _checkReadable _checkSeekable _checkWritable _copy_tempfiles Copies created images from tempfiles to a subfolder of baseline images. _get_final_filenames Helper function returning the _upload_images Uploads images to imgur.
__dir__ default dir() implementation __enter__ Set matplotlib defaults. __exit__ Remove tempfiles and store created images if OBSPY_KEEP_IMAGES __format__ default object formatter __init__ __new__ Create and return a new object. __reduce__ helper for pickle __reduce_ex__ helper for pickle __sizeof__ size of object in memory, in bytes __subclasshook__ Abstract classes can override this to customize issubclass().