@@ -115,6 +115,27 @@ def test_subscription_error(self, doctype):
115115 with pytest .raises (lark .exceptions .UnexpectedInput ):
116116 parse_doctype (doctype )
117117
118+ @pytest .mark .parametrize (
119+ ("doctype" ),
120+ [
121+ "Literal[0]" ,
122+ "Literal[-1, 1]" ,
123+ "Literal[None]" ,
124+ "Literal[True, False]" ,
125+ """Literal['a', "bar"]""" ,
126+ # Enum
127+ "Literal[SomeEnum.FIRST]" ,
128+ "Literal[SomeEnum.FIRST, 1]" ,
129+ "Literal[SomeEnum.FIRST, 2]" ,
130+ "Literal[SomeEnum.FIRST, 3]" ,
131+ # Nesting
132+ "dict[Literal['a', 'b'], int]" ,
133+ ],
134+ )
135+ def test_literals (self , doctype ):
136+ expr = parse_doctype (doctype )
137+ assert expr .as_code () == doctype
138+
118139 @pytest .mark .parametrize (
119140 ("doctype" , "expected" ),
120141 [
@@ -124,10 +145,10 @@ def test_subscription_error(self, doctype):
124145 ("{True, False}" , "Literal[True, False]" ),
125146 ("""{'a', "bar"}""" , """Literal['a', "bar"]""" ),
126147 # Enum
127- ("{SomeEnum.FIRST}" , "Literal[SomeEnum_FIRST ]" ),
128- ("{`SomeEnum.FIRST`, 1}" , "Literal[SomeEnum_FIRST , 1]" ),
129- ("{:ref:`SomeEnum.FIRST`, 2}" , "Literal[SomeEnum_FIRST , 2]" ),
130- ("{:py:ref:`SomeEnum.FIRST`, 3}" , "Literal[SomeEnum_FIRST , 3]" ),
148+ ("{SomeEnum.FIRST}" , "Literal[SomeEnum.FIRST ]" ),
149+ ("{`SomeEnum.FIRST`, 1}" , "Literal[SomeEnum.FIRST , 1]" ),
150+ ("{:ref:`SomeEnum.FIRST`, 2}" , "Literal[SomeEnum.FIRST , 2]" ),
151+ ("{:py:ref:`SomeEnum.FIRST`, 3}" , "Literal[SomeEnum.FIRST , 3]" ),
131152 # Nesting
132153 ("dict[{'a', 'b'}, int]" , "dict[Literal['a', 'b'], int]" ),
133154 # These aren't officially valid as an argument to `Literal` (yet)
@@ -141,7 +162,7 @@ def test_subscription_error(self, doctype):
141162 ),
142163 ],
143164 )
144- def test_literals (self , doctype , expected ):
165+ def test_natlang_literals (self , doctype , expected ):
145166 expr = parse_doctype (doctype )
146167 assert expr .as_code () == expected
147168
0 commit comments