コード例 #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)])
コード例 #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
コード例 #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
コード例 #4
0
 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)
コード例 #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()
コード例 #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)
コード例 #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()
コード例 #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()
コード例 #9
0
 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)
コード例 #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'
コード例 #11
0
 def setUpClass(cls):
     cls.earlier = YearlessDate(30, 9)
     cls.later = YearlessDate(1, 10)
コード例 #12
0
 def test_month_name(self):
     self.assertEqual(YearlessDate(30, 12).month_name, 'December')
コード例 #13
0
 def test_non_yearless_dates_are_not_equal(self):
     self.assert_not_equal_thorough(YearlessDate(9, 6), 'foo')
コード例 #14
0
 def test_same_day_different_months_are_not_equal(self):
     self.assert_not_equal_thorough(YearlessDate(15, 3),
                                    YearlessDate(15, 6))
コード例 #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
コード例 #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)
コード例 #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)
コード例 #18
0
 def test_str(self):
     self.assertEqual(str(YearlessDate(15, 6)), '15 June')
コード例 #19
0
 def test_identical_dates_are_equal(self):
     self.assert_equal_thorough(YearlessDate(15, 6), YearlessDate(15, 6))
コード例 #20
0
 def test_decompress_with_value(self):
     assert YearlessDateSelect().decompress(YearlessDate(22, 6)) == [22, 6]
コード例 #21
0
 def test_different_days_same_month_are_not_equal(self):
     self.assert_not_equal_thorough(YearlessDate(12, 6),
                                    YearlessDate(15, 6))
コード例 #22
0
 def test_equal_dates_are_not_less_than(self):
     self.assertFalse(YearlessDate(30, 9) < YearlessDate(30, 9))
コード例 #23
0
 def test_equal_dates_are_not_greater_than(self):
     self.assertFalse(YearlessDate(30, 9) > YearlessDate(30, 9))
コード例 #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))
コード例 #25
0
 def test_equal_dates_are_greater_than_or_equal_to(self):
     self.assertTrue(YearlessDate(30, 9) >= YearlessDate(30, 9))
コード例 #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)
コード例 #27
0
 def test_equal_dates_are_less_than_or_equal_to(self):
     self.assertTrue(YearlessDate(30, 9) <= YearlessDate(30, 9))
コード例 #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