MilesCranmer commited on
Commit
acce2c2
1 Parent(s): 099a9c6

Convert static libpython test to proper unittest

Browse files
.github/workflows/CI.yml CHANGED
@@ -132,7 +132,7 @@ jobs:
132
  - name: "Install Coverage tool"
133
  run: python3 -m pip install coverage coveralls
134
  - name: "Ensure that static libpython warning appears"
135
- run: coverage run --source=pysr --omit='*/feynman_problems.py' test/test_static_libpython_warning.py
136
  - name: "Run tests"
137
  run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test
138
  - name: Coveralls
 
132
  - name: "Install Coverage tool"
133
  run: python3 -m pip install coverage coveralls
134
  - name: "Ensure that static libpython warning appears"
135
+ run: coverage run --source=pysr --omit='*/feynman_problems.py' -m unittest test.test_static_libpython_warning.py
136
  - name: "Run tests"
137
  run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test
138
  - name: Coveralls
test/test_static_libpython_warning.py CHANGED
@@ -1,13 +1,20 @@
1
- """Test that running PySR with static libpython raises a warning."""
2
 
 
 
 
 
 
3
  import warnings
4
  import pysr
5
 
6
  # Taken from https://stackoverflow.com/a/14463362/2689923
7
- with warnings.catch_warnings(record=True) as warning_catcher:
8
- warnings.simplefilter("always")
9
- pysr.sr.init_julia()
 
 
10
 
11
- assert len(warning_catcher) == 1
12
- assert issubclass(warning_catcher[-1].category, UserWarning)
13
- assert "static" in str(warning_catcher[-1].message)
 
1
+ """Test that running PySR with static libpython raises a warning.
2
 
3
+ Note: This test will ONLY pass with statically-linked python binaries, such
4
+ as provided by conda. It will not pass on other versions of python, and that is
5
+ okay."""
6
+
7
+ import unittest
8
  import warnings
9
  import pysr
10
 
11
  # Taken from https://stackoverflow.com/a/14463362/2689923
12
+ class TestLibpythonWarning(unittest.TestCase):
13
+ def test_warning(self):
14
+ with warnings.catch_warnings(record=True) as warning_catcher:
15
+ warnings.simplefilter("always")
16
+ pysr.sr.init_julia()
17
 
18
+ self.assertEqual(len(warning_catcher), 1)
19
+ self.assertTrue(issubclass(warning_catcher[-1].category, UserWarning))
20
+ self.assertIn("static", str(warning_catcher[-1].message))