Ejemplo n.º 1
0
    def test_template_attribute_overrides_existing_attribute(self):
        mapping = {
            "attributes": {
                "last_name": {
                    "p1": ["sn"],
                },
                "first_name": {
                    "p1": ["givenName"],
                },
                "name": {
                    "p1": ["cn"]
                }
            },
            "template_attributes": {
                "name": {
                    "p1": ["${first_name[0]} ${last_name[0]}"]
                }
            }
        }

        converter = AttributeMapper(mapping)
        data = {"sn": ["Surname"],
                "givenName": ["Given"],
                "cn": ["Common Name"]}
        internal_repr = converter.to_internal("p1", data)
        external_repr = converter.from_internal("p1", internal_repr)
        assert len(internal_repr["name"]) == 1
        assert internal_repr["name"][0] == "Given Surname"
        assert external_repr["cn"][0] == "Given Surname"
Ejemplo n.º 2
0
    def test_simple_template_mapping(self):
        mapping = {
            "attributes": {
                "last_name": {
                    "p1": ["sn"],
                    "p2": ["sn"]
                },
                "first_name": {
                    "p1": ["givenName"],
                    "p2": ["givenName"]
                },
                "name": {
                    "p2": ["cn"]
                }

            },
            "template_attributes": {
                "name": {
                    "p2": ["${first_name[0]} ${last_name[0]}"]
                }
            }
        }

        converter = AttributeMapper(mapping)
        internal_repr = converter.to_internal("p2", {"givenName": ["Valfrid"], "sn": ["Lindeman"]})
        assert "name" in internal_repr
        assert len(internal_repr["name"]) == 1
        assert internal_repr["name"][0] == "Valfrid Lindeman"
        external_repr = converter.from_internal("p2", internal_repr)
        assert external_repr["cn"][0] == "Valfrid Lindeman"
Ejemplo n.º 3
0
    def test_from_internal_with_unknown_profile(self):
        mapping = {
            "attributes": {
                "mail": {
                    "foo": ["email"],
                },
            },
        }

        converter = AttributeMapper(mapping)
        external_repr = converter.from_internal("bar", {"mail": "bob"})
        assert external_repr == {}
Ejemplo n.º 4
0
    def test_mapping_to_nested_attribute(self):
        mapping = {
            "attributes": {
                "address": {
                    "openid": ["address.formatted"],
                    "saml": ["postaladdress"]
                },
            },
        }

        data = {
            "postaladdress": ["100 Universal City Plaza, Hollywood CA 91608, USA"]
        }

        converter = AttributeMapper(mapping)
        internal_repr = converter.to_internal("saml", data)
        external_repr = converter.from_internal("openid", internal_repr)
        assert external_repr["address"]["formatted"] == data["postaladdress"]
Ejemplo n.º 5
0
    def test_multiple_source_attribute_values(self):
        mapping = {
            "attributes": {
                "mail": {
                    "saml": ["mail", "emailAddress", "email"]
                },
            },
        }

        data = {
            "mail": ["*****@*****.**"],
            "email": ["*****@*****.**"],
            "emailAddress": ["*****@*****.**"],
        }

        expected = Counter(["*****@*****.**", "*****@*****.**", "*****@*****.**"])

        converter = AttributeMapper(mapping)
        internal_repr = converter.to_internal("saml", data)
        assert Counter(internal_repr["mail"]) == expected
        external_repr = converter.from_internal("saml", internal_repr)
        assert Counter(external_repr[mapping["attributes"]["mail"]["saml"][0]]) == expected