@ -92,3 +92,53 @@ class TestUserRole(TransactionCase):
role1_group_ids . append ( self . role1_id . group_id . id )
role1_group_ids . append ( self . role1_id . group_id . id )
role_group_ids = sorted ( set ( role1_group_ids ) )
role_group_ids = sorted ( set ( role1_group_ids ) )
self . assertEqual ( user_group_ids , role_group_ids )
self . assertEqual ( user_group_ids , role_group_ids )
def test_role_unlink ( self ) :
# Get role1 groups
role1 = self . role_model . browse ( self . cr , self . uid , self . role1_id )
role1_group_ids = role1 . implied_ids . ids
role1_group_ids . append ( role1 . group_id . id )
role1_group_ids = sorted ( set ( role1_group_ids ) )
# Get role2
role2 = self . role_model . browse ( self . cr , self . uid , self . role2_id )
# Configure the user with role1 and role2
self . user_model . write (
self . cr , self . uid , [ self . user_id ] ,
{ ' role_line_ids ' : [
( 0 , 0 , { ' role_id ' : self . role1_id } ) ,
( 0 , 0 , { ' role_id ' : self . role2_id } ) ,
] } )
user = self . user_model . browse ( self . cr , self . uid , self . user_id )
# Remove role2
role2 . unlink ( )
user_group_ids = sorted ( set ( [ group . id for group in user . groups_id ] ) )
self . assertEqual ( user_group_ids , role1_group_ids )
# Remove role1
role1 . unlink ( )
user_group_ids = sorted ( set ( [ group . id for group in user . groups_id ] ) )
self . assertEqual ( user_group_ids , [ ] )
def test_role_line_unlink ( self ) :
# Get role1 groups
role1 = self . role_model . browse ( self . cr , self . uid , self . role1_id )
role1_group_ids = role1 . implied_ids . ids
role1_group_ids . append ( role1 . group_id . id )
role1_group_ids = sorted ( set ( role1_group_ids ) )
# Configure the user with role1 and role2
self . user_model . write (
self . cr , self . uid , [ self . user_id ] ,
{ ' role_line_ids ' : [
( 0 , 0 , { ' role_id ' : self . role1_id } ) ,
( 0 , 0 , { ' role_id ' : self . role2_id } ) ,
] } )
user = self . user_model . browse ( self . cr , self . uid , self . user_id )
# Remove role2 from the user
user . role_line_ids . filtered (
lambda l : l . role_id . id == self . role2_id ) . unlink ( )
user_group_ids = sorted ( set ( [ group . id for group in user . groups_id ] ) )
self . assertEqual ( user_group_ids , role1_group_ids )
# Remove role1 from the user
user . role_line_ids . filtered (
lambda l : l . role_id . id == self . role1_id ) . unlink ( )
user_group_ids = sorted ( set ( [ group . id for group in user . groups_id ] ) )
self . assertEqual ( user_group_ids , [ ] )