Skip to content

Commit 0663850

Browse files
committed
Complete presenter tests
1 parent 8a1f225 commit 0663850

12 files changed

+700
-1537
lines changed

openslides_backend/presenter/get_forwarding_meetings.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from datetime import datetime
12
from typing import Any
23

34
import fastjsonschema
@@ -76,8 +77,12 @@ def get_result(self) -> Any:
7677
{
7778
"id": meeting_id2,
7879
"name": meeting2.get("name", ""),
79-
"start_time": meeting2.get("start_time"),
80-
"end_time": meeting2.get("end_time"),
80+
"start_time": self._get_formatted_datetime_value(
81+
meeting2, "start_time"
82+
),
83+
"end_time": self._get_formatted_datetime_value(
84+
meeting2, "end_time"
85+
),
8186
}
8287
)
8388
if meeting_result:
@@ -92,3 +97,14 @@ def get_result(self) -> Any:
9297
}
9398
)
9499
return result
100+
101+
@staticmethod
102+
def _get_formatted_datetime_value(
103+
meeting: dict[str, Any], field: str
104+
) -> str | None:
105+
raw_value = meeting.get(field)
106+
if not raw_value:
107+
return None
108+
if isinstance(raw_value, datetime):
109+
return raw_value.isoformat()
110+
return str(raw_value)

tests/system/presenter/base.py

Lines changed: 6 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
from collections import defaultdict
21
from typing import Any
32

43
from openslides_backend.http.application import OpenSlidesBackendWSGIApplication
54
from openslides_backend.http.views.presenter_view import PresenterView
5+
from openslides_backend.services.database.interface import PartialModel
66
from tests.system.base import BaseSystemTestCase
77
from 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

Comments
 (0)