Beispiel #1
0
    def test_modified(self):
        """ Update base attributes of a BonitaUser """
        user = BonitaUser(username=u'myusername', password=u'mypassword')
        user._uuid = 'myuuid'

        # Prepare response of MockedServer
        url = '/identityAPI/updateUserByUUID'
        code = 200
        user_xml = build_bonita_user_xml(uuid='myuuid', password='******', username='******')
        BonitaServer.set_response_list([[url, code, user_xml]])

        # Modify some base attributes
        user.last_name = u'last_name'
        user.title = u'Doctor'
        user.username = u'other_username'
        user.first_name = u'first_name'
        user.job_title = u'job_title'

        user._update_base_attributes()

        assert user.last_name == u'last_name'
        assert user.title == u'Doctor'
        assert user.username == u'other_username'
        assert user.first_name == u'first_name'
        assert user.job_title == u'job_title'

        dirties = user.get_dirties()
        for attribute in user.BASE_ATTRIBUTES:
            assert attribute not in dirties
Beispiel #2
0
    def test_some_users(self):
        """ Retrieve all users for a role """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getAllUsersInRoleAndGroup'
        code = 200
        user1_xml = build_bonita_user_xml(uuid='1234', password='', username='******')
        user2_xml = build_bonita_user_xml(uuid='6789', password='', username='******')
        xml = build_xml_list([user1_xml, user2_xml])
        BonitaServer.set_response_list([[url, code, xml]])

        role = BonitaRole('myrole', '', '')
        role.uuid = '1234'
        group = BonitaGroup('mygroup', '', '')
        group.uuid = '2345'

        users = BonitaUser.find_by_role_and_group(role, group)

        assert isinstance(users, list)
        assert len(users) == 2

        for user in users:
            assert isinstance(user, BonitaUser)

        sorted_users = sorted(users, key=lambda user: user.uuid)
        assert sorted_users[0].uuid == u'1234'
        assert sorted_users[1].uuid == u'6789'
Beispiel #3
0
    def test_base_attributes_modified(self):
        """ Update BonitaUser base attributes """
        user = BonitaUser(username=u'myusername', password=u'mypassword')
        user._uuid = 'myuuid'
        user.clear()

        # Prepare response of MockedServer
        url = '/identityAPI/updateUserByUUID'
        code = 200
        user_xml = build_bonita_user_xml(uuid='myuuid', password='******', username='******')
        BonitaServer.set_response_list([[url, code, user_xml]])

        # Modify some base attributes
        user.last_name = u'last_name'
        user.title = u'Doctor'
        user.username = u'other_username'
        user.first_name = u'first_name'
        user.job_title = u'job_title'

        user._update()

        assert user.is_modified is False
        assert user.last_name == u'last_name'
        assert user.title == u'Doctor'
        assert user.username == u'other_username'
        assert user.first_name == u'first_name'
        assert user.job_title == u'job_title'
Beispiel #4
0
    def test_unknown_role(self):
        """ Try to retrieve membership by role and group UUID : no role matching given UUID"""
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getMembershipForRoleAndGroup'
        code = 500
        xml = build_dumb_bonita_error_body('RoleNotFoundException',message='can\'t find Role : unknown')
        BonitaServer.set_response_list([[url,code,xml]])
        membership = BonitaMembership.get_by_role_and_group_uuid(role_uuid='unknown',group_uuid='group-14')

        assert membership == None
Beispiel #5
0
    def test_unknown_user(self):
        """ Try to retrieve user by UUID but no user matching """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getUserByUUID'
        code = 500
        xml = build_dumb_bonita_error_body('UserNotFoundException', message='can\'t find User: unknown')
        BonitaServer.set_response_list([[url, code, xml]])

        user = BonitaUser.get_by_uuid('unknown')

        assert user is None
Beispiel #6
0
    def test_unknown_membership(self):
        """ Try to retrieve membership by UUID but no membership matching """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getMembershipByUUID'
        code = 500
        xml = build_dumb_bonita_error_body('MembershipNotFoundException',message='can\'t find Membership : unknown')
        BonitaServer.set_response_list([[url,code,xml]])

        membership = BonitaMembership.get_by_uuid('unknown')

        assert membership == None
