diff --git a/scipy-notebook/test/test_matplotlib.py b/scipy-notebook/test/test_matplotlib.py index 009fec82..34a63f79 100644 --- a/scipy-notebook/test/test_matplotlib.py +++ b/scipy-notebook/test/test_matplotlib.py @@ -9,13 +9,24 @@ import os LOGGER = logging.getLogger(__name__) -def test_matplotlib(container): - """Test that matplotlib is able to plot a graph and write it as an image""" - host_data_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "data") +@pytest.mark.parametrize("test_file,expected_file,description", + [ + ("matplotlib_1.py", "test.png", + "Test that matplotlib is able to plot a graph and write it as an image ..."), + ("matplotlib_fonts_1.py", "test_fonts.png", + "Test cm-super latex labels in matplotlib ...") + ]) +def test_matplotlib(container, test_file, expected_file, description): + """Various tests performed on matplotlib + + - Test that matplotlib is able to plot a graph and write it as an image + - Test matplotlib latex fonts, which depend on the cm-super package + """ + host_data_dir = os.path.join(os.path.dirname( + os.path.realpath(__file__)), "data") cont_data_dir = "/home/jovyan/data" - test_file = "matplotlib_1.py" output_dir = "/tmp" - LOGGER.info(f"Test that matplotlib is able to plot a graph and write it as an image ...") + LOGGER.info(description) command = "sleep infinity" running_container = container.run( volumes={host_data_dir: {"bind": cont_data_dir, "mode": "ro"}}, @@ -28,35 +39,7 @@ def test_matplotlib(container): LOGGER.debug(cmd.output.decode("utf-8")) # Checking if the file is generated # https://stackoverflow.com/a/15895594/4413446 - expected_file = f"{output_dir}/test.png" - command = f"test -s {expected_file}" - cmd = running_container.exec_run(command) - assert cmd.exit_code == 0, f"Command {command} failed" - LOGGER.debug(cmd.output.decode("utf-8")) - - -def test_matplotlib_fonts(container): - """Test matplotlib latex fonts, which depend on the cm-super package""" - host_data_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), - "data") - cont_data_dir = "/home/jovyan/data" - test_file = "matplotlib_fonts_1.py" - output_dir = "/tmp" - LOGGER.info(f"Test cm-super latex labels in matplotlib ...") - command = "sleep infinity" - running_container = container.run( - volumes={host_data_dir: {"bind": cont_data_dir, "mode": "ro"}}, - tty=True, - command=["start.sh", "bash", "-c", command], - ) - command = f"python {cont_data_dir}/{test_file}" - cmd = running_container.exec_run(command) - assert cmd.exit_code == 0, f"Command {command} failed" - LOGGER.debug(cmd.output.decode("utf-8")) - # Checking if the file is generated - # https://stackoverflow.com/a/15895594/4413446 - expected_file = f"{output_dir}/test_fonts.png" - command = f"test -s {expected_file}" + command = f"test -s {output_dir}/{expected_file}" cmd = running_container.exec_run(command) assert cmd.exit_code == 0, f"Command {command} failed" LOGGER.debug(cmd.output.decode("utf-8"))