def test_noderoledimension_construction_item():
    """Check that we construct node role dimension when sub-props are not a list."""
    role = NodeRole("a", "b")
    dimension1 = NodeRoleDimension("g1", roles=[role])
    assert NodeRoleDimension("g1", roles=role) == dimension1

    rdMap = RoleDimensionMapping("a", [], {}, False)
    dimension2 = NodeRoleDimension("g1", roleDimensionMappings=[rdMap])
    assert NodeRoleDimension("g1", roleDimensionMappings=rdMap) == dimension2
Example #2
0
def test_add_node_role_dimension(session):
    try:
        network_name = "n1"
        bf_set_network(network_name)
        dim_name = "d1"
        rdMap = RoleDimensionMapping("a", [1], {})
        dim = NodeRoleDimension(dim_name, roleDimensionMappings=[rdMap])
        bf_add_node_role_dimension(dim)
        assert bf_get_node_role_dimension(dim_name) == dim
    finally:
        bf_delete_network(network_name)
Example #3
0
def test_add_node_role_dimension():
    try:
        network_name = 'n1'
        bf_set_network(network_name)
        dim_name = 'd1'
        rdMap = RoleDimensionMapping("a", [1], {}, False)
        dim = NodeRoleDimension(dim_name, roleDimensionMappings=[rdMap])
        bf_add_node_role_dimension(dim)
        assert bf_get_node_role_dimension(dim_name) == dim
    finally:
        bf_delete_network(network_name)
Example #4
0
def test_noderoledimension_construction():
    """Check that we throw an error when node role dimension is built with wrong type."""
    with pytest.raises(ValueError):
        NodeRoleDimension("g1", roles="i1")
    with pytest.raises(ValueError):
        NodeRoleDimension("book1", roles=["ag", NodeRole("a", "b")])
    with pytest.raises(ValueError):
        NodeRoleDimension("g1", roleDimensionMappings="i1")
    with pytest.raises(ValueError):
        NodeRoleDimension(
            "book1",
            roleDimensionMappings=["ag",
                                   RoleDimensionMapping("a", "b", "c")])
Example #5
0
def test_put_node_role_dimension(session):
    try:
        network_name = "n1"
        bf_set_network(network_name)
        dim_name = "d1"
        mapping = RoleDimensionMapping(regex="(regex)")
        dim = NodeRoleDimension(dim_name, roleDimensionMappings=[mapping])
        bf_put_node_role_dimension(dim)
        assert bf_get_node_role_dimension(dim_name) == dim
        # put again to check for idempotence
        bf_put_node_role_dimension(dim)
        assert bf_get_node_role_dimension(dim_name) == dim
    finally:
        bf_delete_network(network_name)
def test_noderoledimension_construction_list():
    """Check that we construct interface groups where sub-props are lists."""
    role = NodeRole("a", "b")
    dimension1 = NodeRoleDimension("g1", roles=[role])
    assert dimension1.name == "g1"
    assert dimension1.roles == [role]

    rdMap = RoleDimensionMapping("a", [], {}, False)
    dimension2 = NodeRoleDimension("g1", roleDimensionMappings=[rdMap])
    assert dimension2.name == "g1"
    assert dimension2.roleDimensionMappings == [rdMap]

    dimension3 = NodeRoleDimension("g1",
                                   roles=[role],
                                   roleDimensionMappings=[rdMap])
    assert dimension3.name == "g1"
    assert dimension3.roles == [role]
    assert dimension3.roleDimensionMappings == [rdMap]
Example #7
0
def test_delete_node_role_dimension(session):
    try:
        network_name = "n1"
        bf_set_network(network_name)
        dim_name = "d1"
        mapping = RoleDimensionMapping(regex="(regex)")
        dim = NodeRoleDimension(name=dim_name, roleDimensionMappings=[mapping])
        bf_add_node_role_dimension(dim)
        # should not crash
        bf_get_node_role_dimension(dim_name)
        bf_delete_node_role_dimension(dim_name)
        # dimension should no longer exist
        with raises(HTTPError, match="404"):
            bf_get_node_role_dimension(dim_name)
        # second delete should fail
        with raises(HTTPError, match="404"):
            bf_delete_node_role_dimension(dim_name)

    finally:
        bf_delete_network(network_name)
def test_roledimensionmapping_default_values():
    """Check the default values for role dimension mappings."""
    rdMap = RoleDimensionMapping("a")
    assert rdMap.groups == [1]
    assert rdMap.canonicalRoleNames == {}
    assert rdMap.caseSensitive is False