Rename action to recovery Changed the name of actions to recoveries in the user facing parse functions. Updated tests to reflect this.
69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
import unittest
|
|
import sunbeam
|
|
import os.path
|
|
|
|
class TestParse(unittest.TestCase):
|
|
|
|
REGIONDATA = """
|
|
START -- 0
|
|
10 MAI 2007 /
|
|
RUNSPEC
|
|
|
|
DIMENS
|
|
2 2 1 /
|
|
GRID
|
|
DX
|
|
4*0.25 /
|
|
DY
|
|
4*0.25 /
|
|
DZ
|
|
4*0.25 /
|
|
TOPS
|
|
4*0.25 /
|
|
REGIONS
|
|
OPERNUM
|
|
3 3 1 2 /
|
|
FIPNUM
|
|
1 1 2 3 /
|
|
"""
|
|
|
|
def setUp(self):
|
|
self.spe3fn = 'spe3/SPE3CASE1.DATA'
|
|
self.norne_fname = os.path.abspath('../../examples/data/norne/NORNE_ATW2013.DATA')
|
|
|
|
def test_parse(self):
|
|
spe3 = sunbeam.parse(self.spe3fn)
|
|
self.assertEqual('SPE 3 - CASE 1', spe3.title)
|
|
|
|
def test_parse_with_recovery(self):
|
|
recovery = ("PARSE_RANDOM_SLASH", sunbeam.action.ignore)
|
|
spe3 = sunbeam.parse(self.spe3fn, recovery=recovery)
|
|
self.assertEqual('SPE 3 - CASE 1', spe3.title)
|
|
|
|
def test_parse_with_multiple_recoveries(self):
|
|
recoveries = [ ("PARSE_RANDOM_SLASH", sunbeam.action.ignore),
|
|
("FOO", sunbeam.action.warn),
|
|
("PARSE_RANDOM_TEXT", sunbeam.action.throw) ]
|
|
|
|
spe3 = sunbeam.parse(self.spe3fn, recovery=recoveries)
|
|
self.assertEqual('SPE 3 - CASE 1', spe3.title)
|
|
|
|
def test_throw_on_invalid_recovery(self):
|
|
recoveries = [ ("PARSE_RANDOM_SLASH", 3.14 ) ]
|
|
|
|
with self.assertRaises(TypeError):
|
|
sunbeam.parse(self.spe3fn, recovery=recoveries)
|
|
|
|
with self.assertRaises(ValueError):
|
|
sunbeam.parse(self.spe3fn, recovery="PARSE_RANDOM_SLASH")
|
|
|
|
def test_data(self):
|
|
regtest = sunbeam.parse(self.REGIONDATA)
|
|
self.assertEqual([3,3,1,2], regtest.props()['OPERNUM'])
|
|
|
|
def test_parse_norne(self):
|
|
es = sunbeam.parse(self.norne_fname, recovery=('PARSE_RANDOM_SLASH', sunbeam.action.ignore))
|
|
self.assertEqual(46, es.grid().getNX())
|
|
self.assertEqual(112, es.grid().getNY())
|
|
self.assertEqual(22, es.grid().getNZ())
|