Example #1
0
 def test__str__(self):
     d = DotDict()
     d.a = 1
     d.b = True
     d.c = 10/3.0
     d.d = DotDict()
     d.d.a = 'String'
     d.d.b = u'Péter'
     d.d.c = 6
     d.d.d = DotDict()
     d.d.d.a = 7
     d.e = DotDict()
     d.e.a = 8
     output = str(d)
     expected_output = '\n'.join([
         'a: 1',
         'b: True',
         'c: %r' % (10/3.0,),
         '\td.a: %r' % 'String',
         '\td.b: %r' % u'Péter',
         '\td.c: 6',
         '\t\td.d.a: 7',
         '\te.a: 8',
     ])
     self.assertEqual(output, expected_output)
Example #2
0
    def test_arbitrary_object_to_string(self):
        function = converters.py_obj_to_str
        self.assertEqual(function(None), '')
        self.assertEqual(function('hello'), 'hello')

        config = DotDict()
        config.a = 17
        config.b = 23
        a = Alpha(config)
        self.assertEqual(converters.arbitrary_object_to_string(a),
                         "I am an instance of an Alpha object")
        a = AlphaBad1(config)
        self.assertEqual(converters.arbitrary_object_to_string(a), "int")
        a = AlphaBad2(config)
        self.assertEqual(converters.arbitrary_object_to_string(a), "int")
        a = AlphaBad3(config)
        self.assertEqual(converters.arbitrary_object_to_string(a), "int")
        self.assertEqual(converters.arbitrary_object_to_string(IndexError),
                         "IndexError")

        self.assertEqual(converters.arbitrary_object_to_string(Beta),
                         "configman.tests.test_converters.Beta")

        from configman import tests as tests_module
        self.assertEqual(function(tests_module), 'configman.tests')
 def test_overlay_config_2(self):
     n = config_manager.Namespace()
     n.add_option('a')
     n.a.default = 1
     n.a.doc = 'the a'
     n.b = 17
     n.c = c = config_manager.Namespace()
     c.x = 'fred'
     c.y = 3.14159
     c.add_option('z')
     c.z.default = 99
     c.z.doc = 'the 99'
     c = config_manager.ConfigurationManager([n],
                                 use_admin_controls=False,
                                 #use_config_files=False,
                                 use_auto_help=False,
                                 argv_source=[])
     o = {"a": 2, "c.z": 22, "c.x": 'noob', "c.y": "2.89", "n": "not here"}
     c.overlay_config_recurse(o, ignore_mismatches=True)
     d = c.get_config()
     e = DotDict()
     e.a = 2
     e.b = 17
     e.c = DotDict()
     e.c.x = 'noob'
     e.c.y = 2.89
     e.c.z = 22
     self.assertEqual(d, e)
Example #4
0
    def test_dot_lookup(self):
        d = DotDict()
        d.a = 1
        d.b = 2
        d.c = 3
        d.d = DotDict()
        d.d.a = 4
        d.d.b = 5
        d.d.c = 6
        d.d.d = DotDict()
        d.d.d.a = 7
        d.e = DotDict()
        d.e.a = 8

        self.assertEqual(d["a"], 1)
        self.assertEqual(d["b"], 2)
        self.assertEqual(d["c"], 3)
        self.assertEqual(d["d.a"], 4)
        self.assertEqual(d["d.b"], 5)
        self.assertEqual(d["d.c"], 6)
        self.assertEqual(d["d.d.a"], 7)
        self.assertEqual(d["e.a"], 8)

        self.assertTrue(isinstance(d["d"], DotDict))
        self.assertTrue(isinstance(d["d.d"], DotDict))

        self.assertRaises(KeyError, d.__getitem__, "x")
        self.assertRaises(KeyError, d.__getitem__, "d.x")
        self.assertRaises(KeyError, d.__getitem__, "d.d.x")
