@@ -62,6 +62,7 @@ def test_count_sold_and_reserved_tickets(self):
6262
6363 with self .app .test_request_context ():
6464 ticket = TicketFactory ()
65+ other_ticket = TicketFactory ()
6566
6667 completed_order = OrderFactory (status = 'completed' )
6768 placed_order = OrderFactory (status = 'placed' )
@@ -79,24 +80,48 @@ def test_count_sold_and_reserved_tickets(self):
7980 db .session .commit ()
8081
8182 # will not be counted as they have no order_id
82- AttendeeFactoryBase .create_batch (2 )
83+ AttendeeFactoryBase .create_batch (2 , ticket_id = ticket . id )
8384 # will be counted as attendee have valid orders
84- AttendeeFactoryBase .create_batch (6 , order_id = completed_order .id )
85+ AttendeeFactoryBase .create_batch (
86+ 6 , order_id = completed_order .id , ticket_id = ticket .id
87+ )
8588 # will be counted as attendee has valid placed order
86- AttendeeFactoryBase (order_id = placed_order .id )
89+ AttendeeFactoryBase (order_id = placed_order .id , ticket_id = ticket .id )
90+ # will not be counted as they are deleted
91+ AttendeeFactoryBase .create_batch (
92+ 3 ,
93+ order_id = placed_order .id ,
94+ ticket_id = ticket .id ,
95+ deleted_at = datetime .utcnow (),
96+ )
8797 # will be counted as attendee has initializing order under order expiry time
88- AttendeeFactoryBase .create_batch (4 , order_id = initializing_order .id )
98+ AttendeeFactoryBase .create_batch (
99+ 4 , order_id = initializing_order .id , ticket_id = ticket .id
100+ )
89101 # will be counted as attendee has pending order under 30+order expiry time
90- AttendeeFactoryBase .create_batch (2 , order_id = pending_order .id )
102+ AttendeeFactoryBase .create_batch (
103+ 2 , order_id = pending_order .id , ticket_id = ticket .id
104+ )
91105 # will not be counted as the order is not under order expiry time
92- AttendeeFactoryBase .create_batch (3 , order_id = expired_time_order .id )
106+ AttendeeFactoryBase .create_batch (
107+ 3 , order_id = expired_time_order .id , ticket_id = ticket .id
108+ )
93109 # will not be counted as the order has an expired state
94- AttendeeFactoryBase .create_batch (5 , order_id = expired_order .id )
110+ AttendeeFactoryBase .create_batch (
111+ 5 , order_id = expired_order .id , ticket_id = ticket .id
112+ )
113+ # will not be counted as the attendees have different ticket ID
114+ AttendeeFactoryBase .create_batch (
115+ 2 , order_id = completed_order .id , ticket_id = other_ticket .id
116+ )
95117
96- count = get_sold_and_reserved_tickets_count (ticket .event_id )
118+ count = get_sold_and_reserved_tickets_count (ticket .id )
97119
98120 self .assertEqual (count , 13 )
99121
122+ # Last 2 attendees belong to other ticket
123+ self .assertEqual (get_sold_and_reserved_tickets_count (other_ticket .id ), 2 )
124+
100125
101126if __name__ == '__main__' :
102127 unittest .main ()
0 commit comments