From 72ae19b0abeac3ab79b02a1798f9ea86827dabea Mon Sep 17 00:00:00 2001 From: Thomas Schmelzer Date: Mon, 31 Jul 2023 14:05:08 -0700 Subject: [PATCH] tests --- cvx/cli/smallest_eigenvalue.py | 2 +- tests/resources/.gitkeep | 0 tests/resources/test.bson | Bin 0 -> 80271 bytes tests/test_smallest_eigenvalue.py | 8 ++++++++ tests/test_trivial.py | 2 -- tests/test_weather.py | 24 ++++++++++++++++++++++++ 6 files changed, 33 insertions(+), 3 deletions(-) delete mode 100644 tests/resources/.gitkeep create mode 100644 tests/resources/test.bson create mode 100644 tests/test_smallest_eigenvalue.py delete mode 100644 tests/test_trivial.py create mode 100644 tests/test_weather.py diff --git a/cvx/cli/smallest_eigenvalue.py b/cvx/cli/smallest_eigenvalue.py index d9b7e74..314bb89 100644 --- a/cvx/cli/smallest_eigenvalue.py +++ b/cvx/cli/smallest_eigenvalue.py @@ -22,5 +22,5 @@ def smallest_ev(bson_file) -> None: print(np.min(np.linalg.eigh(matrix)[0])) -def main(): +def main(): # pragma: no cover fire.Fire(smallest_ev) diff --git a/tests/resources/.gitkeep b/tests/resources/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tests/resources/test.bson b/tests/resources/test.bson new file mode 100644 index 0000000000000000000000000000000000000000..42e821cc41dcf385477e0ee2c3f4f18a64756062 GIT binary patch literal 80271 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 literal 0 HcmV?d00001 diff --git a/tests/test_smallest_eigenvalue.py b/tests/test_smallest_eigenvalue.py new file mode 100644 index 0000000..cc035e4 --- /dev/null +++ b/tests/test_smallest_eigenvalue.py @@ -0,0 +1,8 @@ +from cvx.cli.smallest_eigenvalue import smallest_ev + + +def test_smallest_eigenvalue(resource_dir): + file = resource_dir / "test.bson" + + smallest_ev(file) + diff --git a/tests/test_trivial.py b/tests/test_trivial.py deleted file mode 100644 index 50b2c76..0000000 --- a/tests/test_trivial.py +++ /dev/null @@ -1,2 +0,0 @@ -def test_trivial(): - assert True diff --git a/tests/test_weather.py b/tests/test_weather.py new file mode 100644 index 0000000..c0fd790 --- /dev/null +++ b/tests/test_weather.py @@ -0,0 +1,24 @@ +import pytest +import mock + +from cvx.cli.weather import cli + +def test_weather(): + temperature = cli(metric="temperature") + print(temperature) + assert isinstance(temperature, float) + assert temperature > -50 + assert temperature < 50 + + +def test_missing_metric(): + with pytest.raises(ValueError): + cli(metric="maffay") + + +def test_server_down(): + with mock.patch("requests.get", return_value=mock.Mock(status_code=500)): + with pytest.raises(ConnectionError): + cli("temperature") + +