Example #5
0
    def test_dot_lookup(self):
        d = DotDict()
        d.a = 1
        d.b = 2
        d.c = 3
        d.d = DotDict()
        d.d.a = 4
        d.d.b = 5
        d.d.c = 6
        d.d.d = DotDict()
        d.d.d.a = 7
        d.e = DotDict()
        d.e.a = 8

        self.assertEqual(d['a'], 1)
        self.assertEqual(d['b'], 2)
        self.assertEqual(d['c'], 3)
        self.assertEqual(d['d.a'], 4)
        self.assertEqual(d['d.b'], 5)
        self.assertEqual(d['d.c'], 6)
        self.assertEqual(d['d.d.a'], 7)
        self.assertEqual(d['e.a'], 8)

        self.assertTrue(isinstance(d['d'], DotDict))
        self.assertTrue(isinstance(d['d.d'], DotDict))

        self.assertRaises(KeyError, d.__getitem__, 'x')
        self.assertRaises(KeyError, d.__getitem__, 'd.x')
        self.assertRaises(KeyError, d.__getitem__, 'd.d.x')
Example #6
0
 def test__str__(self):
     d = DotDict()
     d.a = 1
     d.b = True
     d.c = 10 / 3.0
     d.d = DotDict()
     d.d.a = 'String'
     d.d.b = u'Péter'
     d.d.c = 6
     d.d.d = DotDict()
     d.d.d.a = 7
     d.e = DotDict()
     d.e.a = 8
     output = str(d)
     expected_output = '\n'.join([
         'a: 1',
         'b: True',
         'c: %r' % (10 / 3.0, ),
         '\td.a: %r' % 'String',
         '\td.b: %r' % u'Péter',
         '\td.c: 6',
         '\t\td.d.a: 7',
         '\te.a: 8',
     ])
     self.assertEqual(output, expected_output)
Example #7
0
    def _fake_processed_crash(self):
        d = DotDict()
        # these keys survive redaction
        d.a = DotDict()
        d.a.b = DotDict()
        d.a.b.c = 11
        d.sensitive = DotDict()
        d.sensitive.x = 2
        d.not_url = 'not a url'

        return d
Example #8
0
    def _fake_processed_crash(self):
        d = DotDict()
        # these keys survive redaction
        d.a = DotDict()
        d.a.b = DotDict()
        d.a.b.c = 11
        d.sensitive = DotDict()
        d.sensitive.x = 2
        d.not_url = 'not a url'

        return d
 def test_get_config_1(self):
     n = config_manager.Namespace()
     n.add_option('a', 1, 'the a')
     n.add_option('b', 17)
     c = config_manager.ConfigurationManager(
       [n],
       use_admin_controls=False,
       #use_config_files=False,
       use_auto_help=False,
       argv_source=[]
     )
     d = c.get_config()
     e = DotDict()
     e.a = 1
     e.b = 17
     self.assertEqual(d, e)
Example #10
0
    def test_parent(self):
        d = DotDict()
        d.a = 1
        d.b = 2
        d.c = 3
        d.d = DotDict()
        d.d.a = 4
        d.d.b = 5
        d.d.c = 6
        d.d.d = DotDict()
        d.d.d.a = 7
        d.e = DotDict()
        d.e.a = 8

        self.assertEqual(d.parent("d.d.a"), d["d.d"])
        self.assertTrue(d.parent("d") is None)
Example #11
0
    def test_parent(self):
        d = DotDict()
        d.a = 1
        d.b = 2
        d.c = 3
        d.d = DotDict()
        d.d.a = 4
        d.d.b = 5
        d.d.c = 6
        d.d.d = DotDict()
        d.d.d.a = 7
        d.e = DotDict()
        d.e.a = 8

        self.assertEqual(d.parent('d.d.a'), d['d.d'])
        self.assertTrue(d.parent('d') is None)
Example #12
0
    def test_parent(self):
        d = DotDict()
        d.a = 1
        d.b = 2
        d.c = 3
        d.d = DotDict()
        d.d.a = 4
        d.d.b = 5
        d.d.c = 6
        d.d.d = DotDict()
        d.d.d.a = 7
        d.e = DotDict()
        d.e.a = 8

        self.assertEqual(d.parent('d.d.a'), d['d.d'])
        self.assertTrue(d.parent('d') is None)
Example #13
0
 def test_keys_breadth_first(self):
     d = DotDict()
     d.a = 1
     d.b = 2
     d.c = 3
     d.d = DotDict()
     d.d.a = 4
     d.d.b = 5
     d.d.c = 6
     d.d.d = DotDict()
     d.d.d.a = 7
     d.e = DotDict()
     d.e.a = 8
     expected = ["a", "b", "c", "d.a", "d.b", "d.c", "d.d.a", "e.a"]
     actual = [x for x in d.keys_breadth_first()]
     actual.sort()
     self.assertEqual(expected, actual)
