Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitce40fde

Browse files
test: add more tests for RequiredOptional
1 parent7119f2d commitce40fde

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

‎tests/unit/test_types.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,58 @@
1515
# You should have received a copy of the GNU Lesser General Public License
1616
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1717

18+
importpytest
19+
1820
fromgitlabimporttypes
1921

2022

23+
classTestRequiredOptional:
24+
deftest_requiredoptional_empty(self):
25+
b=types.RequiredOptional()
26+
assertnotb.required
27+
assertnotb.optional
28+
assertnotb.exclusive
29+
30+
deftest_requiredoptional_values_no_keywords(self):
31+
b=types.RequiredOptional(
32+
("required1","required2"),
33+
("optional1","optional2"),
34+
("exclusive1","exclusive2"),
35+
)
36+
assertb.required== ("required1","required2")
37+
assertb.optional== ("optional1","optional2")
38+
assertb.exclusive== ("exclusive1","exclusive2")
39+
40+
deftest_requiredoptional_values_keywords(self):
41+
b=types.RequiredOptional(
42+
exclusive=("exclusive1","exclusive2"),
43+
optional=("optional1","optional2"),
44+
required=("required1","required2"),
45+
)
46+
assertb.required== ("required1","required2")
47+
assertb.optional== ("optional1","optional2")
48+
assertb.exclusive== ("exclusive1","exclusive2")
49+
50+
deftest_validate_attrs_required(self):
51+
data= {"required1":1,"optional2":2}
52+
rq=types.RequiredOptional(required=("required1",))
53+
rq.validate_attrs(data=data)
54+
data= {"optional1":1,"optional2":2}
55+
withpytest.raises(AttributeError,match="Missing attributes: required1"):
56+
rq.validate_attrs(data=data)
57+
58+
deftest_validate_attrs_exclusive(self):
59+
data= {"exclusive1":1,"optional1":1}
60+
rq=types.RequiredOptional(exclusive=("exclusive1","exclusive2"))
61+
rq.validate_attrs(data=data)
62+
data= {"exclusive1":1,"exclusive2":2,"optional1":1}
63+
withpytest.raises(
64+
AttributeError,
65+
match="Provide only one of these attributes: exclusive1, exclusive2",
66+
):
67+
rq.validate_attrs(data=data)
68+
69+
2170
deftest_gitlab_attribute_get():
2271
o=types.GitlabAttribute("whatever")
2372
asserto.get()=="whatever"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp