コード例 #1
0
    def testGet(self):
        params = InputParameters()
        params.add('foo', default=1980)
        self.assertEqual(params.getValue('foo'), 1980)

        with self.assertRaises(MooseException) as e:
            params.getValue('bar')
        self.assertIn("The parameter 'bar' does not exist", str(e.exception))
コード例 #2
0
    def testValidate(self):
        font = InputParameters()
        font.add('size', default=24)
        font.add('name', required=True)

        with self.assertRaises(MooseException) as e:
            font.validate()
        self.assertIn("The parameter 'name' is marked as required, but no value is assigned",
                      str(e.exception))
コード例 #3
0
    def testIsDefault(self):
        params = InputParameters()
        params.add('foo', default=1949)
        self.assertTrue(params.isDefault('foo'))
        params.setValue('foo', 1980)
        self.assertFalse(params.isDefault('foo'))

        with self.assertRaises(MooseException) as e:
            params.isDefault('bar')
        self.assertIn("The parameter 'bar' does not exist", str(e.exception))
コード例 #4
0
    def testRemove(self):
        params = InputParameters()
        params.add('foo')
        self.assertTrue(params.hasParameter('foo'))
        params.remove('foo')
        self.assertFalse(params.hasParameter('foo'))

        with self.assertRaises(MooseException) as e:
            params.remove('bar')
        self.assertIn("The parameter 'bar' does not exist", str(e.exception))
コード例 #5
0
    def testKeys(self):
        params = InputParameters()
        params.add('foo', 1949)
        params.add('bar', 1980)

        gold = ['foo', 'bar']
        for i, v in enumerate(params.keys()):
            self.assertEqual(v, gold[i])

        gold = ['_moose_object', '_error_mode', 'foo', 'bar']
        for i, v in enumerate(params.keys(private=True)):
            self.assertEqual(v, gold[i])
コード例 #6
0
    def testValues(self):
        params = InputParameters()
        params.add('foo', 1949)
        params.add('bar', 1980)

        gold = [1949, 1980]
        for i, v in enumerate(params.values()):
            self.assertEqual(v, gold[i])

        gold = [None, InputParameters.ErrorMode.EXCEPTION, 1949, 1980]
        for i, v in enumerate(params.values(private=True)):
            self.assertEqual(v, gold[i])
コード例 #7
0
    def testSetWithSubOption(self):
        andrew = InputParameters()
        andrew.add('year')

        people = InputParameters()
        people.add('andrew', default=andrew)

        people.setValue('andrew', 'year', 1949)
        self.assertEqual(andrew.getValue('year'), 1949)

        people.setValue('andrew', {'year': 1954})
        self.assertEqual(andrew.getValue('year'), 1954)

        people.setValue('andrew_year', 1977)
        self.assertEqual(andrew.getValue('year'), 1977)

        yo_dawg = InputParameters()
        yo_dawg.add('nunchuck')
        andrew.add('skills', yo_dawg)
        self.assertEqual(yo_dawg.getValue('nunchuck'), None)

        people.setValue('andrew_skills', 'nunchuck', True)
        self.assertEqual(yo_dawg.getValue('nunchuck'), True)

        with self.assertRaises(MooseException) as e:
            people.setValue('andrew_day', 'python', False)
        self.assertIn("The parameter 'day' does not exist", str(e.exception))

        with self.assertRaises(MooseException) as e:
            people.setValue('andrew_skills', 'python', False)
        self.assertIn("The parameter 'python' does not exist.", str(e.exception))
コード例 #8
0
    def testItems(self):
        params = InputParameters()
        params.add('foo', 1949)
        params.add('bar', 1980)

        gold = [('foo', 1949), ('bar', 1980)]
        for i, (k, v) in enumerate(params.items()):
            self.assertEqual(k, gold[i][0])
            self.assertEqual(v, gold[i][1])

        gold = [('_moose_object', None), ('_error_mode', InputParameters.ErrorMode.EXCEPTION),
                ('foo', 1949), ('bar', 1980)]
        for i, (k, v) in enumerate(params.items(private=True)):
            self.assertEqual(k, gold[i][0])
            self.assertEqual(v, gold[i][1])
コード例 #9
0
    def testIAdd(self):
        params = InputParameters()
        params.add('foo')

        params2 = InputParameters()
        params2.add('bar')

        params += params2
        self.assertIn('foo', params)
        self.assertIn('bar', params)

        params.setValue('_error_mode', InputParameters.ErrorMode.ERROR)
        with self.assertLogs(level='ERROR') as log:
            params += params2
        self.assertEqual(len(log.output), 1)
        self.assertIn("The supplied parameter 'bar' already exists", log.output[0])
