Coverage for tests/endpoints/tests_members.py: 100%
29 statements
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-05 22:06 +0000
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-05 22:06 +0000
1import json
2from unittest.mock import patch
3from tests.endpoints.endpoint_testing import TestEndpoints
6class TestGetManageMembers(TestEndpoints):
7 @patch("canonicalwebteam.store_api.dashboard.Dashboard.get_store_members")
8 def test_get_manage_members_success(self, mock_get_store_members):
9 mock_get_store_members.return_value = [
10 {
11 "email": "user1@example.com",
12 "role": "admin",
13 "name": "User One",
14 },
15 {
16 "email": "testing@testing.com",
17 "role": "member",
18 "name": "Test User",
19 },
20 {
21 "email": "user2@example.com",
22 "role": "member",
23 "name": "User Two",
24 },
25 ]
27 response = self.client.get("/api/store/1/members")
28 data = response.json
30 self.assertEqual(response.status_code, 200)
31 self.assertIsInstance(data, list)
32 self.assertEqual(len(data), 3)
34 # Check that current user is marked correctly
35 current_user = next(
36 (user for user in data if user.get("current_user")), None
37 )
38 self.assertIsNotNone(current_user)
39 self.assertEqual(current_user["email"], "testing@testing.com")
40 self.assertTrue(current_user["current_user"])
43class TestPostManageMembers(TestEndpoints):
44 @patch(
45 "canonicalwebteam.store_api.dashboard.Dashboard.update_store_members"
46 )
47 def test_post_manage_members_success(self, mock_update_store_members):
48 """Test successful update of store members"""
49 mock_update_store_members.return_value = None
51 members_data = [
52 {
53 "email": "user1@example.com",
54 "role": "admin",
55 "name": "User One",
56 },
57 {
58 "email": "user2@example.com",
59 "role": "member",
60 "name": "User Two",
61 },
62 ]
64 response = self.client.post(
65 "/api/store/test_store/members",
66 data={"members": json.dumps(members_data)},
67 )
69 self.assertEqual(response.status_code, 200)
70 data = response.json
71 self.assertEqual(data["msg"], "Changes saved")
73 mock_update_store_members.assert_called_once()
74 call_args = mock_update_store_members.call_args
75 self.assertEqual(call_args[0][1], "test_store")
76 self.assertEqual(call_args[0][2], members_data)