Exemplo n.º 1
0
    def test_ordering(self):
        # Create some instances, not in date order
        sep_1 = YearlessDateModel.objects.create(
            yearless_date=YearlessDate(1, 9))
        nov_10 = YearlessDateModel.objects.create(
            yearless_date=YearlessDate(10, 11))
        jan_29 = YearlessDateModel.objects.create(
            yearless_date=YearlessDate(29, 1))
        jan_9 = YearlessDateModel.objects.create(
            yearless_date=YearlessDate(9, 1))
        aug_5 = YearlessDateModel.objects.create(
            yearless_date=YearlessDate(5, 8))

        model_ids_in_order = [
            jan_9.id, jan_29.id, aug_5.id, sep_1.id, nov_10.id
        ]

        # Pull the models from the database, ordering by date
        retrieved_models = YearlessDateModel.objects.filter(
            id__in=model_ids_in_order).order_by('yearless_date').values_list(
                'id', flat=True)

        # Check the lists are the same
        assert all(
            [a == b for a, b in zip(retrieved_models, model_ids_in_order)])
Exemplo n.º 2
0
    def test_deconstruct(self):
        yearless_date = YearlessDate(30, 9)

        serialized = yearless_date.deconstruct()

        # Deserialize it.
        cls = import_string(serialized[0])

        deserialized = cls(*serialized[1], **serialized[2])

        assert deserialized == yearless_date
Exemplo n.º 3
0
    def test_deconstruct(self):
        yearless_date = YearlessDate(30, 9)

        serialized = yearless_date.deconstruct()

        # Deserialize it.
        cls = import_string(serialized[0])

        deserialized = cls(*serialized[1], **serialized[2])

        assert deserialized == yearless_date
 def test_invalid_day_raises_exception(self):
     # February never has 30 days
     with self.assertRaisesRegexp(
             Exception,
             'Cannot create DateInYear object - invalid day value 30 for month February.'
     ):
         YearlessDate(30, 2)
Exemplo n.º 5
0
 def test_yearless_date_form_has_changed_value_to_empty(self):
     form = YearlessDateForm(initial={'yearless_date': YearlessDate(1, 9)},
                             data={
                                 'yearless_date_0': '',
                                 'yearless_date_1': ''
                             })
     assert form.has_changed()
Exemplo n.º 6
0
 def test_valid_yearless_date(self):
     form = YearlessDateForm(data={
         'yearless_date_0': '1',
         'yearless_date_1': '9'
     })
     assert form.is_valid()
     assert form.cleaned_data['yearless_date'] == YearlessDate(1, 9)
Exemplo n.º 7
0
 def test_yearless_date_form_has_not_changed(self):
     form = YearlessDateForm(initial={'yearless_date': YearlessDate(1, 9)},
                             data={
                                 'yearless_date_0': '1',
                                 'yearless_date_1': '9'
                             })
     assert not form.has_changed()
Exemplo n.º 8
0
 def test_yearless_date_form_has_changed_value_to_new_value(self):
     form = YearlessDateForm(
         initial={'yearless_date': YearlessDate(29, 10)},
         data={
             'yearless_date_0': '18',
             'yearless_date_1': '3'
         })
     assert form.has_changed()
 def test_leap_year_date_is_valid(self):
     yearless_date = YearlessDate(29, 2)
     self.assertEqual(yearless_date.day, 29)
     self.assertEqual(yearless_date.month, 2)
Exemplo n.º 10
0
 def test_value_to_string(self):
     yearless_date = YearlessDate(3, 7)
     model = YearlessDateModel(yearless_date=yearless_date)
     field = model._meta.get_field('yearless_date')
     assert field.value_to_string(model) == '0703'
Exemplo n.º 11
0
 def setUpClass(cls):
     cls.earlier = YearlessDate(30, 9)
     cls.later = YearlessDate(1, 10)
Exemplo n.º 12
0
 def test_month_name(self):
     self.assertEqual(YearlessDate(30, 12).month_name, 'December')
Exemplo n.º 13
0
 def test_non_yearless_dates_are_not_equal(self):
     self.assert_not_equal_thorough(YearlessDate(9, 6), 'foo')
Exemplo n.º 14
0
 def test_same_day_different_months_are_not_equal(self):
     self.assert_not_equal_thorough(YearlessDate(15, 3),
                                    YearlessDate(15, 6))
Exemplo n.º 15
0
 def test_storage_and_retrieval(self):
     yearless_date = YearlessDate(3, 7)
     model = YearlessDateModel.objects.create(yearless_date=yearless_date)
     retrieved_model = YearlessDateModel.objects.get(id=model.id)
     assert retrieved_model.yearless_date == yearless_date
Exemplo n.º 16
0
 def test_form_field_can_be_overridden(self):
     model = YearlessDateModel(yearless_date=YearlessDate(1, 9))
     field = model._meta.get_field('yearless_date')
     assert isinstance(field.formfield(form_class=MyCustomFormField),
                       MyCustomFormField)
Exemplo n.º 17
0
 def test_form_field_default(self):
     model = YearlessDateModel(yearless_date=YearlessDate(1, 9))
     field = model._meta.get_field('yearless_date')
     assert isinstance(field.formfield(), forms.YearlessDateField)
Exemplo n.º 18
0
 def test_str(self):
     self.assertEqual(str(YearlessDate(15, 6)), '15 June')
Exemplo n.º 19
0
 def test_identical_dates_are_equal(self):
     self.assert_equal_thorough(YearlessDate(15, 6), YearlessDate(15, 6))
Exemplo n.º 20
0
 def test_decompress_with_value(self):
     assert YearlessDateSelect().decompress(YearlessDate(22, 6)) == [22, 6]
Exemplo n.º 21
0
 def test_different_days_same_month_are_not_equal(self):
     self.assert_not_equal_thorough(YearlessDate(12, 6),
                                    YearlessDate(15, 6))
Exemplo n.º 22
0
 def test_equal_dates_are_not_less_than(self):
     self.assertFalse(YearlessDate(30, 9) < YearlessDate(30, 9))
Exemplo n.º 23
0
 def test_equal_dates_are_not_greater_than(self):
     self.assertFalse(YearlessDate(30, 9) > YearlessDate(30, 9))
Exemplo n.º 24
0
class YearlessDateModel(models.Model):
    """Sample model for testing YearlessDateField.
    """
    yearless_date = YearlessDateField()
    optional_yearless_date = YearlessDateField(blank=True, null=True)
    yearless_date_with_default = YearlessDateField(default=YearlessDate(day=3, month=5))
Exemplo n.º 25
0
 def test_equal_dates_are_greater_than_or_equal_to(self):
     self.assertTrue(YearlessDate(30, 9) >= YearlessDate(30, 9))
Exemplo n.º 26
0
 def test_invalid_month_raises_exception(self):
     with self.assertRaisesRegexp(
             Exception,
             'Cannot create DateInYear object with a month value of 0.'):
         YearlessDate(1, 0)
Exemplo n.º 27
0
 def test_equal_dates_are_less_than_or_equal_to(self):
     self.assertTrue(YearlessDate(30, 9) <= YearlessDate(30, 9))
Exemplo n.º 28
0
 def test_empty_values(self):
     model = YearlessDateModel.objects.create(
         yearless_date=YearlessDate(1, 1))
     retrieved_model = YearlessDateModel.objects.get(id=model.id)
     assert retrieved_model.optional_yearless_date == None