Beispiel #7
0
    def test_unknown_group(self):
        """ Try to retrieve group by path but no group matching """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getGroupUsingPath'
        code = 500
        xml = build_dumb_bonita_error_body('GroupNotFoundException',message='can\'t find Group: unknown')
        BonitaServer.set_response_list([[url,code,xml]])

        group = BonitaGroup.get_by_path('/something/unknown')

        assert group == None
Beispiel #8
0
    def test_unknown_role(self):
        """ Try to retrieve role by UUID but no role matching """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getRoleByUUID'
        code = 500
        xml = build_dumb_bonita_error_body('RoleNotFoundException',message='can\'t find Role: unknown')
        BonitaServer.set_response_list([[url,code,xml]])

        role = BonitaRole.get_by_uuid('unknown')

        assert role == None
Beispiel #9
0
    def test_not_found_user_by_uuid(self):
        """ Try to retrieve user but nothing found with given key """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getUserByUUID'
        code = 500
        xml = build_dumb_bonita_error_body('UserNotFoundException', message='can\'t find User: not found uuid')
        BonitaServer.set_response_list([[url, code, xml]])

        user = BonitaUser.get(uuid='not found uuid')

        assert user is None
Beispiel #10
0
    def test_not_found_group_by_uuid(self):
        """ Try to retrieve group but nothing found with given key """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getGroupByUUID'
        code = 500
        xml = build_dumb_bonita_error_body('GroupNotFoundException',message='can\'t find Group: unknown')
        BonitaServer.set_response_list([[url,code,xml]])

        group = BonitaGroup.get(uuid='unknown')

        assert group == None
Beispiel #11
0
    def test_not_found_process(self):
        """ Retrieve not existing process """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/queryDefinitionAPI/getProcess/MonProcessus1--1.0'
        code = 500
        xml = build_dumb_bonita_error_body('ProcessNotFoundException',message='Bonita Error: bai_QDAPII_5\nCan\'t find a process with uuid MonProcessus1--1.0')
        BonitaServer.set_response_list([[url,code,xml]])

        process = BonitaProcess.get('MonProcessus1--1.0')

        assert process == None
Beispiel #12
0
    def test_get_group_by_path(self):
        """ Retrieve a group with path """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getGroupUsingPath'
        code = 200
        xml = build_bonita_group_xml(uuid='996633',name='mygroup')
        BonitaServer.set_response_list([[url,code,xml]])

        group = BonitaGroup.get(path='/mygroup')

        assert isinstance(group,BonitaGroup)
        assert group.name == 'mygroup'
Beispiel #13
0
    def test_get_role_by_name(self):
        """ Retrieve a role with name """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getRole'
        code = 200
        xml = build_bonita_role_xml(uuid='996633',name='myrole')
        BonitaServer.set_response_list([[url,code,xml]])

        role = BonitaRole.get(name='myrole')

        assert isinstance(role,BonitaRole)
        assert role.name == 'myrole'
Beispiel #14
0
    def test_known_group(self):
        """ Retrieve a group using the UUID """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getGroupByUUID'
        code = 200
        xml = build_bonita_group_xml(uuid='996633',name='mygroup')
        BonitaServer.set_response_list([[url,code,xml]])

        group = BonitaGroup.get_by_uuid('996633')

        assert isinstance(group,BonitaGroup)
        assert group.uuid == '996633'
Beispiel #15
0
    def test_fresh_user(self):
        """ Save a freshly create BonitaUser """
        user = BonitaUser(username=u'myusername', password=u'mypassword')

        url = '/identityAPI/addUser'
        code = 204
        user_xml = build_bonita_user_xml(uuid='myuuid', password='******', username='******')
        BonitaServer.set_response_list([[url, code, user_xml]])

        user._create()

        assert user.is_modified is False
        assert user.uuid == 'myuuid'
Beispiel #16
0
    def test_known_user(self):
        """ Retrieve a user using the UUID """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getUserByUUID'
        code = 200
        xml = build_bonita_user_xml(uuid='996633', password='', username='******')
        BonitaServer.set_response_list([[url, code, xml]])

        user = BonitaUser.get_by_uuid('996633')

        assert isinstance(user, BonitaUser)
        assert user.uuid == '996633'
