예제 #1
0
 def test_name_access(self):
     cb = config_block()
     nose.tools.assert_equal(
         cb.name, "", "Default constructor should have an empty "
         "string name.")
     cb = config_block("FooBar")
     nose.tools.assert_equal(
         cb.name, "FooBar", "Named constructor didn't seem to retain name")
예제 #2
0
 def test_construction(self):
     cb1 = config_block()
     nose.tools.assert_true(
         cb1._inst_ptr, "Received null pointer from "
         "config_block construction")
     cb2 = config_block("A Name")
     nose.tools.assert_true(
         cb2._inst_ptr, "Received a null pointer "
         "from named config_block "
         "construction.")
예제 #3
0
    def test_subblock_view_nested(self):
        cb = config_block()

        b_name = 'block'
        o_name = 'other_block'
        n_name = b_name + config_block.BLOCK_SEP + o_name
        ka = 'ka'
        kb = 'kb'
        kc = 'kc'
        va = 'va'
        vb = 'vb'
        vc = 'vc'

        cb.set_value(n_name + config_block.BLOCK_SEP + ka, va)
        cb.set_value(n_name + config_block.BLOCK_SEP + kb, vb)
        cb.set_value(o_name + config_block.BLOCK_SEP + kc, vc)
        sb = cb.subblock_view(n_name)

        nose.tools.assert_true(sb.has_value(ka))
        nose.tools.assert_false(sb.has_value(kc))

        cb.set_value(n_name + config_block.BLOCK_SEP + ka, vb)
        nose.tools.assert_equal(sb.get_value(ka), vb)
        sb.set_value(ka, va)
        nose.tools.assert_equal(
            cb.get_value(n_name + config_block.BLOCK_SEP + ka), va)

        sb.unset_value(kb)
        nose.tools.assert_false(
            cb.has_value(n_name + config_block.BLOCK_SEP + kb))

        cb.set_value(n_name + config_block.BLOCK_SEP + kc, vc)
        sb_keys = sb.available_keys()
        nose.tools.assert_set_equal(set(sb_keys), {ka, kc})
예제 #4
0
 def test_available_keys(self):
     cb = config_block()
     cb.set_value("foo", 1)
     cb.set_value('bar', 'baz')
     r = cb.available_keys()
     nose.tools.assert_set_equal(set(r), {'foo', 'bar'},
                                 "Returned key list was incorrect.")
예제 #5
0
    def test_get_value_bool_default(self):
        cb = config_block()

        nose.tools.assert_raises(Vitalconfig_blockNoSuchValueException,
                                 cb.get_value_bool, 'not-a-key')

        nose.tools.assert_true(cb.get_value_bool('not-a-key', True))
        nose.tools.assert_false(cb.get_value_bool('not-a-key', False))
예제 #6
0
 def test_read_only_unset(self):
     cb = config_block()
     cb.set_value('a', '1')
     cb.mark_read_only('a')
     nose.tools.assert_raises(Vitalconfig_blockReadOnlyException,
                              cb.unset_value, 'a')
     nose.tools.assert_true(cb.has_value('a'))
     nose.tools.assert_equal(cb.get_value('a'), '1')
예제 #7
0
 def test_set_value(self):
     cb = config_block()
     # Basic value string
     cb.set_value('foo', 'bar')
     # Should attempt casting non-string to string
     cb.set_value('bar', 124789)
     # Setting with a description
     cb.set_value('baz', 'a', "This is a description")
예제 #8
0
 def test_subblock_view_match(self):
     cb = config_block()
     bname = 'block'
     va = 'va'
     cb.set_value(bname, va)
     sb = cb.subblock_view(bname)
     keys = sb.available_keys()
     nose.tools.assert_equal(len(keys), 0)
예제 #9
0
    def test_get_value_no_exist(self):
        cb = config_block()
        k1 = 'a'
        k2 = 'b'
        v2 = '2'

        nose.tools.assert_raises(Vitalconfig_blockNoSuchValueException,
                                 cb.get_value, k1)
        nose.tools.assert_equal(cb.get_value(k2, v2), v2)
예제 #10
0
    def test_get_value(self):
        cb = config_block()

        cb.set_value('a', 'b')
        cb.set_value('longer_value:foo', "BarBazThing")

        nose.tools.assert_equal(cb.get_value('a'), 'b')
        nose.tools.assert_equal(cb.get_value('longer_value:foo'),
                                'BarBazThing')
예제 #11
0
 def test_subblock_view_prefix_match(self):
     cb = config_block()
     bname = 'block'
     ka = 'ka'
     va = 'va'
     # intentionally not adding block separator
     cb.set_value(bname + ka, va)
     sb = cb.subblock_view(bname)
     keys = sb.available_keys()
     nose.tools.assert_equal(len(keys), 0)
예제 #12
0
    def test_check_conf(self):
        ci = ConvertImage('ci')
        c = config_block()
        nt.assert_false(ci.check_config(c))

        c.set_value('ci:type', '')
        nt.assert_false(ci.check_config(c))

        c.set_value('ci:type', 'not_an_impl')
        nt.assert_false(ci.check_config(c))