コード例 #10
0
    def testSet(self):
        params = InputParameters()
        params.add('foo', vtype=int)
        params.setValue('foo', 42)
        self.assertTrue(params.isValid('foo'))
        self.assertIn('foo', params)
        self.assertIsNotNone(params.getValue('foo'))
        self.assertEqual(params.getValue('foo'), 42)
        self.assertTrue(params.hasParameter('foo'))

        with self.assertRaises(MooseException) as e:
            params.setValue('bar', 1980)
        self.assertIn("The parameter 'bar' does not exist", str(e.exception))

        # Sub-options
        params2 = InputParameters()
        params2.add('bar')
        params.add('sub', params2)
        params.setValue('sub', {'bar': 2013})
        self.assertEqual(params2.getValue('bar'), 2013)
        self.assertEqual(params.getValue('sub').getValue('bar'), 2013)

        params2.setValue('bar', 1954)
        self.assertEqual(params2.getValue('bar'), 1954)
        self.assertEqual(params.getValue('sub').getValue('bar'), 1954)

        params3 = InputParameters()
        params3.add('bar', default=2011)
        params.setValue('sub', params3)
        self.assertEqual(params2.getValue('bar'), 1954)
        self.assertEqual(params3.getValue('bar'), 2011)
        self.assertEqual(params.getValue('sub').getValue('bar'), 2011)

        params.setValue('sub', 'bar', 1944)
        self.assertEqual(params2.getValue('bar'), 1954)
        self.assertEqual(params3.getValue('bar'), 1944)
        self.assertEqual(params.getValue('sub').getValue('bar'), 1944)

        with self.assertRaises(MooseException) as e:
            params.setValue('foo', 1980, 2011)
        self.assertIn("Extra argument(s) found: 1980", str(e.exception))

        params.setValue('_error_mode', InputParameters.ErrorMode.ERROR)  # log to capture return
        with self.assertLogs(level='ERROR') as log:
            params.setValue('foo', 1980, 2011)

        params.setValue('_error_mode', InputParameters.ErrorMode.ERROR)  # log to capture return
        with self.assertLogs(level='ERROR') as log:
            params.setValue('foo')
        self.assertEqual(len(log.output), 1)
        self.assertIn("One or more names must be supplied.", log.output[0])

        params.setValue('_error_mode', InputParameters.ErrorMode.ERROR)
        with self.assertLogs(level='ERROR') as log:
            params.setValue('foo', 'wrong')
        self.assertEqual(len(log.output), 1)
        self.assertIn("'foo' must be of type", log.output[0])
コード例 #11
0
    def testUpdate(self):
        params = InputParameters()
        params.add('foo')
        params.update(foo=1980)
        self.assertEqual(params.getValue('foo'), 1980)

        params2 = InputParameters()
        params2.add('foo', 2013)

        params.update(params2)
        self.assertEqual(params.getValue('foo'), 2013)

        with self.assertRaises(MooseException) as e:
            params.update(foo=2011, bar=2013)
        self.assertIn("The parameter 'bar' does not exist.", str(e.exception))

        with self.assertRaises(MooseException) as e:
            params.update('wrong')
        self.assertIn("The supplied arguments must be InputParameters object", str(e.exception))
コード例 #12
0
    def testSetDefault(self):
        params = InputParameters()
        params.add('foo', vtype=int)
        self.assertIsNone(params.getValue('foo'))
        params.setDefault('foo', 1980)
        self.assertEqual(params.getValue('foo'), 1980)

        params.add('bar', default=1980)
        params.setDefault('bar', 1949)
        self.assertEqual(params.getValue('bar'), 1980)
        self.assertEqual(params.getDefault('bar'), 1949)

        with self.assertRaises(MooseException) as e:
            params.setDefault('other', 1980)
        self.assertIn("The parameter 'other' does not exist", str(e.exception))

        params.setValue('_error_mode',
                        InputParameters.ErrorMode.ERROR)  # use error to capture return
        with self.assertLogs(level='ERROR') as log:
            params.setDefault('foo', 'wrong')
        self.assertEqual(len(log.output), 1)
        self.assertIn("'foo' must be of type", log.output[0])
コード例 #13
0
    def testGetWithSubOption(self):
        unit = InputParameters()
        unit.add('name', 'pts')

        font = InputParameters()
        font.add('size', default=24)
        font.add('unit', unit)

        text = InputParameters()
        text.add('font', font)

        self.assertEqual(text.getValue('font', 'size'), 24)
        self.assertEqual(text.getValue('font', 'unit', 'name'), 'pts')

        self.assertEqual(text.getValue('font_size'), 24)
        self.assertEqual(text.getValue('font_unit_name'), 'pts')
