示例#1
0
 def create_client(self):
     dataset = DictDBWrap(USERDB)
     client = Client({}, client_authn_methods=CLIENT_AUTHN_METHOD)
     self.rsh = ResourceSetHandler(dataset, client, "hans")
     self.rsh.dataset.scopes2op[
         'https://dirg.org.umu.se/uma/read'] = self.rsh.dataset.get
     self.rsh.client.provider_info = {
         "resource_set_registration_endpoint": 'https://as.example.com/rsr'
     }
     self.rsh.token["PAT"] = 'pat'
示例#2
0
        "givenName": "Hans",
        "sn": "Granberg",
        "eduPersonNickname": "Hasse",
        "email": "*****@*****.**",
    },
    "linda": {
        "displayName": "Linda Lindgren",
        "eduPersonNickname": "Linda",
        "givenName": ["Linda", "Maria"],
        "sn": "Lindgren",
        "email": "*****@*****.**",
        "uid": "linda"
    }
}

dataset = DictDBWrap(USERDB.copy())
dataset.scopes2op['https://www.example.com/uma/read'] = dataset.get
info_store = {}

RS_PORT = 8089
RS_HOST = "https://localhost:%s" % RS_PORT
ressrv = ResourceServer(dataset,
                        "linda",
                        info_store,
                        client_authn_methods=CLIENT_AUTHN_METHOD)

ressrv.rs_handler.op2scope['GET'] = 'https://www.example.com/uma/read'

# ============================== 1 ===========================================
# Connect RS to AS
示例#3
0
 def create_db(self):
     self.dw = DictDBWrap(USERDB.copy())
     self.dw.scopes2op["https://dirg.org.umu.se/uma/read"] = self.dw.get
示例#4
0
class TestDictDBWrap(object):
    @pytest.fixture(autouse=True)
    def create_db(self):
        self.dw = DictDBWrap(USERDB.copy())
        self.dw.scopes2op["https://dirg.org.umu.se/uma/read"] = self.dw.get

    def test_build_resource_set_descriptions(self):
        rsd = self.dw.build_resource_set_descriptions("hans")
        assert len(rsd) == 5
        # Pick one resource set description and check it
        rs = rsd["hans:sn:Granberg"]
        assert isinstance(rs, ResourceSetDescription)
        assert rs["scopes"] == ['https://dirg.org.umu.se/uma/read']
        assert rs['name'] == 'hans sn=Granberg'

    def test_update_resource_set_description_no_change(self):
        _ = self.dw.build_resource_set_descriptions("hans")
        diff = self.dw.update_resource_set_description('hans')
        assert diff == {"delete": [], "add": {}, "update": {}}

    def test_update_resource_set_description_ava_add(self):
        _ = self.dw.build_resource_set_descriptions("hans")
        self.dw.update('hans', {"middleName": "pippi"})
        diff = self.dw.update_resource_set_description('hans')
        assert diff["delete"] == []
        assert diff["update"] == {}

        assert len(diff["add"]) == 1
        assert list(diff['add'].keys())[0] == "hans:middleName:pippi"

    def test_update_resource_set_description_item_del(self):
        _ = self.dw.build_resource_set_descriptions("hans")
        self.dw.delete('hans')
        diff = self.dw.update_resource_set_description('hans')
        assert _eq(diff["delete"],
                   ['hans:eduPersonNickname:Hasse',
                    'hans:displayName:Hans Granberg',
                    'hans:middleName:pippi', 'hans:givenName:Hans',
                    'hans:sn:Granberg',
                    'hans:email:[email protected]'])
        assert diff["update"] == {}
        assert diff["add"] == {}

    def test_get(self):
        self.dw.update('hans', USERDB["hans"])
        ava = self.dw.get('hans')
        assert _eq(list(ava.keys()),
                   ['sn', 'displayName', 'eduPersonNickname', 'email',
                    'middleName', 'givenName'])
        va = self.dw.get('hans', 'sn')
        assert va == 'Granberg'