@@ -852,6 +852,100 @@ def test_is_active_deactive_in_stock(self):
852852 self .assertFalse (product .is_active ())
853853
854854
855+ class EventTests (TestCase ):
856+ def setUp (self ):
857+ self .jeff = Member .objects .create (
858+ username = "Jeff" ,
859+ )
860+
861+ def test_is_active_active_not_expired (self ):
862+ product = Product .objects .create (
863+ active = True ,
864+ price = 100 ,
865+ )
866+ event = Event .objects .create (
867+ name = "testEvent" ,
868+ active = True ,
869+ product = product ,
870+ time = timezone .now () + datetime .timedelta (hours = 1 ),
871+ ticket_start_threshold = timezone .now () - datetime .timedelta (hours = 1 ),
872+ ticket_end_threshold = timezone .now () + datetime .timedelta (hours = 1 ),
873+ )
874+
875+ self .assertTrue (event .is_active ())
876+
877+ def test_is_active_active_expired_after (self ):
878+ product = Product .objects .create (
879+ active = True ,
880+ price = 100 ,
881+ )
882+ event = Event .objects .create (
883+ name = "testEvent" ,
884+ active = True ,
885+ product = product ,
886+ time = timezone .now () + datetime .timedelta (hours = 1 ),
887+ ticket_start_threshold = timezone .now () - datetime .timedelta (hours = 10 ),
888+ ticket_end_threshold = timezone .now () - datetime .timedelta (hours = 1 ),
889+ )
890+
891+ self .assertFalse (event .is_active ())
892+
893+ def test_is_active_active_before_active (self ):
894+ product = Product .objects .create (
895+ active = True ,
896+ price = 100 ,
897+ )
898+ event = Event .objects .create (
899+ name = "testEvent" ,
900+ active = True ,
901+ product = product ,
902+ time = timezone .now () + datetime .timedelta (hours = 1 ),
903+ ticket_start_threshold = timezone .now () + datetime .timedelta (hours = 2 ),
904+ ticket_end_threshold = timezone .now () + datetime .timedelta (hours = 5 ),
905+ )
906+
907+ self .assertFalse (event .is_active ())
908+
909+ def test_is_active_inactive (self ):
910+ product = Product .objects .create (
911+ active = True ,
912+ price = 100 ,
913+ )
914+ event = Event .objects .create (
915+ name = "testEvent" ,
916+ active = False ,
917+ product = product ,
918+ time = timezone .now () + datetime .timedelta (hours = 1 ),
919+ ticket_start_threshold = timezone .now () - datetime .timedelta (hours = 10 ),
920+ ticket_end_threshold = timezone .now () - datetime .timedelta (hours = 1 ),
921+ )
922+
923+ self .assertFalse (event .is_active ())
924+
925+ def test_is_active_inactive_expired (self ):
926+ product = Product .objects .create (
927+ active = False , price = 100 , deactivate_date = (timezone .now () - datetime .timedelta (hours = 1 ))
928+ )
929+
930+ self .assertFalse (product .is_active ())
931+
932+ def test_is_active_deactive_out_of_stock (self ):
933+ product = Product .objects .create (
934+ active = False , price = 100 , quantity = 1 , start_date = datetime .date (year = 2017 , month = 12 , day = 1 )
935+ )
936+ product .sale_set .create (price = 100 , member = self .jeff )
937+
938+ self .assertFalse (product .is_active ())
939+
940+ def test_is_active_deactive_in_stock (self ):
941+ product = Product .objects .create (
942+ active = False , price = 100 , quantity = 2 , start_date = datetime .date (year = 2017 , month = 12 , day = 1 )
943+ )
944+ product .sale_set .create (price = 100 , member = self .jeff )
945+
946+ self .assertFalse (product .is_active ())
947+
948+
855949class SaleTests (TestCase ):
856950 def setUp (self ):
857951 self .member = Member .objects .create (username = "jon" , balance = 100 )
0 commit comments