File tree 3 files changed +56
-0
lines changed
3 files changed +56
-0
lines changed Original file line number Diff line number Diff line change 9
9
/214 /README.md
10
10
/44 /README.md
11
11
/100 /README.md
12
+ /43 /README.md
Original file line number Diff line number Diff line change
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"))
Original file line number Diff line number Diff line change
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'
You can’t perform that action at this time.
0 commit comments