Skip to content

Commit 87a13c6

Browse files
authored
Full test coverage (#14)
1 parent 27ac382 commit 87a13c6

File tree

5 files changed

+17
-8
lines changed

5 files changed

+17
-8
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
cache-dependency-path: requirements-dev.txt
3535

3636
- name: Install dev dependencies
37-
run: pip install --root-user-action=ignore --requirement requirements-dev.txt
37+
run: pip install --root-user-action=ignore --upgrade pip --requirement requirements-dev.txt
3838

3939
# Install library
4040
- name: Install maybe

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ PYTHON_PRE_310 := $(shell python -c "import sys; print(sys.version_info < (3, 10
66

77
install: phony
88
@echo Installing dependencies...
9-
pip install --require-virtualenv -r requirements-dev.txt
10-
pip install --require-virtualenv -e .
9+
python -m pip install --require-virtualenv -r requirements-dev.txt
10+
python -m pip install --require-virtualenv -e .
1111

1212
lint: phony lint-flake lint-mypy
1313

src/maybe/maybe.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
Union,
1414
)
1515

16-
if sys.version_info >= (3, 10):
16+
if sys.version_info >= (3, 10): # pragma: no cover
1717
from typing import ParamSpec, TypeAlias, TypeGuard
18-
else:
18+
else: # pragma: no cover
1919
from typing_extensions import ParamSpec, TypeAlias, TypeGuard
2020

2121

tests/test_maybe.py

+11-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import pytest
66

7-
from maybe import Some, SomeNothing, Maybe, Nothing, UnwrapError
7+
from maybe import Some, SomeNothing, Maybe, Nothing, UnwrapError, is_nothing, is_some
88

99

1010
def test_some_factories() -> None:
@@ -21,6 +21,7 @@ def test_nothing_factory() -> None:
2121
def test_eq() -> None:
2222
assert Some(1) == Some(1)
2323
assert Nothing() == Nothing()
24+
assert not (Nothing() != Nothing())
2425
assert Some(1) != Nothing()
2526
assert Some(1) != Some(2)
2627
assert not (Some(1) != Some(1))
@@ -60,6 +61,14 @@ def test_some() -> None:
6061
assert res.some_value == 'haha'
6162

6263

64+
def test_some_guard() -> None:
65+
assert is_some(Some(1))
66+
67+
68+
def test_nothing_guard() -> None:
69+
assert is_nothing(Nothing())
70+
71+
6372
def test_nothing() -> None:
6473
res = Nothing()
6574
assert res.is_some() is False
@@ -185,7 +194,7 @@ def test_slots() -> None:
185194

186195

187196
def sq(i: int) -> Maybe[int]:
188-
return Some(i * i)
197+
return Some(i**2)
189198

190199

191200
def to_nothing(_: int) -> Maybe[int]:

tests/type-checking/test_maybe.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
some = personalized_greeting.some()
9393
reveal_type(some) # N: Revealed type is "Union[builtins.str, None]"
9494
95-
- case: map_maybe
95+
- case: typeguard
9696
disable_cache: false
9797
main: |
9898
from maybe import Maybe, Some, Nothing, is_some, is_nothing

0 commit comments

Comments
 (0)