From 7a067241440bb1b39af1d3292fc2cfaa8d3f33fc Mon Sep 17 00:00:00 2001
From: Michael Williams <michael.williams@ligo.org>
Date: Mon, 26 Feb 2024 19:41:10 +0000
Subject: [PATCH] TST: add option to skip ROQs tests

---
 test/conftest.py           | 19 +++++++++++++++++++
 test/gw/likelihood_test.py |  6 ++++++
 2 files changed, 25 insertions(+)
 create mode 100644 test/conftest.py

diff --git a/test/conftest.py b/test/conftest.py
new file mode 100644
index 000000000..d08c38604
--- /dev/null
+++ b/test/conftest.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+def pytest_addoption(parser):
+    parser.addoption(
+        "--skip-roqs", action="store_true", default=False, help="Skip all tests that require ROQs"
+    )
+
+
+def pytest_configure(config):
+    config.addinivalue_line("markers", "requires_roqs: mark a test that requires ROQs")
+
+
+def pytest_collection_modifyitems(config, items):
+    if config.getoption("--skip-roqs"):
+        skip_roqs = pytest.mark.skip(reason="Skipping tests that require ROQs")
+        for item in items:
+            if "requires_roqs" in item.keywords:
+                item.add_marker(skip_roqs)
diff --git a/test/gw/likelihood_test.py b/test/gw/likelihood_test.py
index 718e18696..0c1575945 100644
--- a/test/gw/likelihood_test.py
+++ b/test/gw/likelihood_test.py
@@ -3,6 +3,7 @@ import unittest
 import tempfile
 from itertools import product
 from parameterized import parameterized
+import pytest
 
 import h5py
 import numpy as np
@@ -273,6 +274,7 @@ class TestGWTransient(unittest.TestCase):
         )
 
 
+@pytest.mark.requires_roqs
 class TestROQLikelihood(unittest.TestCase):
     def setUp(self):
         self.duration = 4
@@ -538,6 +540,7 @@ class TestROQLikelihood(unittest.TestCase):
             )
 
 
+@pytest.mark.requires_roqs
 class TestRescaledROQLikelihood(unittest.TestCase):
     def test_rescaling(self):
 
@@ -612,6 +615,7 @@ class TestRescaledROQLikelihood(unittest.TestCase):
         )
 
 
+@pytest.mark.requires_roqs
 class TestROQLikelihoodHDF5(unittest.TestCase):
     """
     Test ROQ likelihood constructed from .hdf5 basis
@@ -846,6 +850,7 @@ class TestROQLikelihoodHDF5(unittest.TestCase):
             self.assertLess(np.abs(llr - llr_roq), max_llr_error)
 
 
+@pytest.mark.requires_roqs
 class TestCreateROQLikelihood(unittest.TestCase):
     """
     Test if ROQ likelihood is constructed without any errors from .hdf5 or .npy basis
@@ -966,6 +971,7 @@ class TestCreateROQLikelihood(unittest.TestCase):
         )
 
 
+@pytest.mark.requires_roqs
 class TestInOutROQWeights(unittest.TestCase):
 
     @parameterized.expand(['npz', 'hdf5'])
-- 
GitLab