Skip to content

Commit 0ed61d9

Browse files
committed
test: improve coverage
1 parent 54e66d3 commit 0ed61d9

File tree

4 files changed

+42
-2
lines changed

4 files changed

+42
-2
lines changed

src/mapstp/merge.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def is_defined(number: Union[int, float]) -> bool:
3232
true - if `number` is a valid number,
3333
false - otherwise
3434
"""
35-
return number is not None and not math.isnan(number)
35+
return number is not None and number is not pd.NA and not math.isnan(number)
3636

3737

3838
def extract_number_and_density(

src/mapstp/utils/resource.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ def _resolve_package(package: str = None) -> str:
6161
if package is None:
6262
module = inspect.getmodule(inspect.stack()[2][0])
6363
if module is None:
64-
raise ValueError("Cannot define package.")
64+
raise ValueError("Cannot define package.") # pragma: no cover
6565
package = module.__name__
6666
return package

tests/test_merge.py

+34
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import mapstp.merge as m
2+
import numpy as np
3+
import pandas as pd
24
import pytest
35

46

@@ -7,5 +9,37 @@ def test_merger(data):
79
assert sections.cells is not None
810

911

12+
@pytest.mark.parametrize(
13+
"number, density, factor, expected",
14+
[
15+
(1, 7.93, pd.NA, (1, 7.93)),
16+
(1, 7.93, np.NAN, (1, 7.93)),
17+
(1, 2.0, 2.0, (1, 4.0)),
18+
],
19+
)
20+
def test_extract_number_and_density(number, density, factor, expected):
21+
df = pd.DataFrame.from_records(
22+
data=[(number, density, factor)], columns="number density factor".split()
23+
)
24+
actual = m.extract_number_and_density(0, df)
25+
assert expected == actual
26+
27+
28+
@pytest.mark.parametrize(
29+
"number, density, factor, exception",
30+
[
31+
(-1, 7.93, pd.NA, m.PathInfoError),
32+
(1, -7.93, np.NAN, m.PathInfoError),
33+
(1, 2.0, -2.0, m.PathInfoError),
34+
],
35+
)
36+
def test_extract_number_and_density_bad_path(number, density, factor, exception):
37+
df = pd.DataFrame.from_records(
38+
data=[(number, density, factor)], columns="number density factor".split()
39+
)
40+
with pytest.raises(exception):
41+
m.extract_number_and_density(0, df)
42+
43+
1044
if __name__ == "__main__":
1145
pytest.main()

tests/utils/test_resource.py

+6
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ def test_filename_resolver_when_resource_doesnt_exist(package, resource, expecte
3939
).exists(), f"The resource '{resource}' should not be available"
4040

4141

42+
def test_filename_resolver_when_package_doesnt_exist():
43+
resolver = filename_resolver("not_existing")
44+
with pytest.raises(ModuleNotFoundError):
45+
resolver("something.txt")
46+
47+
4248
def test_path_resolver():
4349
resolver = path_resolver()
4450
actual = resolver(THIS_FILENAME)

0 commit comments

Comments
 (0)