コード例 #14
0
    def testSetRequired(self):

        date = InputParameters()
        date.add('year')
        self.assertEqual(date.isRequired('year'), False)

        date.setValue('year', 1980)
        date.setRequired('year', True)
        self.assertEqual(date.isRequired('year'), True)

        date.validate()

        with self.assertRaises(MooseException) as e:
            date.setRequired('year', True)
        self.assertIn(
            "The parameter 'year' has already been validated, the required state cannot be changed.",
            str(e.exception))

        date.setValue('_error_mode', InputParameters.ErrorMode.ERROR)
        with self.assertLogs(level='ERROR') as log:
            value = date.isRequired('wrong')
        self.assertEqual(value, False)
        self.assertEqual(len(log.output), 1)
        self.assertIn("The parameter 'wrong' does not exist.", log.output[0])
コード例 #15
0
    def testToString(self):
        font = InputParameters()
        font.add('size', default=24)
        font.add('name')

        text = InputParameters()
        text.add('font', font)

        self.assertEqual(str(text), text.toString())
        self.assertIn('font\n', text.toString())
        self.assertIn('font_size\n', text.toString())

        self.assertIn('size\n', font.toString())
        self.assertIn('name\n', font.toString())

        self.assertIn('size\n', font.toString('size'))
        self.assertNotIn('name\n', font.toString('size'))
コード例 #16
0
    def testAdd(self):
        params = InputParameters()
        params.add('foo')
        self.assertEqual(list(params.keys(private=True)), ['_moose_object', '_error_mode', 'foo'])
        self.assertFalse(params.isValid('foo'))
        self.assertIn('foo', params)
        self.assertIsNone(params.getValue('foo'))
        self.assertTrue(params.hasParameter('foo'))

        params.setValue('_error_mode',
                        InputParameters.ErrorMode.ERROR)  # use error to capture return
        with self.assertLogs(level='ERROR') as log:
            params.add('foo')
        self.assertEqual(len(log.output), 1)
        self.assertIn("Cannot add parameter, the parameter 'foo' already exists.", log.output[0])

        sub = InputParameters()
        params.add('bar', InputParameters())
        with self.assertLogs(level='ERROR') as log:
            params.add('bar_something')
        self.assertEqual(len(log.output), 1)
        self.assertIn(
            "Cannot add a parameter with the name 'bar_something', a sub parameter exists with the name 'bar'.",
            log.output[0])
コード例 #17
0
    def testAppend(self):
        params = InputParameters()
        params.add('year')

        params2 = InputParameters()
        params2.add('month')
        params2.add('day')

        params.append(params2, 'month')
        self.assertIn('year', params)
        self.assertIn('month', params)
        self.assertNotIn('day', params)

        params.setValue('_error_mode', InputParameters.ErrorMode.ERROR)
        with self.assertLogs(level='ERROR') as log:
            params.append(params2, 'minute')
        self.assertEqual(len(log.output), 1)
        self.assertIn("The parameter name 'minute' does not exist in", log.output[0])

        with self.assertLogs(level='ERROR') as log:
            params.append(params2, 'month')
        self.assertEqual(len(log.output), 1)
        self.assertIn("The supplied parameter 'month' already exists", log.output[0])
コード例 #18
0
 def validObjectParams():
     params = InputParameters()
     params.add('platform')
     return params
コード例 #19
0
 def testContains(self):
     params = InputParameters()
     params.add('foo')
     self.assertIn('foo', params)
     self.assertNotIn('bar', params)
コード例 #20
0
 def testUserData(self):
     date = InputParameters()
     date.add('year', user_data='YMD')
     self.assertEqual(date.getUserData('year'), 'YMD')
コード例 #21
0
 def testParameter(self):
     font = InputParameters()
     font.add('size', default=24)
     p = font.parameter('size')
     self.assertIsInstance(p, Parameter)
コード例 #22
0
 def testHasParameter(self):
     params = InputParameters()
     params.add('foo')
     self.assertTrue(params.hasParameter('foo'))
     self.assertFalse(params.hasParameter('bar'))
コード例 #23
0
 def testIsSetByUser(self):
     params = InputParameters()
     params.add('foo', default=1949)
     self.assertFalse(params.isSetByUser('foo'))
     params.setValue('foo', 1980)
     self.assertFalse(params.isDefault('foo'))