Beispiel #17
0
    def test_no_user(self):
        """ Retrieve all users but there are none """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getUsers'
        code = 200
        xml = build_xml_set([])
        BonitaServer.set_response_list([[url, code, xml]])

        users = BonitaUser.find_all()

        assert isinstance(users, list)
        assert len(users) == 0
Beispiel #18
0
    def test_root_group(self):
        """ Retrieve root group : /platform """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getGroupUsingPath'
        code = 200
        xml = build_bonita_group_xml(uuid='996633',name='platform')
        BonitaServer.set_response_list([[url,code,xml]])

        group = BonitaGroup.get_default_root()

        assert isinstance(group,BonitaGroup)
        assert group.name == u'platform'
        assert group.parent is None
Beispiel #19
0
    def test_known_group_at_root(self):
        """ Retrieve a group using the path (at root) """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getGroupUsingPath'
        code = 200
        xml = build_bonita_group_xml(uuid='996633',name='something')
        BonitaServer.set_response_list([[url,code,xml]])

        group = BonitaGroup.get_by_path('/something')

        assert isinstance(group,BonitaGroup)
        assert group.uuid == '996633'
        assert group.parent is None
Beispiel #20
0
    def test_known_membership(self):
        """ Retrieve a membership using the UUID """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getMembershipByUUID'
        code = 200
        role_xml = build_bonita_role_xml(uuid='334455',name='myrole',with_class=True)
        group_xml = build_bonita_group_xml(uuid='112233',name='mygroup',with_class=True)
        xml = build_bonita_membership_xml(uuid='996633',role=role_xml, group=group_xml)
        BonitaServer.set_response_list([[url,code,xml]])

        membership = BonitaMembership.get_by_uuid('996633')

        assert isinstance(membership,BonitaMembership)
        assert membership.uuid == '996633'
Beispiel #21
0
    def test_get_process(self):
        """ Retrieve a process """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = u'/queryDefinitionAPI/getProcess/MonProcessus1--1.0'
        code = 200
        xml = build_bonita_process_definition_xml(uuid=u'MonProcessus1--1.0', name=u'MonProcessus1', version=u'1.0')
        BonitaServer.set_response_list([[url,code,xml]])

        process = BonitaProcess.get(u'MonProcessus1--1.0')

        assert process != None
        assert isinstance(process,BonitaProcess)
        assert process.uuid == u'MonProcessus1--1.0'
        assert process.name == u'MonProcessus1'
        assert process.version == u'1.0'
Beispiel #22
0
    def test_no_user(self):
        """ Retrieve all users for a role but there are none """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getAllUsersInRole'
        code = 200
        xml = build_xml_list([])
        BonitaServer.set_response_list([[url, code, xml]])

        role = BonitaRole('myrole', '', '')
        role.uuid = '1234'

        users = BonitaUser.find_by_role(role)

        assert isinstance(users, list)
        assert len(users) == 0
Beispiel #23
0
    def test_unknown_group(self):
        """ Try to retrieve membership by role and group : no group matching """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getMembershipForRoleAndGroup'
        code = 500
        xml = build_dumb_bonita_error_body('GroupNotFoundException',message='can\'t find Group: unknown')
        BonitaServer.set_response_list([[url,code,xml]])

        role = BonitaRole('myrole','','')
        role.uuid = '1234'
        group = BonitaGroup('mygroup','','')
        group.uuid = '2345'

        membership = BonitaMembership.get_by_role_and_group(role=role,group=group)

        assert membership == None
Beispiel #24
0
    def test_get_membership_by_uuid(self):
        """ Retrieve a membership using UUID """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getMembershipByUUID'
        code = 200
        role_xml = build_bonita_role_xml(uuid='334455',name='myrole',with_class=True)
        group_xml = build_bonita_group_xml(uuid='112233',name='mygroup',with_class=True)
        xml = build_bonita_membership_xml(uuid='uuid-12',role=role_xml, group=group_xml)
        BonitaServer.set_response_list([[url,code,xml]])

        membership = BonitaMembership.get_by_uuid('uuid-12')

        assert isinstance(membership,BonitaMembership)
        assert membership.uuid == u'uuid-12'
        assert isinstance(membership.role,BonitaRole)
        assert isinstance(membership.group,BonitaGroup)
