10
10
from fgpyo .util .inspect import attr_from
11
11
from fgpyo .util .inspect import attribute_has_default
12
12
from fgpyo .util .inspect import attribute_is_optional
13
+ from fgpyo .util .inspect import dict_parser
13
14
from fgpyo .util .inspect import list_parser
14
15
from fgpyo .util .inspect import set_parser
15
16
from fgpyo .util .inspect import tuple_parser
16
- from fgpyo .util .inspect import dict_parser
17
17
18
18
19
19
@attr .s (auto_attribs = True , frozen = True )
@@ -86,6 +86,7 @@ def test_set_parser() -> None:
86
86
parser = set_parser (Foo , Set [int ], {})
87
87
assert parser ("{}" ) == set ()
88
88
assert parser ("{1,2,3}" ) == {1 , 2 , 3 }
89
+ assert parser ("{1,1,2,3}" ) == {1 , 2 , 3 }
89
90
90
91
91
92
def test_tuple_parser () -> None :
@@ -98,3 +99,9 @@ def test_dict_parser() -> None:
98
99
parser = dict_parser (Foo , Dict [int , str ], {})
99
100
assert parser ("{}" ) == {}
100
101
assert parser ("{123;a}" ) == {123 : "a" }
102
+
103
+
104
+ def test_dict_parser_with_duplicate_keys () -> None :
105
+ parser = dict_parser (Foo , Dict [int , str ], {})
106
+ with pytest .raises (ValueError ):
107
+ parser ("{123;a,123;b}" )
0 commit comments