Skip to content

Commit ec47778

Browse files
bite 43
1 parent acb14f2 commit ec47778

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@
99
/214/README.md
1010
/44/README.md
1111
/100/README.md
12+
/43/README.md

43/kwargs.py

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
def get_profile(**kwargs):
2+
# print(kwargs.__len__())
3+
if 'name' in kwargs and 'profession' in kwargs and kwargs.__len__() == 2:
4+
name = kwargs['name']
5+
profession = kwargs['profession']
6+
return str(name + " is a " + profession)
7+
elif 'name' in kwargs and 'profession' in kwargs and kwargs.__len__() != 2:
8+
raise TypeError
9+
elif 'name' not in kwargs and 'profession' not in kwargs and kwargs.__len__() != 0:
10+
raise TypeError
11+
elif 'name' in kwargs and 'profession' not in kwargs:
12+
name = kwargs['name']
13+
return str(name + " is a " + "programmer")
14+
elif 'name' not in kwargs and 'profession' in kwargs:
15+
profession = kwargs['profession']
16+
return str("julian" + " is a " + profession)
17+
elif 'name' not in kwargs and 'profession' not in kwargs and kwargs.__len__() == 0:
18+
return str("julian is a programmer")
19+
else:
20+
raise TypeError
21+
22+
23+
# print(get_profile(name="z", profession="z", flag="d"))

43/test_kwargs.py

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import pytest
2+
3+
from kwargs import get_profile
4+
5+
6+
def test_no_arguments():
7+
assert get_profile() == 'julian is a programmer'
8+
9+
10+
def test_one_positional_arg():
11+
with pytest.raises(TypeError):
12+
get_profile('julian')
13+
14+
15+
def test_wrong_single_kw():
16+
with pytest.raises(TypeError):
17+
get_profile(test=True)
18+
19+
20+
def test_wrong_additional_kw():
21+
with pytest.raises(TypeError):
22+
get_profile(name='bob', profession='software developer',
23+
another_flag=False)
24+
25+
26+
def test_correct_kw_second_default():
27+
assert get_profile(name='bob') == 'bob is a programmer'
28+
29+
30+
def test_two_correct_kws():
31+
ret = get_profile(name='bob', profession='software developer')
32+
assert ret == 'bob is a software developer'

0 commit comments

Comments
 (0)