Exemple #1
0
    def testRemove(self):
        params = InputParameters()
        params.add('foo')
        self.assertTrue(params.hasParameter('foo'))
        params.remove('foo')
        self.assertFalse(params.hasParameter('foo'))

        with self.assertLogs(level='WARNING') as log:
            params.remove('bar')
        self.assertEqual(len(log.output), 1)
        self.assertIn("The parameter 'bar' does not exist", log.output[0])
    def testAdd(self):
        params = InputParameters()
        params.add('foo')
        self.assertEqual(list(params.keys()), ['foo'])
        self.assertFalse(params.isValid('foo'))
        self.assertIn('foo', params)
        self.assertIsNone(params.get('foo'))
        self.assertTrue(params.hasParameter('foo'))

        with self.assertLogs(level='WARNING') as log:
            params.add('foo')
        self.assertEqual(len(log.output), 1)
        self.assertIn(
            "Cannot add parameter, the parameter 'foo' already exists.",
            log.output[0])
Exemple #3
0
    def testSet(self):
        params = InputParameters()
        params.add('foo')
        params.set('foo', 42)
        self.assertEqual(list(params.keys()), ['foo'])
        self.assertTrue(params.isValid('foo'))
        self.assertIn('foo', params)
        self.assertIsNotNone(params.get('foo'))
        self.assertEqual(params.get('foo'), 42)
        self.assertTrue(params.hasParameter('foo'))

        with self.assertLogs(level='WARNING') as log:
            params.set('bar', 1980)
        self.assertEqual(len(log.output), 1)
        self.assertIn("The parameter 'bar' does not exist", log.output[0])

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

        params2.set('bar', 1954)
        self.assertEqual(params2.get('bar'), 1954)
        self.assertEqual(params.get('sub').get('bar'), 1954)

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

        params.set('sub', 'bar', 1944)
        self.assertEqual(params2.get('bar'), 1954)
        self.assertEqual(params3.get('bar'), 1944)
        self.assertEqual(params.get('sub').get('bar'), 1944)

        with self.assertLogs(level='WARNING') as log:
            params.set('foo', 1980, 2011)
            params.set('foo')

        self.assertEqual(len(log.output), 2)
        self.assertIn("Extra argument(s) found: 1980", log.output[0])
        self.assertIn("One or more names must be supplied.", log.output[1])
 def testHasParameter(self):
     params = InputParameters()
     params.add('foo')
     self.assertTrue(params.hasParameter('foo'))
     self.assertFalse(params.hasParameter('bar'))
    def testSet(self):
        params = InputParameters()
        params.add('foo')
        params.set('foo', 42)
        self.assertEqual(list(params.keys()), ['foo'])
        self.assertTrue(params.isValid('foo'))
        self.assertIn('foo', params)
        self.assertIsNotNone(params.get('foo'))
        self.assertEqual(params.get('foo'), 42)
        self.assertTrue(params.hasParameter('foo'))

        with self.assertLogs(level='WARNING') as log:
            params.set('bar', 1980)
        self.assertEqual(len(log.output), 1)
        self.assertIn("Cannot set value, the parameter 'bar' does not exist",
                      log.output[0])

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

        params2.set('bar', 1954)
        self.assertEqual(params2.get('bar'), 1954)
        self.assertEqual(params.get('sub').get('bar'), 1954)

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

        params.set('sub', bar=1944)
        self.assertEqual(params2.get('bar'), 1954)
        self.assertEqual(params3.get('bar'), 1944)
        self.assertEqual(params.get('sub').get('bar'), 1944)

        # More errors
        with self.assertLogs(level='WARNING') as log:
            params.set('foo', 1980, this='that')
        self.assertEqual(len(log.output), 1)
        self.assertIn(
            "Key, value pairs are not allowed when setting the 'foo' parameter.",
            log.output[0])

        with self.assertLogs(level='WARNING') as log:
            params.set('foo', 1980, 2011)
            params.set('foo')

        self.assertEqual(len(log.output), 2)
        self.assertIn(
            "A single second argument is required for the 'foo' parameter.",
            log.output[0])
        self.assertIn(
            "A single second argument is required for the 'foo' parameter.",
            log.output[1])

        with self.assertLogs(level='WARNING') as log:
            params.set('sub', 1980, bar=1948)
        self.assertEqual(len(log.output), 1)
        self.assertIn(
            "Key, value pairs are not allowed when setting the 'sub' parameter with a supplied dict argument.",
            log.output[0])

        with self.assertLogs(level='WARNING') as log:
            params.set('sub', 1980)
        self.assertEqual(len(log.output), 1)
        self.assertIn(
            "The second argument for the 'sub' parameter must be a dict() or InputParametrs object",
            log.output[0])