Skip to content

Commit f2f2c15

Browse files
authored
Merge pull request #36 from pomponchik/develop
0.0.25
2 parents 5c01a6a + ede3b15 commit f2f2c15

File tree

6 files changed

+60
-10
lines changed

6 files changed

+60
-10
lines changed

.github/workflows/tests_and_coverage.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
run: pip list
3333

3434
- name: Run tests and show coverage on the command line
35-
run: coverage run --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m
35+
run: coverage run --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m --fail-under=100
3636

3737
- name: Upload reports to codecov
3838
env:
@@ -45,4 +45,4 @@ jobs:
4545
./codecov -t ${CODECOV_TOKEN}
4646
4747
- name: Run tests and show the branch coverage on the command line
48-
run: coverage run --branch --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m
48+
run: coverage run --branch --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m --fail-under=100

.github/workflows/tests_and_coverage_old.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
run: pip list
3333

3434
- name: Run tests and show coverage on the command line
35-
run: coverage run --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m
35+
run: coverage run --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m --fail-under=100
3636

3737
- name: Upload reports to codecov
3838
env:
@@ -45,4 +45,4 @@ jobs:
4545
./codecov -t ${CODECOV_TOKEN}
4646
4747
- name: Run tests and show the branch coverage on the command line
48-
run: coverage run --branch --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m
48+
run: coverage run --branch --source=cantok --omit="*tests*" -m pytest --cache-clear --assert=plain && coverage report -m --fail-under=100

cantok/tokens/abstract_token.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ class AbstractToken(ABC):
7373
rollback_if_nondirect_polling = False
7474

7575
def __init__(self, *tokens: 'AbstractToken', cancelled: bool = False) -> None:
76-
self.tokens = tokens
76+
from cantok import DefaultToken
77+
78+
self.tokens = [token for token in tokens if not isinstance(token, DefaultToken)]
7779
self._cancelled = cancelled
7880
self.lock = RLock()
7981

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "cantok"
7-
version = "0.0.24"
7+
version = "0.0.25"
88
authors = [
99
{ name="Evgeniy Blinov", email="zheni-b@yandex.ru" },
1010
]

tests/units/tokens/test_abstract_token.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@ def test_str(token_fabric):
120120

121121
@pytest.mark.parametrize(
122122
'first_token_fabric',
123-
ALL_TOKENS_FABRICS + [DefaultToken],
123+
ALL_TOKENS_FABRICS,
124124
)
125125
@pytest.mark.parametrize(
126126
'second_token_fabric',
127-
ALL_TOKENS_FABRICS + [DefaultToken],
127+
ALL_TOKENS_FABRICS,
128128
)
129129
def test_add_tokens(first_token_fabric, second_token_fabric):
130130
first_token = first_token_fabric()
@@ -138,6 +138,36 @@ def test_add_tokens(first_token_fabric, second_token_fabric):
138138
assert tokens_sum.tokens[1] is second_token
139139

140140

141+
@pytest.mark.parametrize(
142+
'second_token_fabric',
143+
ALL_TOKENS_FABRICS,
144+
)
145+
def test_add_tokens_and_first_is_default_token(second_token_fabric):
146+
first_token = DefaultToken()
147+
second_token = second_token_fabric()
148+
149+
tokens_sum = first_token + second_token
150+
151+
assert isinstance(tokens_sum, SimpleToken)
152+
assert len(tokens_sum.tokens) == 1
153+
assert tokens_sum.tokens[0] is second_token
154+
155+
156+
@pytest.mark.parametrize(
157+
'first_token_fabric',
158+
ALL_TOKENS_FABRICS,
159+
)
160+
def test_add_tokens_and_second_one_is_default_token(first_token_fabric):
161+
first_token = first_token_fabric()
162+
second_token = DefaultToken()
163+
164+
tokens_sum = first_token + second_token
165+
166+
assert isinstance(tokens_sum, SimpleToken)
167+
assert len(tokens_sum.tokens) == 1
168+
assert tokens_sum.tokens[0] is first_token
169+
170+
141171
@pytest.mark.parametrize(
142172
'token_fabric',
143173
ALL_TOKENS_FABRICS + [DefaultToken],
@@ -405,3 +435,14 @@ def cancel_with_timeout(token):
405435
finish_time = perf_counter()
406436

407437
assert finish_time - start_time >= timeout
438+
439+
440+
@pytest.mark.parametrize(
441+
'token_fabric',
442+
ALL_TOKENS_FABRICS,
443+
)
444+
def test_insert_default_token_to_another_tokens(token_fabric):
445+
token = token_fabric(DefaultToken())
446+
447+
assert not isinstance(token, DefaultToken)
448+
assert len(token.tokens) == 0

tests/units/tokens/test_default_token.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,17 @@ def test_str_for_default_token():
5555
@pytest.mark.skipif(sys.version_info >= (3, 10), reason='Format of this exception messages was changed.')
5656
def test_you_cannot_neste_another_token_to_default_one_old_pythons():
5757
with pytest.raises(TypeError, match=full_match('__init__() takes 1 positional argument but 2 were given')):
58-
DefaultToken(SimpleToken(TypeError))
58+
DefaultToken(SimpleToken())
5959

6060

6161
@pytest.mark.skipif(sys.version_info < (3, 10), reason='Format of this exception messages was changed.')
6262
def test_you_cannot_neste_another_token_to_default_one_new_pythons():
6363
with pytest.raises(TypeError, match=full_match('DefaultToken.__init__() takes 1 positional argument but 2 were given')):
64-
DefaultToken(SimpleToken(TypeError))
64+
DefaultToken(SimpleToken())
65+
66+
67+
def test_default_plus_default():
68+
empty_sum = DefaultToken() + DefaultToken()
69+
70+
assert isinstance(empty_sum, SimpleToken)
71+
assert len(empty_sum.tokens) == 0

0 commit comments

Comments
 (0)