@@ -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