@@ -35,8 +35,8 @@ def test_default_attributes_on_creation(self):
35
35
36
36
def test_creation_without_service (self ):
37
37
"""A staff member can be created without a service."""
38
- new_staff = self .create_user_ (
39
- first_name = "Jonas" , email = "[email protected] " , username = "jonas.quinn" )
38
+ new_staff = self .
create_user_ (
first_name = "Jonas" , last_name = "Quinn" , email = "[email protected] " ,
39
+ username = "jonas.quinn" )
40
40
new_staff_member = StaffMember .objects .create (user = new_staff )
41
41
self .assertIsNotNone (new_staff_member )
42
42
self .assertEqual (new_staff_member .services_offered .count (), 0 )
@@ -46,6 +46,47 @@ def test_creation_fails_without_user(self):
46
46
with self .assertRaises (IntegrityError ):
47
47
StaffMember .objects .create ()
48
48
49
+ def test_get_staff_member_name_with_email (self ):
50
+ # Simulate create a staff member with only an email and username
51
+ # (in my case, username is mandatory, but should work with email as well)
52
+ email_only_user = self .create_user_ (
53
+ first_name = "" ,
54
+ last_name = "" ,
55
+
56
+
57
+ )
58
+ email_only_staff = StaffMember .objects .create (user = email_only_user )
59
+
60
+ # Test that the email is returned when no other name information is available
61
+ self .
assertEqual (
email_only_staff .
get_staff_member_name (),
"[email protected] " )
62
+
63
+ def test_get_staff_member_name_priority (self ):
64
+ # Create a staff member with all name fields filled
65
+ full_user = self .create_user_ (
66
+ first_name = "Rodney" ,
67
+ last_name = "McKay" ,
68
+
69
+ username = "rodney.mckay"
70
+ )
71
+ full_staff = StaffMember .objects .create (user = full_user )
72
+
73
+ # Test that the full name is returned when available
74
+ self .assertEqual (full_staff .get_staff_member_name (), "Rodney McKay" )
75
+
76
+ # Modify the user to test different scenarios
77
+ full_user .first_name = ""
78
+ full_user .last_name = ""
79
+ full_user .save ()
80
+
81
+ # Test that the username is returned when full name is not available
82
+ self .assertEqual (full_staff .get_staff_member_name (), "rodney.mckay" )
83
+
84
+ full_user .username = ""
85
+ full_user .save ()
86
+
87
+ # Test that the email is returned when username and full name are not available
88
+ self .
assertEqual (
full_staff .
get_staff_member_name (),
"[email protected] " )
89
+
49
90
50
91
class StaffMemberServiceTests (BaseTest ):
51
92
@classmethod
@@ -84,14 +125,14 @@ def test_services_offered(self):
84
125
85
126
def test_staff_member_with_non_existent_service (self ):
86
127
"""A staff member cannot offer a non-existent service."""
87
- new_staff = self .create_user_ (
88
- first_name = "Vala" , email = "[email protected] " ,
username = "vala.mal-doran" )
128
+ new_staff = self .create_user_ (first_name = "Vala" , last_name = "Mal Doran" ,
129
+ email = "[email protected] " ,
username = "vala.mal-doran" )
89
130
new_staff_member = StaffMember .objects .create (user = new_staff )
90
131
91
132
# Trying to add a non-existent service to the staff member's services_offered
92
133
with self .assertRaises (ValueError ):
93
134
new_staff_member .services_offered .add (
94
- Service (id = 9999 , name = "Prometheus Acquisition" , duration = timedelta (hours = 2 ), price = 200 ))
135
+ Service (id = 9999 , name = "Prometheus Acquisition" , duration = timedelta (hours = 2 ), price = 200 ))
95
136
96
137
97
138
class StaffMemberWorkingTimeTests (BaseTest ):
@@ -212,10 +253,10 @@ def test_get_staff_member_first_name(self):
212
253
def test_config_values_takes_over_when_sm_values_null (self ):
213
254
"""When some values are null in the StaffMember, the Config values should be used."""
214
255
config = Config .objects .create (
215
- lead_time = datetime .time (9 , 34 ),
216
- finish_time = datetime .time (17 , 11 ),
217
- slot_duration = 37 ,
218
- appointment_buffer_time = 16
256
+ lead_time = datetime .time (9 , 34 ),
257
+ finish_time = datetime .time (17 , 11 ),
258
+ slot_duration = 37 ,
259
+ appointment_buffer_time = 16
219
260
)
220
261
# Checking that the StaffMember's values are None
221
262
self .assertIsNone (self .staff_member .slot_duration )
0 commit comments