1- from collections import defaultdict
21from typing import Any
32
43from openslides_backend .http .application import OpenSlidesBackendWSGIApplication
54from openslides_backend .http .views .presenter_view import PresenterView
5+ from openslides_backend .services .database .interface import PartialModel
66from tests .system .base import BaseSystemTestCase
77from tests .system .util import create_presenter_test_application , get_route_path
88
@@ -29,71 +29,21 @@ def request(
2929 return (response .status_code , response .json )
3030
3131 def create_meeting_for_two_users (
32- self , user1 : int , user2 : int , base : int = 1
32+ self , base : int , user1 : int , user2 : int , meeting_data : PartialModel = {}
3333 ) -> None :
34- """
35- Creates meeting with id 1, committee 60 and groups with ids 1, 2, 3 by default.
36- With base you can setup other meetings, but be cautious because of group-ids
37- The groups have no permissions and no users by default.
38- Uses usernumber to create meeting users with the concatenation of base and usernumber.
39- """
40- committee_id = base + 59
34+ self .create_meeting (base , meeting_data = meeting_data )
4135 self .set_models (
4236 {
43- f"meeting/{ base } " : {
44- "group_ids" : [base , base + 1 , base + 2 ],
45- "default_group_id" : base ,
46- "admin_group_id" : base + 1 ,
47- "committee_id" : committee_id ,
48- "is_active_in_organization_id" : 1 ,
49- },
50- f"group/{ base } " : {
51- "meeting_id" : base ,
52- "default_group_for_meeting_id" : base ,
53- "name" : f"group{ base } " ,
54- },
55- f"group/{ base + 1 } " : {
56- "meeting_id" : base ,
57- "admin_group_for_meeting_id" : base ,
58- "name" : f"group{ base + 1 } " ,
59- },
60- f"group/{ base + 2 } " : {
61- "meeting_id" : base ,
62- "name" : f"group{ base + 2 } " ,
63- },
64- f"committee/{ committee_id } " : {
65- "organization_id" : 1 ,
66- "name" : f"Commitee{ committee_id } " ,
67- "meeting_ids" : [base ],
68- },
69- "organization/1" : {
70- "limit_of_meetings" : 0 ,
71- "active_meeting_ids" : [base ],
72- "enable_electronic_voting" : True ,
73- },
7437 f"meeting_user/{ base } { user1 } " : {"user_id" : user1 , "meeting_id" : base },
7538 f"meeting_user/{ base } { user2 } " : {"user_id" : user2 , "meeting_id" : base },
7639 }
7740 )
7841
79- def move_user_to_group (self , meeting_user_to_groups : dict [int , Any ]) -> None :
42+ def move_users_to_groups (self , user_to_groups : dict [int , list [ int ] ]) -> None :
8043 """
8144 Sets the users groups, returns the meeting_user_ids
8245 Be careful as it does not reset previously set groups if the related meeting
8346 users are not in meeting_user_to_groups.
8447 """
85- groups_to_meeting_user = defaultdict (list )
86- for meeting_user_id , group_id in meeting_user_to_groups .items ():
87- if group_id :
88- self .update_model (
89- f"meeting_user/{ meeting_user_id } " , {"group_ids" : [group_id ]}
90- )
91- groups_to_meeting_user [group_id ].append (meeting_user_id )
92- else :
93- self .update_model (
94- f"meeting_user/{ meeting_user_id } " , {"group_ids" : None }
95- )
96- for group_id , meeting_user_ids in groups_to_meeting_user .items ():
97- self .update_model (
98- f"group/{ group_id } " , {"meeting_user_ids" : meeting_user_ids }
99- )
48+ for user_id , group_ids in user_to_groups .items ():
49+ self .set_user_groups (user_id , group_ids )
0 commit comments