Skip to content

Commit 2eed7bd

Browse files
committed
Include simple tests in package
1 parent feb7829 commit 2eed7bd

File tree

7 files changed

+43
-4
lines changed

7 files changed

+43
-4
lines changed

CHANGELOG.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,30 @@ Changelog
44
master
55
------
66

7+
- Include simple tests in package
8+
9+
10+
0.2.3
11+
-----
12+
13+
- Include LICENSE in package
14+
15+
16+
0.2.2
17+
-----
18+
19+
- Add conda dev environment details
20+
21+
22+
0.2.1
23+
-----
24+
25+
- Update setup.py to reflect actual supported python versions
26+
27+
28+
0.2.0
29+
-----
30+
731
- (`#4 <https://github.com/znicholls/netcdf-scm/pull/4>`_) Add work done elsewhere previously
832
- ``SCMCube`` base class for handling netCDF files
933
- reading, cutting and manipulating files for SCM use

MANIFEST.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@ include README.rst
22
include LICENSE
33
include CHANGELOG.rst
44

5+
recursive-include tests *.py
6+
57
include versioneer.py
68
include src/netcdf_scm/_version.py

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def run_tests(self):
6161
"simple climate model",
6262
"reduced complexity climate model",
6363
],
64-
packages=find_packages(SOURCE_DIR),
64+
packages=find_packages(SOURCE_DIR), # no tests/docs in `src` so don't need exclude
6565
package_dir={"": SOURCE_DIR},
6666
# package_data={
6767
# "": ["*.csv"],

tests/conftest.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from os.path import join, dirname, abspath
1+
from os.path import join, dirname, abspath, isdir
22
import warnings
33

44

@@ -35,6 +35,9 @@
3535
)
3636

3737

38+
tdata_required = pytest.mark.skipif(not isdir(TEST_DATA_ROOT_DIR), reason="test data required")
39+
40+
3841
def get_test_cube_lon():
3942
lon = iris.coords.DimCoord(
4043
np.array([45, 135, 225, 315]),

tests/integration/test_integrated_behaviour_scmcube.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@
1212

1313

1414
from netcdf_scm.iris_cube_wrappers import SCMCube, MarbleCMIP5Cube
15-
from conftest import TEST_TAS_FILE, TEST_AREACELLA_FILE
15+
from conftest import TEST_TAS_FILE, TEST_AREACELLA_FILE, tdata_required
1616

1717

1818
class TestSCMCubeIntegration(object):
1919
tclass = SCMCube
2020

21+
@tdata_required
2122
def test_load_data_and_areacella(self, test_cube):
2223
tfile = TEST_TAS_FILE
2324
test_cube.get_file_from_load_data_args = MagicMock(return_value=tfile)

tests/unit/test_scmcube.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616

1717
from netcdf_scm.iris_cube_wrappers import SCMCube, MarbleCMIP5Cube
18-
from conftest import TEST_DATA_MARBLE_CMIP5_DIR, TEST_TAS_FILE, TEST_AREACELLA_FILE
18+
from conftest import TEST_DATA_MARBLE_CMIP5_DIR, TEST_TAS_FILE, TEST_AREACELLA_FILE, tdata_required
1919

2020

2121
class TestSCMCube(object):
@@ -96,6 +96,7 @@ def test_process_load_data_warnings(self, test_cube):
9696
mock_warn_area_result[3].message
9797
)
9898

99+
@tdata_required
99100
def test_add_areacella_measure(self, test_cube):
100101
# can safely ignore warnings here
101102
with warnings.catch_warnings():
@@ -114,6 +115,7 @@ def test_add_areacella_measure(self, test_cube):
114115
["cell_area" in cm.standard_name for cm in test_cube.cube.cell_measures()]
115116
)
116117

118+
@tdata_required
117119
def test_load_missing_variable_error(self, test_cube):
118120
tfile = TEST_TAS_FILE
119121
test_cube.get_file_from_load_data_args = MagicMock(return_value=tfile)

tests/unit/test_utils.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818
take_lat_lon_mean,
1919
apply_mask,
2020
)
21+
from conftest import tdata_required
2122

2223

24+
@tdata_required
2325
def test_assert_only_cube_dim_coord_is_time(test_generic_tas_cube):
2426
original_cube = test_generic_tas_cube.cube
2527

@@ -52,6 +54,7 @@ def test_assert_only_cube_dim_coord_is_time(test_generic_tas_cube):
5254
_assert_only_cube_dim_coord_is_time(test_generic_tas_cube)
5355

5456

57+
@tdata_required
5558
@patch("netcdf_scm.utils._assert_only_cube_dim_coord_is_time")
5659
def test_get_cube_timeseries_data(mock_assert_only_time, test_generic_tas_cube):
5760
expected = test_generic_tas_cube.cube.data
@@ -61,6 +64,7 @@ def test_get_cube_timeseries_data(mock_assert_only_time, test_generic_tas_cube):
6164
mock_assert_only_time.assert_called_with(test_generic_tas_cube)
6265

6366

67+
@tdata_required
6468
@pytest.mark.parametrize("out_calendar", ["gregorian", "julian", "365_day"])
6569
def test_get_cube_time_axis_in_calendar(test_generic_tas_cube, out_calendar):
6670
tcn = test_generic_tas_cube.cube.coord_dims("time")[0]
@@ -71,6 +75,7 @@ def test_get_cube_time_axis_in_calendar(test_generic_tas_cube, out_calendar):
7175
np.testing.assert_array_equal(result, expected)
7276

7377

78+
@tdata_required
7479
def test_assert_all_time_axes_same(test_generic_tas_cube):
7580
tcn = test_generic_tas_cube.cube.coord_dims("time")[0]
7681
ttime = test_generic_tas_cube.cube.dim_coords[tcn]
@@ -85,6 +90,7 @@ def test_assert_all_time_axes_same(test_generic_tas_cube):
8590
assert_all_time_axes_same([otime_axis, ttime_axis])
8691

8792

93+
@tdata_required
8894
def test_take_lat_lon_mean(test_generic_tas_cube):
8995
with warnings.catch_warnings():
9096
warnings.filterwarnings("ignore", ".*Using DEFAULT_SPHERICAL.*")
@@ -99,6 +105,7 @@ def test_take_lat_lon_mean(test_generic_tas_cube):
99105
assert result.cube.cell_methods[0].coord_names == ("time",)
100106

101107

108+
@tdata_required
102109
def test_apply_mask(test_generic_tas_cube):
103110
tmask = np.full(test_generic_tas_cube.cube.shape, True)
104111

0 commit comments

Comments
 (0)