1
- import pytest
2
- import unittest
1
+ from twisted .trial import unittest
3
2
from ometa .runtime import OMetaBase , ParseError , expected , eof
4
3
5
4
class RuntimeTests (unittest .TestCase ):
@@ -54,10 +53,9 @@ def test_exactlyFail(self):
54
53
55
54
data = "foo"
56
55
o = OMetaBase (data )
57
- with pytest .raises (ParseError ) as e :
58
- o .rule_exactly ("g" )
59
- self .assertEquals (e .value [1 ], expected (None , "g" ))
60
- self .assertEquals (e .value [0 ], 0 )
56
+ exc = self .assertRaises (ParseError , o .rule_exactly , "g" )
57
+ self .assertEquals (exc [1 ], expected (None , "g" ))
58
+ self .assertEquals (exc [0 ], 0 )
61
59
62
60
63
61
@@ -84,10 +82,9 @@ def test_tokenFailed(self):
84
82
"""
85
83
data = "foozle"
86
84
o = OMetaBase (data )
87
- with pytest .raises (ParseError ) as e :
88
- o .rule_token ("fog" )
89
- self .assertEqual (e .value [0 ], 2 )
90
- self .assertEqual (e .value [1 ], expected ("token" , "fog" ))
85
+ exc = self .assertRaises (ParseError , o .rule_token , "fog" )
86
+ self .assertEqual (exc [0 ], 2 )
87
+ self .assertEqual (exc [1 ], expected ("token" , "fog" ))
91
88
92
89
93
90
def test_many (self ):
@@ -136,12 +133,15 @@ def test_orSimpleFailure(self):
136
133
data = "foozle"
137
134
o = OMetaBase (data )
138
135
139
- with pytest .raises (ParseError ) as e :
140
- o ._or ([lambda : o .token ("fog" ),
141
- lambda : o .token ("foozik" ),
142
- lambda : o .token ("woozle" )])
143
- self .assertEqual (e .value [0 ], 4 )
144
- self .assertEqual (e .value [1 ], expected ("token" , "foozik" ))
136
+ exc = self .assertRaises (
137
+ ParseError , o ._or , [
138
+ lambda : o .token ("fog" ),
139
+ lambda : o .token ("foozik" ),
140
+ lambda : o .token ("woozle" )
141
+ ]
142
+ )
143
+ self .assertEqual (exc [0 ], 4 )
144
+ self .assertEqual (exc [1 ], expected ("token" , "foozik" ))
145
145
146
146
147
147
def test_orFalseSuccess (self ):
@@ -184,10 +184,9 @@ def test_notError(self):
184
184
185
185
data = "xy"
186
186
o = OMetaBase (data )
187
- with pytest .raises (ParseError ) as e :
188
- o ._not (lambda : o .exactly ("x" ))
189
- self .assertEqual (e .value [0 ], 1 )
190
- self .assertEqual (e .value [1 ], None )
187
+ exc = self .assertRaises (ParseError , o ._not , lambda : o .exactly ("x" ))
188
+ self .assertEqual (exc [0 ], 1 )
189
+ self .assertEqual (exc [1 ], None )
191
190
192
191
193
192
def test_spaces (self ):
@@ -217,9 +216,9 @@ def test_predFailure(self):
217
216
"""
218
217
219
218
o = OMetaBase ("" )
220
- with pytest . raises ( ParseError ) as e :
221
- o .pred ( lambda : (False , ParseError (o .input , 0 , None )))
222
- self .assertEqual (e . value , ParseError (o .input , 0 , None ))
219
+ exc = self . assertRaises (
220
+ ParseError , o .pred , lambda : (False , ParseError (o .input , 0 , None )))
221
+ self .assertEqual (exc , ParseError (o .input , 0 , None ))
223
222
224
223
225
224
def test_end (self ):
@@ -228,9 +227,8 @@ def test_end(self):
228
227
if input is left.
229
228
"""
230
229
o = OMetaBase ("abc" )
231
- with pytest .raises (ParseError ) as e :
232
- o .rule_end ()
233
- self .assertEqual (e .value , ParseError (o .input , 1 , None ))
230
+ exc = self .assertRaises (ParseError , o .rule_end )
231
+ self .assertEqual (exc , ParseError (o .input , 1 , None ))
234
232
o .many (o .rule_anything )
235
233
self .assertEqual (o .rule_end (), (True , ParseError ("abc" , 3 , None )))
236
234
@@ -243,9 +241,9 @@ def test_label(self):
243
241
data = "ooops"
244
242
label = 'CustomLabel'
245
243
o = OMetaBase (data )
246
- with pytest . raises ( ParseError ) as e :
247
- o .label ( lambda : o .rule_exactly ('x' ), label )
248
- self .assertEqual (e . value ,
244
+ exc = self . assertRaises (
245
+ ParseError , o .label , lambda : o .rule_exactly ('x' ), label )
246
+ self .assertEqual (exc ,
249
247
ParseError (o .input , 0 , expected (label )).withMessage ([("Custom Exception:" , label , None )]))
250
248
251
249
def test_letter (self ):
@@ -255,9 +253,8 @@ def test_letter(self):
255
253
o = OMetaBase ("a1" )
256
254
v , e = o .rule_letter ()
257
255
self .assertEqual ((v , e ), ("a" , ParseError (o .input , 0 , None )))
258
- with pytest .raises (ParseError ) as e :
259
- o .rule_letter ()
260
- self .assertEqual (e .value , ParseError (o .input , 1 ,
256
+ exc = self .assertRaises (ParseError , o .rule_letter )
257
+ self .assertEqual (exc , ParseError (o .input , 1 ,
261
258
expected ("letter" )))
262
259
263
260
@@ -270,9 +267,8 @@ def test_letterOrDigit(self):
270
267
self .assertEqual ((v , e ), ("a" , ParseError (None , 0 , None )))
271
268
v , e = o .rule_letterOrDigit ()
272
269
self .assertEqual ((v , e ), ("1" , ParseError (None , 1 , None )))
273
- with pytest .raises (ParseError ) as e :
274
- o .rule_letterOrDigit ()
275
- self .assertEqual (e .value ,
270
+ exc = self .assertRaises (ParseError , o .rule_letterOrDigit )
271
+ self .assertEqual (exc ,
276
272
ParseError (o .input , 2 , expected ("letter or digit" )))
277
273
278
274
@@ -283,9 +279,8 @@ def test_digit(self):
283
279
o = OMetaBase ("1a" )
284
280
v , e = o .rule_digit ()
285
281
self .assertEqual ((v , e ), ("1" , ParseError ("1a" , 0 , None )))
286
- with pytest .raises (ParseError ) as e :
287
- o .rule_digit ()
288
- self .assertEqual (e .value , ParseError (o .input , 1 , expected ("digit" )))
282
+ exc = self .assertRaises (ParseError , o .rule_digit )
283
+ self .assertEqual (exc , ParseError (o .input , 1 , expected ("digit" )))
289
284
290
285
291
286
0 commit comments