From eda5d77549d67e1fec15a26f74d462efaf3fe4e4 Mon Sep 17 00:00:00 2001
From: markus holzer <markus.holzer@fau.de>
Date: Wed, 5 Aug 2020 13:06:58 +0200
Subject: [PATCH] ubuntu pipeline fix

---
 conftest.py | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/conftest.py b/conftest.py
index 93952522..58b088ba 100644
--- a/conftest.py
+++ b/conftest.py
@@ -25,6 +25,12 @@ except ImportError:
 SCRIPT_FOLDER = os.path.dirname(os.path.realpath(__file__))
 sys.path.insert(0, os.path.abspath('pystencils'))
 
+# the Ubuntu pipeline uses an older version of pytest which uses deprecated functionality.
+# This leads to many warinings in the test and coverage pipeline.
+pytest_numeric_version = [int(x, 10) for x in pytest.__version__.split('.')]
+pytest_numeric_version.reverse()
+pytest_version = sum(x * (100 ** i) for i, x in enumerate(pytest_numeric_version))
+
 
 def add_path_to_ignore(path):
     if not os.path.exists(path):
@@ -152,7 +158,10 @@ class IPyNbFile(pytest.File):
             warnings.filterwarnings("ignore", "IPython.core.inputsplitter is deprecated")
             notebook = nbformat.read(notebook_contents, 4)
             code, _ = exporter.from_notebook_node(notebook)
-        yield IPyNbTest.from_parent(name=self.name, parent=self, code=code)
+        if pytest_version >= 50403:
+            yield IPyNbTest.from_parent(name=self.name, parent=self, code=code)
+        else:
+            yield IPyNbTest(self.name, self, code)
 
     def teardown(self):
         pass
@@ -161,4 +170,7 @@ class IPyNbFile(pytest.File):
 def pytest_collect_file(path, parent):
     glob_exprs = ["*demo*.ipynb", "*tutorial*.ipynb", "test_*.ipynb"]
     if any(path.fnmatch(g) for g in glob_exprs):
-        return IPyNbFile.from_parent(fspath=path, parent=parent)
+        if pytest_version >= 50403:
+            return IPyNbFile.from_parent(fspath=path, parent=parent)
+        else:
+            return IPyNbFile(path, parent)
-- 
GitLab