예제 #13
0
    def test_merge_config(self):
        cb1 = config_block()
        cb2 = config_block()
        ka = 'ka'
        kb = 'kb'
        kc = 'kc'
        va = 'va'
        vb = 'vb'
        vc = 'vc'

        cb1.set_value(ka, va)
        cb1.set_value(kb, va)
        cb2.set_value(kb, vb)
        cb2.set_value(kc, vc)

        cb1.merge_config(cb2)

        nose.tools.assert_equal(cb1.get_value(ka), va)
        nose.tools.assert_equal(cb1.get_value(kb), vb)
        nose.tools.assert_equal(cb1.get_value(kc), vc)
예제 #14
0
    def test_get_value_nested(self):
        cb = config_block()

        k1 = 'a'
        k2 = 'b'
        v = 'c'

        cb.set_value(k1 + config_block.BLOCK_SEP + k2, v)
        nose.tools.assert_equal(cb.get_value(k1 + config_block.BLOCK_SEP + k2),
                                v)

        sb = cb.subblock(k1)
        nose.tools.assert_equal(sb.get_value(k2), v)
예제 #15
0
    def test_has_value(self):
        cb = config_block()

        cb.set_value('foo', 'bar')
        cb.set_value('bar', 124789)
        cb.set_value('baz', 'a', "This is a description")

        nose.tools.assert_true(cb.has_value("foo"))
        nose.tools.assert_true(cb.has_value('bar'))
        nose.tools.assert_true(cb.has_value('baz'))

        nose.tools.assert_false(cb.has_value('a'))
        nose.tools.assert_false(cb.has_value('not a value'))
예제 #16
0
    def test_get_value_bool(self):
        cb = config_block()

        cb.set_value('a', 'true')
        nose.tools.assert_true(cb.get_value_bool('a'))

        cb.set_value('b', 'false')
        nose.tools.assert_false(cb.get_value_bool('b'))

        cb.set_value('a', 'yes')
        nose.tools.assert_true(cb.get_value_bool('a'))

        cb.set_value('b', 'no')
        nose.tools.assert_false(cb.get_value_bool('b'))
예제 #17
0
    def test_unset_value(self):
        cb = config_block()

        cb.set_value('a', '1')
        cb.set_value('b', '2')

        cb.unset_value('a')

        nose.tools.assert_false(cb.has_value('a'))
        nose.tools.assert_raises(Vitalconfig_blockNoSuchValueException,
                                 cb.get_value, 'a')

        nose.tools.assert_equal(cb.get_value('b'), '2')
        nose.tools.assert_true(cb.has_value('b'))
예제 #18
0
    def test_set_value_description(self):
        cb = config_block()
        bname = 'sub'
        ka = 'ka'
        kb = 'kb'
        kc = 'kc'
        va = 'va'
        vb = 'vb'
        vc = 'vc'
        da = 'da'
        db = 'db'

        cb.set_value(ka, va, da)
        cb.set_value(bname + config_block.BLOCK_SEP + kb, vb, db)
        cb.set_value(kc, vc)
        sb = cb.subblock('sub')

        nose.tools.assert_equal(cb.get_description(ka), da)
        nose.tools.assert_equal(sb.get_description(kb), db)
        nose.tools.assert_equal(cb.get_description(kc), "")
예제 #19
0
    def test_subblock_nested(self):
        cb = config_block()

        block_name = 'block'
        other_name = 'other'
        nestd_name = block_name + config_block.BLOCK_SEP + other_name

        ka = 'ka'
        kb = 'kb'
        va = 'va'
        vb = 'vb'

        cb.set_value(nestd_name + config_block.BLOCK_SEP + ka, va)
        cb.set_value(nestd_name + config_block.BLOCK_SEP + kb, vb)

        sb = cb.subblock(nestd_name)

        nose.tools.assert_true(sb.has_value(ka))
        nose.tools.assert_equal(sb.get_value(ka), va)
        nose.tools.assert_true(sb.has_value(kb))
        nose.tools.assert_equal(sb.get_value(kb), vb)
예제 #20
0
    def test_subblock(self):
        cb = config_block()

        block_name = 'block'
        other_name = 'other_block'
        ka = 'keya'
        kb = 'keyb'
        kc = 'keyc'
        va = 'va'
        vb = 'vb'
        vc = 'vc'

        cb.set_value(block_name + config_block.BLOCK_SEP + ka, va)
        cb.set_value(block_name + config_block.BLOCK_SEP + kb, vb)
        cb.set_value(other_name + config_block.BLOCK_SEP + kc, vc)

        sb = cb.subblock(block_name)

        nose.tools.assert_true(sb.has_value(ka))
        nose.tools.assert_equal(sb.get_value(ka), va)
        nose.tools.assert_true(sb.has_value(kb))
        nose.tools.assert_equal(sb.get_value(kb), vb)
        nose.tools.assert_false(sb.has_value(kc))
예제 #21
0
    def test_write_fail(self):
        cb = config_block()
        cb.set_value('foo', 'bar')

        nose.tools.assert_raises(Vitalconfig_blockIoException, cb.write,
                                 '/not/valid')