Esempio n. 1
0
def test_construct_from_string():

    source = """
    --- !declare
    func:
        type: !resolve metaconfig.tests.utils.identity
        load: !resolve metaconfig.construct_from_string
    ...

    --- !let
    value1: !func "blabla"
    value2: !func 1
    value3: !func 3.14
    ...
    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    value1 = config.get("value1")
    assert_tuple_equal(value1[0], ("blabla",))
    assert_dict_equal(value1[1], {})

    value2 = config.get("value2")
    assert_tuple_equal(value2[0], ("1",))
    assert_dict_equal(value2[1], {})

    value3 = config.get("value3")
    assert_tuple_equal(value3[0], ("3.14",))
    assert_dict_equal(value3[1], {})
Esempio n. 2
0
def test_construct_from_args_kwargs():

    source = """
    --- !declare
    func:
        type: !resolve metaconfig.tests.utils.identity
        load: !resolve metaconfig.construct_from_args_kwargs
    ...

    --- !let
    value1: !func
        =: 
        - 1
        - 2
        a: 1
        b: 2
    value2: !func
        a: 1
        b: 2
    ...
    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    value1 = config.get("value1")
    assert_tuple_equal(value1[0], (1, 2))
    assert_dict_equal(value1[1], {"a": 1, "b": 2})

    value2 = config.get("value2")
    assert_tuple_equal(value2[0], ())
    assert_dict_equal(value2[1], {"a": 1, "b": 2})
Esempio n. 3
0
def test_declare_resolve():

    source = """
    --- !declare
    type:
        type: !resolve builtins.type
        load: !resolve metaconfig.construct_from_sequence
    ...

    --- !let
    integer: !type 
        - 0
    string: !type 
        - ""
    float: !type 
        - 1.0
    "null": !type
        - ~
    ...
    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    assert_is(int, config.get("integer"))
    assert_is(str, config.get("string"))
    assert_is(float, config.get("float"))
    assert_is(type(None), config.get("null"))
Esempio n. 4
0
def test_construct_from_value():

    source = """
    --- !declare
    func:
        type: !resolve metaconfig.tests.utils.identity
        load: !resolve metaconfig.construct_from_value
    ...

    --- !let
    value1: !func
        a: 1
        c: 2
        b: 3
        d: 4
        f: 5
        e: 6
        h: 7
        g: 8
    value2: !func
        - 1
        - 2
        - 3
    value3: !func "test"
    value4: !func 12345678
    value5: !func 3.141592
    ...
    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    value1 = config.get("value1")[0]
    assert_dict_equal(value1[0], {"a": 1, "c": 2, "b": 3, "d": 4, "f": 5, "e": 6, "h": 7, "g": 8})
    assert_list_equal(list(value1[0].keys()), ["a", "c", "b", "d", "f", "e", "h", "g"])
    value2 = config.get("value2")[0]
    assert_list_equal(value2[0], [1, 2, 3])

    value3 = config.get("value3")[0]
    assert_tuple_equal(value3, ("test",))

    value4 = config.get("value4")[0]
    assert_tuple_equal(value4, (12345678, ))

    value5 = config.get("value5")[0]
    assert_tuple_equal(value5, (3.141592, ))
Esempio n. 5
0
def test_construct_from_mapping():

    source = """
    --- !declare
    func:
        type: !resolve metaconfig.tests.utils.identity
        load: !resolve metaconfig.construct_from_mapping
    ...

    --- !let
    value: !func
        a: 1
        c: 2
        b: 3
        d: 4
        f: 5
        e: 6
        h: 7
        g: 8
    ...
    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    value = config.get("value")

    assert_tuple_equal(value[0], ())
    assert_dict_equal(value[1], {"a": 1, "c": 2, "b": 3, "d": 4, "f": 5, "e": 6, "h": 7, "g": 8})
Esempio n. 6
0
def test_construct_from_sequence():

    source = """
    --- !declare
    func:
        type: !resolve metaconfig.tests.utils.identity
        load: !resolve metaconfig.construct_from_sequence
    ...

    --- !let
    value: !func
        - 1
        - 2
    ...
    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    value = config.get("value")

    assert_tuple_equal(value[0], (1, 2))
    assert_dict_equal(value[1], {})
Esempio n. 7
0
def test_declare_get():

    source = """
    --- !declare
    type:
        type: !resolve builtins.type
        load: !resolve metaconfig.construct_from_sequence
    tuple:
        type: !resolve builtins.tuple
        load: !resolve metaconfig.construct_from_value
    ...

    --- !let
    MyInteger: !type 
        - MyInteger
        - !tuple
            - !resolve builtins.int
        -
            one: 1
    ...

    --- !declare
    MyInteger:
        type: !get MyInteger
        load: !resolve metaconfig.construct_from_integer
    ...

    --- !let
    value: !MyInteger 10
    ...

    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    assert_equals(10, config.get("value"))
    assert_is_instance(config.get("value"), int)
    assert_equals(1, config.get("value").one)
Esempio n. 8
0
def test_construct_from_any():

    source = """
    --- !declare
    func:
        type: !resolve metaconfig.tests.utils.identity
        load: !resolve metaconfig.construct_from_any
    ...

    --- !let
    value1: !func
        a: 1
        c: 2
        b: 3
        d: 4
        f: 5
        e: 6
        h: 7
        g: 8
    value2: !func
        - 1
        - 2
        - 3
    value3: !func "test"
    value4: !func 12345678
    value5: !func 3.141592
    value6: !func
        =: 
        - 1
        - 2
        a: 1
        b: 2
    value7: !func ~
    ...
    """

    config = Config()

    with StringIO(dedent(source)) as stream:
        config.load(stream)

    value1 = config.get("value1")
    assert_tuple_equal(value1[0], ())
    assert_dict_equal(value1[1], {"a": 1, "c": 2, "b": 3, "d": 4, "f": 5, "e": 6, "h": 7, "g": 8})
    
    value2 = config.get("value2")
    assert_tuple_equal(value2[0], (1, 2, 3))
    assert_dict_equal(value2[1], {})

    value3 = config.get("value3")
    assert_tuple_equal(value3[0], ("test",))
    assert_dict_equal(value3[1], {})

    value4 = config.get("value4")
    assert_tuple_equal(value4[0], (12345678, ))
    assert_dict_equal(value4[1], {})

    value5 = config.get("value5")
    assert_tuple_equal(value5[0], (3.141592, ))
    assert_dict_equal(value5[1], {})

    value6 = config.get("value6")
    assert_tuple_equal(value6[0], (1, 2))
    assert_dict_equal(value6[1], {"a": 1, "b": 2})

    value7 = config.get("value7")
    assert_tuple_equal(value7[0], (None,))
    assert_dict_equal(value7[1], {})