Example #14
0
 def test_keys_breadth_first(self):
     d = DotDict()
     d.a = 1
     d.b = 2
     d.c = 3
     d.d = DotDict()
     d.d.a = 4
     d.d.b = 5
     d.d.c = 6
     d.d.d = DotDict()
     d.d.d.a = 7
     d.e = DotDict()
     d.e.a = 8
     expected = ['a', 'b', 'c', 'd.a', 'd.b', 'd.c', 'd.d.a', 'e.a']
     actual = [x for x in d.keys_breadth_first()]
     actual.sort()
     self.assertEqual(expected, actual)
Example #15
0
 def test_keys_breadth_first(self):
     d = DotDict()
     d.a = 1
     d.b = 2
     d.c = 3
     d.d = DotDict()
     d.d.a = 4
     d.d.b = 5
     d.d.c = 6
     d.d.d = DotDict()
     d.d.d.a = 7
     d.e = DotDict()
     d.e.a = 8
     expected = ['a', 'b', 'c', 'd.a', 'd.b', 'd.c', 'd.d.a', 'e.a']
     actual = [x for x in d.keys_breadth_first()]
     actual.sort()
     self.assertEqual(expected, actual)
Example #16
0
    def test_dot_lookup(self):
        d = DotDict()
        d.a = 1
        d.b = 2
        d.c = 3
        d.d = DotDict()
        d.d.a = 4
        d.d.b = 5
        d.d.c = 6
        d.d.d = DotDict()
        d.d.d.a = 7
        d.e = DotDict()
        d.e.a = 8

        self.assertEqual(d['a'], 1)
        self.assertEqual(d['b'], 2)
        self.assertEqual(d['c'], 3)
        self.assertEqual(d['d.a'], 4)
        self.assertEqual(d['d.b'], 5)
        self.assertEqual(d['d.c'], 6)
        self.assertEqual(d['d.d.a'], 7)
        self.assertEqual(d['e.a'], 8)

        self.assertTrue(isinstance(d['d'], DotDict))
        self.assertTrue(isinstance(d['d.d'], DotDict))

        self.assertRaises(
            KeyError,
            d.__getitem__,
            'x'
        )
        self.assertRaises(
            KeyError,
            d.__getitem__,
            'd.x'
        )
        self.assertRaises(
            KeyError,
            d.__getitem__,
            'd.d.x'
        )
Example #17
0
    def test_arbitrary_object_to_string(self):
        function = converters.py_obj_to_str
        self.assertEqual(function(None), '')
        self.assertEqual(function('hello'), 'hello')

        config = DotDict()
        config.a = 17
        config.b = 23
        a = Alpha(config)
        self.assertEqual(
            converters.arbitrary_object_to_string(a),
            "I am an instance of an Alpha object"
        )
        a = AlphaBad1(config)
        self.assertEqual(
            converters.arbitrary_object_to_string(a),
            "int"
        )
        a = AlphaBad2(config)
        self.assertEqual(
            converters.arbitrary_object_to_string(a),
            "int"
        )
        a = AlphaBad3(config)
        self.assertEqual(
            converters.arbitrary_object_to_string(a),
            "int"
        )
        self.assertEqual(
            converters.arbitrary_object_to_string(IndexError),
            "IndexError"
        )

        self.assertEqual(
            converters.arbitrary_object_to_string(Beta),
            "configman.tests.test_converters.Beta"
        )

        from configman import tests as tests_module
        self.assertEqual(function(tests_module), 'configman.tests')
 def test_get_config_2(self):
     n = config_manager.Namespace()
     n.add_option('a', 1, 'the a')
     n.b = 17
     n.c = c = config_manager.Namespace()
     c.x = 'fred'
     c.y = 3.14159
     c.add_option('z', 99, 'the 99')
     c = config_manager.ConfigurationManager(
       [n],
       use_admin_controls=False,
       #use_config_files=False,
       use_auto_help=False,
       argv_source=[]
     )
     d = c.get_config()
     e = DotDict()
     e.a = 1
     e.b = 17
     e.c = DotDict()
     e.c.x = 'fred'
     e.c.y = 3.14159
     e.c.z = 99
     self.assertEqual(d, e)