Ejemplo n.º 1
0
    def setUp(self):
        self.tomorrow = timezone.now() + datetime.timedelta(hours=24)
        self.tomorrow_pl1 = timezone.now() + datetime.timedelta(hours=48)
        self.tomorrow_pl2 = timezone.now() + datetime.timedelta(hours=72)
        
        self.events = [
                Event.objects.create(
                        title="Test Event1",
                        time_start=self.tomorrow,
                        time_end=self.tomorrow,
                    ),
                Event.objects.create(
                        title="Test Event2",
                        time_start=self.tomorrow_pl1,
                        time_end=self.tomorrow_pl2,
                    ),
                Event.objects.create(
                        title="Test Event3",
                        time_start=self.tomorrow,
                        time_end=self.tomorrow_pl2,
                    )
            ]

        self.time_ranges = [
                    time_range_generator(e.time_start, e.time_end, html=True) 
                    for e in self.events
                ]
Ejemplo n.º 2
0
    def test_clean_end_after_start(self):
        """
        Test clean with an end date after the start date 
        
        """
        time_range_str = time_range_generator(self.today, self.tomorrow)

        self.field.clean(time_range_str)
Ejemplo n.º 3
0
    def test_clean_soon_start(self):
        """ 
        Test clean with a start date in the very near future 
       
        """
        time_range_str = time_range_generator(self.today, self.today)

        self.field.clean(time_range_str)
Ejemplo n.º 4
0
    def test_clean_end_before_start(self):
        """
        Test clean with an end date before the start date 
        
        """
        time_range_str = time_range_generator(self.today, self.yesterday)

        with self.assertRaises(ValidationError):
            self.field.clean(time_range_str)
Ejemplo n.º 5
0
    def test_format_value_time_range_correct(self):
        """ 
        Test format value with a time_range containing two dates in the
        near future 
        
        """
        time_range = (self.now, self.tomorrow)
        expected = time_range_generator(self.now, self.tomorrow)

        self.assertEqual(self.widget.format_value(time_range), expected)
Ejemplo n.º 6
0
    def test_save_bad_time_range(self):
        """
        Ensure that validations are working on the form for bad time range data 
        
        """
        time_range = time_range_generator(self.today, self.yesterday)
        data = {
                'title': 'Test Event',
                'time_range': time_range,
            }

        form = EventForm(data)

        self.assertFalse(form.is_valid())
Ejemplo n.º 7
0
    def test_allows_past_time_range(self):
        """
        Ensure that a time_range in the past is still valid.
        
        """
        time_range = time_range_generator(self.yesterday, self.tomorrow)
        data = {
                'title': 'Test Event',
                'time_range': time_range,
            }

        form = EventFormAllowsPast(data)

        self.assertTrue(form.is_valid())
Ejemplo n.º 8
0
    def test_denies_past_time_range(self):
        """
        Ensure that a time_range in the past is not considered valid.
        
        """
        time_range = time_range_generator(self.yesterday, self.tomorrow)
        data = {
                'title': 'Test Event',
                'time_range': time_range,
            }

        form = EventForm(data)

        self.assertFalse(form.is_valid())
Ejemplo n.º 9
0
    def test_save_commit(self):
        """ Test saving a form to database """
        time_range = time_range_generator(self.tomorrow, self.tomorrow)
        data = {
                'title': 'Test Event',
                'time_range': time_range,
            }

        form = EventForm(data)

        self.assertTrue(form.is_valid())

        event = form.save()
        self.assertIsNotNone(event)
        
        self.assertTrue(Event.objects.filter(pk=event.pk).exists())
Ejemplo n.º 10
0
    def test_save_no_commit(self):
        """ Test saving a form without committing directly to database """
        time_range = time_range_generator(self.tomorrow, self.tomorrow)
        data = {
                'title': 'Test Event',
                'time_range': time_range,
            }

        form = EventFormAllowsPast(data)

        self.assertTrue(form.is_valid())

        event = form.save(commit=False)
        self.assertIsNotNone(event)
        self.assertFalse(Event.objects.filter(pk=event.pk).exists())

        event.save() 
        self.assertTrue(Event.objects.filter(pk=event.pk).exists())
Ejemplo n.º 11
0
    def test_post_create_event(self):
        """
        Actually create an event using the view

        """
        client = Client()
        
        time_range = time_range_generator(self.tomorrow, self.tomorrow_pl1)
        data = {
                'title': 'Test Event',
                'time_range': time_range,
            }
        
        response = client.post(CREATE_EVENT_URL, data)
        self.assertTemplateUsed(response, 'simpleapp/create.html')
    
        self.assertContains(response, 
                '<strong>Success!</strong> Event has been created.') 
        self.assertTrue(Event.objects.filter(title='Test Event').exists())
Ejemplo n.º 12
0
    def test_post_create_even_bad_time(self):
        """
        Send bad data to event creation form and see if an event is created or
        not

        """
        client = Client()

        time_range = time_range_generator(self.tomorrow_pl1, self.tomorrow)
        data = {
                'title': 'Test Event',
                'time_range': time_range,
            }
        
        response = client.post(CREATE_EVENT_URL, data)
        self.assertTemplateUsed(response, 'simpleapp/create.html')
   
        self.assertContains(response, 'End date is before start date.')
        self.assertNotContains(response, 
                '<strong>Success!</strong> Event has been created.') 
        self.assertFalse(Event.objects.filter(title='Test Event').exists())
Ejemplo n.º 13
0
    def test_clean_early_end(self):
        """ Test clean with an end date in the past """
        time_range_str = time_range_generator(self.yesterday, self.yesterday)

        self.field.clean(time_range_str)
Ejemplo n.º 14
0
    def test_clean_early_end(self):
        """ Test clean with an end date in the past """
        time_range_str = time_range_generator(self.yesterday, self.yesterday)

        with self.assertRaises(ValidationError):
            self.field.clean(time_range_str)
Ejemplo n.º 15
0
    def test_clean_late_start(self):
        """ Test clean with a start date in the future """
        time_range_str = time_range_generator(self.tomorrow, self.tomorrow)

        self.field.clean(time_range_str)
Ejemplo n.º 16
0
    def test_format_value_given_string(self):
        """ Test format_value given an already-correct string """
        time_range = time_range_generator(self.now, self.now)

        self.assertEqual(self.widget.format_value(time_range), time_range)