Beispiel #25
0
    def test_no_user(self):
        """ Retrieve all users for a group but there are none """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getAllUsersInGroup'
        code = 200
        xml = build_xml_list([])
        BonitaServer.set_response_list([[url, code, xml]])

        group = BonitaGroup('mygroup', '', '')
        group.uuid = '2345'

        users = BonitaUser.find_by_group(group)

        assert isinstance(users, list)
        assert len(users) == 0
Beispiel #26
0
    def test_get_membership_by_role_and_group_uuid(self):
        """ Retrieve a membership using role and group UUID """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getMembershipForRoleAndGroup'
        code = 200

        role_xml = build_bonita_role_xml(uuid='334455',name='role-2',with_class=True)
        group_xml = build_bonita_group_xml(uuid='112233',name='group-14',with_class=True)
        xml = build_bonita_membership_xml(uuid='996633',role=role_xml, group=group_xml)
        BonitaServer.set_response_list([[url,code,xml]])

        membership = BonitaMembership.get(role_uuid='334455',group_uuid='112233')

        assert isinstance(membership,BonitaMembership)
        assert isinstance(membership.role,BonitaRole)
        assert membership.role.uuid == u'334455'
        assert isinstance(membership.group,BonitaGroup)
        assert membership.group.uuid == u'112233'
Beispiel #27
0
    def test_known_group_deep_path(self):
        """ Retrieve a group using the path (deep path) """
        # Setup the response for MockServer
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getGroupUsingPath'
        code = 200
        gran_father_xml = build_bonita_group_xml(uuid='996631',name='gran-father',as_parent=True)
        father_xml = build_bonita_group_xml(uuid='996632',name='father',parent=gran_father_xml, as_parent=True)
        xml = build_bonita_group_xml(uuid='996633',name='child-group',parent=father_xml)
        BonitaServer.set_response_list([[url,code,xml]])

        group = BonitaGroup.get_by_path('/gran-father/father/child-group')

        assert isinstance(group,BonitaGroup)
        assert group.uuid == '996633'
        assert isinstance(group.parent,BonitaGroup)
        assert group.parent.uuid == '996632'
        assert isinstance(group.parent.parent,BonitaGroup)
        assert group.parent.parent.uuid == '996631'
Beispiel #28
0
    def test_password_modified(self):
        """ Update password contact infos of BonitaUser """
        user = BonitaUser(username=u'myusername', password=u'mypassword')
        user._uuid = 'myuuid'

        user.clear()

        # Prepare response of MockedServer
        url = '/identityAPI/updateUserPassword'
        code = 200
        user_xml = build_bonita_user_xml(uuid='myuuid', password='******', username='******')
        BonitaServer.set_response_list([[url, code, user_xml]])

        # Modify password
        user.password = u'some pass'

        user._update()

        assert user.is_modified is False
        assert user.password == u'some pass'
Beispiel #29
0
    def test_get_membership_by_role_and_group(self):
        """ Retrieve a membership using role and group """
        BonitaServer.use('localhost', 9090, 'restuser', 'restbpm')
        url = '/identityAPI/getMembershipForRoleAndGroup'
        code = 200

        role = BonitaRole('myrole','','')
        role.uuid = '1234'
        group = BonitaGroup('mygroup','','')
        group.uuid = '2345'

        xml = build_bonita_membership_xml(uuid='996633',role=role, group=group)
        BonitaServer.set_response_list([[url,code,xml]])


        membership = BonitaMembership.get_by_role_and_group(role,group)

        assert isinstance(membership, BonitaMembership)
        assert isinstance(membership.role,BonitaRole)
        assert isinstance(membership.group,BonitaGroup)
Beispiel #30
0
    def test_modified(self):
        """ Update password of a BonitaUser """
        user = BonitaUser(username=u'myusername', password=u'mypassword')
        user._uuid = 'myuuid'

        # Prepare response of MockedServer
        url = '/identityAPI/updateUserPassword'
        code = 200
        user_xml = build_bonita_user_xml(uuid='myuuid', password='******', username='******')
        BonitaServer.set_response_list([[url, code, user_xml]])

        # Modify password
        user.password = u'some pass'

        user._update_password()

        assert user.password == u'some pass'

        dirties = user.get_dirties()
        assert 'password' not in dirties