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

1import json 

2from unittest.mock import patch 

3from tests.endpoints.endpoint_testing import TestEndpoints 

4 

5 

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 ] 

26 

27 response = self.client.get("/api/store/1/members") 

28 data = response.json 

29 

30 self.assertEqual(response.status_code, 200) 

31 self.assertIsInstance(data, list) 

32 self.assertEqual(len(data), 3) 

33 

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"]) 

41 

42 

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 

50 

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 ] 

63 

64 response = self.client.post( 

65 "/api/store/test_store/members", 

66 data={"members": json.dumps(members_data)}, 

67 ) 

68 

69 self.assertEqual(response.status_code, 200) 

70 data = response.json 

71 self.assertEqual(data["msg"], "Changes saved") 

72 

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)