@@ -19,63 +19,99 @@ def __init__(self, page: Page):
19
19
self .profile_contribution_areas = MyProfileEditContributionAreasPage (page )
20
20
21
21
# Editing a profile with data flow.
22
- def edit_profile_with_test_data (self ) :
22
+ def edit_profile_with_test_data (self , info_only = False , submit_change = False ) -> dict [ str , str ] :
23
23
edit_test_data = self .utilities .profile_edit_test_data
24
+ valid_user_edit = edit_test_data ["valid_user_edit" ]
24
25
25
- self ._clear_input_fields ()
26
- self .edit_profile_page .send_text_to_username_field (
27
- edit_test_data ["valid_user_edit" ]["username" ]
28
- )
29
- self .edit_profile_page .send_text_to_display_name_field (
30
- edit_test_data ["valid_user_edit" ]["display_name" ]
31
- )
32
- self .edit_profile_page .send_text_to_biography_field (
33
- edit_test_data ["valid_user_edit" ]["biography" ]
34
- )
35
- self .edit_profile_page .send_text_to_website_field (
36
- edit_test_data ["valid_user_edit" ]["website" ]
37
- )
38
- self .edit_profile_page .send_text_to_twitter_username_field (
39
- edit_test_data ["valid_user_edit" ]["twitter_username" ]
40
- )
41
- self .edit_profile_page .send_text_to_community_portal_field (
42
- edit_test_data ["valid_user_edit" ]["community_portal_username" ]
43
- )
44
- self .edit_profile_page .send_text_to_people_directory_username (
45
- edit_test_data ["valid_user_edit" ]["people_directory_username" ]
46
- )
47
- self .edit_profile_page .send_text_to_matrix_nickname (
48
- edit_test_data ["valid_user_edit" ]["matrix_nickname" ]
49
- )
50
- self .edit_profile_page .select_country_dropdown_option_by_value (
51
- edit_test_data ["valid_user_edit" ]["country_code" ]
52
- )
53
- self .edit_profile_page .sent_text_to_city_field (edit_test_data ["valid_user_edit" ]["city" ])
54
- self .edit_profile_page .select_timezone_dropdown_option_by_value (
55
- edit_test_data ["valid_user_edit" ]["timezone" ]
56
- )
57
- self .edit_profile_page .select_preferred_language_dropdown_option_by_value (
58
- edit_test_data ["valid_user_edit" ]["preferred_language" ]
59
- )
60
- self .edit_profile_page .select_involved_from_month_option_by_value (
61
- edit_test_data ["valid_user_edit" ]["involved_from_month_number" ]
62
- )
63
- self .edit_profile_page .select_involved_from_year_option_by_value (
64
- edit_test_data ["valid_user_edit" ]["involved_from_year" ]
65
- )
26
+ self .clear_input_fields (info_only )
27
+
28
+ if not info_only :
29
+ self ._update_fields ([
30
+ ("send_text_to_username_field" , valid_user_edit ["username" ]),
31
+ ("send_text_to_display_name_field" , valid_user_edit ["display_name" ]),
32
+ ("select_timezone_dropdown_option_by_value" , valid_user_edit ["timezone" ]),
33
+ ("select_preferred_language_dropdown_option_by_value" ,
34
+ valid_user_edit ["preferred_language" ])
35
+ ])
36
+
37
+ self ._update_fields ([
38
+ ("send_text_to_biography_field" , valid_user_edit ["biography" ]),
39
+ ("send_text_to_website_field" , valid_user_edit ["website" ]),
40
+ ("send_text_to_twitter_username_field" , valid_user_edit ["twitter_username" ]),
41
+ ("send_text_to_community_portal_field" , valid_user_edit ["community_portal_username" ]),
42
+ ("send_text_to_people_directory_username" ,
43
+ valid_user_edit ["people_directory_username" ]),
44
+ ("send_text_to_matrix_nickname" , valid_user_edit ["matrix_nickname" ]),
45
+ ("select_country_dropdown_option_by_value" , valid_user_edit ["country_code" ]),
46
+ ("sent_text_to_city_field" , valid_user_edit ["city" ]),
47
+ ("select_involved_from_month_option_by_value" ,
48
+ valid_user_edit ["involved_from_month_number" ]),
49
+ ("select_involved_from_year_option_by_value" , valid_user_edit ["involved_from_year" ])
50
+ ])
51
+
52
+ if submit_change :
53
+ self .edit_profile_page .click_update_my_profile_button ()
54
+
55
+ return {
56
+ "username" : valid_user_edit ["username" ],
57
+ "display_name" : valid_user_edit ["display_name" ],
58
+ "biography" : valid_user_edit ["biography" ],
59
+ "website" : valid_user_edit ["website" ],
60
+ "twitter" : valid_user_edit ["twitter_username" ],
61
+ "community_portal" : valid_user_edit ["community_portal_username" ],
62
+ "people_directory" : valid_user_edit ["people_directory_username" ],
63
+ "matrix_nickname" : valid_user_edit ["matrix_nickname" ],
64
+ "country" : valid_user_edit ["country_value" ],
65
+ "city" : valid_user_edit ["city" ],
66
+ "timezone" : valid_user_edit ["timezone" ],
67
+ "preferred_language" : valid_user_edit ["preferred_language" ],
68
+ "involved_from_month" : valid_user_edit ["involved_from_month_value" ],
69
+ "involved_from_year" : valid_user_edit ["involved_from_year" ]
70
+ }
71
+
72
+ def _update_fields (self , fields : list [tuple [str , str ]]):
73
+ """
74
+ Updates the fields on the edit profile page.
75
+
76
+ Args:
77
+ fields (list[tuple[str, str]]): A list of tuples where each tuple contains the method
78
+ name and the value to be set.
79
+ """
80
+ for method_name , value in fields :
81
+ getattr (self .edit_profile_page , method_name )(value )
66
82
67
83
# Clear all profile edit input fields flow.
68
- def _clear_input_fields (self ):
69
- self .edit_profile_page .clear_all_input_fields ()
70
- self .edit_profile_page .clear_username_field ()
84
+ def clear_input_fields (self , only_profile_info = False , submit_change = False ):
85
+ """
86
+ Clears all profile edit input fields.
87
+
88
+ Args:
89
+ only_profile_info (bool): If True, all profile info fields are cleared except username
90
+ and display name.
91
+ submit_change (bool): If True, submits the changes after clearing the fields.
92
+ """
93
+ self .edit_profile_page .clear_all_input_fields (only_profile_info )
71
94
self .edit_profile_page .clear_biography_textarea_field ()
95
+ if submit_change :
96
+ self .edit_profile_page .click_update_my_profile_button ()
72
97
73
98
def check_all_user_settings (self ):
99
+ """
100
+ Navigates to the settings profile option, checks all settings checkboxes,
101
+ and updates the settings.
102
+ """
74
103
self .top_navbar .click_on_settings_profile_option ()
75
104
self .edit_settings_page .click_on_all_settings_checkboxes ()
76
105
self .edit_settings_page .click_on_update_button ()
77
106
78
107
def check_all_profile_contribution_areas (self , checked : bool ):
108
+ """
109
+ Navigates to the contribution areas section and checks or unchecks all contribution areas.
110
+
111
+ Args:
112
+ checked (bool): If True, checks all contribution areas. If False, unchecks all
113
+ contribution areas.
114
+ """
79
115
self .top_navbar .click_on_settings_profile_option ()
80
116
self .profile_navbar .click_on_edit_contribution_areas_option ()
81
117
0 commit comments