From 4f6a0c6560a7c8e47456249a29fc2a76c4966369 Mon Sep 17 00:00:00 2001 From: Alex Fikl Date: Thu, 21 Jun 2018 20:39:23 -0500 Subject: [PATCH] use pytest.raises with a custom expression --- meshmode/__init__.py | 10 ++++++++++ meshmode/discretization/visualization.py | 6 ++++-- meshmode/mesh/visualization.py | 3 ++- test/test_meshmode.py | 23 +++++++---------------- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/meshmode/__init__.py b/meshmode/__init__.py index 1c38d878..9512b4a2 100644 --- a/meshmode/__init__.py +++ b/meshmode/__init__.py @@ -26,8 +26,11 @@ THE SOFTWARE. __doc__ = """ .. exception:: Error .. exception:: DataUnavailable +.. exception:: FileExistsError """ +import six + class Error(RuntimeError): pass @@ -35,3 +38,10 @@ class Error(RuntimeError): class DataUnavailable(Error): pass + + +if six.PY3: + from builtins import FileExistsError +else: + class FileExistsError(OSError): + pass diff --git a/meshmode/discretization/visualization.py b/meshmode/discretization/visualization.py index 72abb047..2352081e 100644 --- a/meshmode/discretization/visualization.py +++ b/meshmode/discretization/visualization.py @@ -336,11 +336,12 @@ class Visualizer(object): vector_format=VF_LIST_OF_COMPONENTS)) import os + from meshmode import FileExistsError if os.path.exists(file_name): if overwrite: os.remove(file_name) else: - raise RuntimeError("output file '%s' already exists" % file_name) + raise FileExistsError("output file '%s' already exists" % file_name) with open(file_name, "w") as outf: AppendedDataXMLGenerator(compressor)(grid).write(outf) @@ -437,11 +438,12 @@ def write_nodal_adjacency_vtk_file(file_name, mesh, dtype=np.uint8)) import os + from meshmode import FileExistsError if os.path.exists(file_name): if overwrite: os.remove(file_name) else: - raise RuntimeError("output file '%s' already exists" % file_name) + raise FileExistsError("output file '%s' already exists" % file_name) with open(file_name, "w") as outf: AppendedDataXMLGenerator(compressor)(grid).write(outf) diff --git a/meshmode/mesh/visualization.py b/meshmode/mesh/visualization.py index d9191c57..53da2663 100644 --- a/meshmode/mesh/visualization.py +++ b/meshmode/mesh/visualization.py @@ -226,11 +226,12 @@ def write_vertex_vtk_file(mesh, file_name, cell_types=cell_types) import os + from meshmode import FileExistsError if os.path.exists(file_name): if overwrite: os.remove(file_name) else: - raise RuntimeError("output file '%s' already exists" % file_name) + raise FileExistsError("output file '%s' already exists" % file_name) with open(file_name, "w") as outf: AppendedDataXMLGenerator(compressor)(grid).write(outf) diff --git a/test/test_meshmode.py b/test/test_meshmode.py index 05bbe5ad..e97d8efa 100644 --- a/test/test_meshmode.py +++ b/test/test_meshmode.py @@ -1045,28 +1045,19 @@ def test_vtk_overwrite(ctx_getter): def _try_write_vtk(writer, obj): import os + from meshmode import FileExistsError + filename = "test_vtk_overwrite.vtu" if os.path.exists(filename): os.remove(filename) writer(filename, []) - try: + with pytest.raises(FileExistsError): writer(filename, []) - runtime_error = False - except RuntimeError: - print("file cannot be overwritten") - runtime_error = True - assert runtime_error - - try: - writer(filename, [], overwrite=True) - print("file overwritten") - runtime_error = False - except RuntimeError: - runtime_error = True - assert not runtime_error - - os.remove(filename) + + writer(filename, [], overwrite=True) + if os.path.exists(filename): + os.remove(filename) ctx = ctx_getter() queue = cl.CommandQueue(ctx) -- GitLab