def test_nondefault_value(self): class OrderByFilter(listfilter.django.single.select.AbstractOrderBy): def get_ordering_options(self): return [ ('', { 'label': 'asc', 'order_by': ['mydatetimefield'], }), ('desc', { 'label': 'desc', 'order_by': ['-mydatetimefield'], }), ] testfilter = OrderByFilter(slug='orderby') testfilter.set_values(values=['desc']) testitem2 = baker.make( 'cradmin_viewhelpers_testapp.FilterTestModel', mydatetimefield=datetimeutils.default_timezone_datetime( 2016, 1, 2)) testitem1 = baker.make( 'cradmin_viewhelpers_testapp.FilterTestModel', mydatetimefield=datetimeutils.default_timezone_datetime( 2015, 1, 2)) self.assertEqual( [testitem2, testitem1], list(testfilter.filter(queryobject=FilterTestModel.objects.all())))
def test_this_month_match(self): testfilter = listfilter.django.single.select.DateTime( slug='mydatetimefield') testfilter.set_values(values=['this_month']) start_of_month = baker.make( 'cradmin_viewhelpers_testapp.FilterTestModel', mydatetimefield=datetimeutils.default_timezone_datetime( 2015, 12, 1)) middle_of_month = baker.make( 'cradmin_viewhelpers_testapp.FilterTestModel', mydatetimefield=datetimeutils.default_timezone_datetime( 2015, 12, 24)) end_of_month = baker.make( 'cradmin_viewhelpers_testapp.FilterTestModel', mydatetimefield=datetimeutils.default_timezone_datetime( 2015, 12, 31, 23)) with mock.patch( 'cradmin_legacy.viewhelpers.listfilter.basefilters.single.abstractselect.timezone.now', lambda: datetimeutils.default_timezone_datetime( 2015, 12, 7, 12, 30)): self.assertEqual( {start_of_month, middle_of_month, end_of_month}, set( testfilter.filter( queryobject=FilterTestModel.objects.all())))
def test_yesterday_nomatch(self): testfilter = listfilter.django.single.select.DateTime( slug='mydatetimefield') testfilter.set_values(values=['yesterday']) baker.make('cradmin_viewhelpers_testapp.FilterTestModel', mydatetimefield=datetimeutils.default_timezone_datetime( 2015, 1, 10)) with mock.patch( 'cradmin_legacy.viewhelpers.listfilter.basefilters.single.abstractselect.timezone.now', lambda: datetimeutils.default_timezone_datetime(2015, 1, 12)): self.assertFalse( testfilter.filter( queryobject=FilterTestModel.objects.all()).exists())
def test_last_seven_days_match(self): testfilter = listfilter.django.single.select.DateTime( slug='mydatetimefield') testfilter.set_values(values=['last_seven_days']) testitem = baker.make( 'cradmin_viewhelpers_testapp.FilterTestModel', mydatetimefield=datetimeutils.default_timezone_datetime( 2015, 1, 3)) with mock.patch( 'cradmin_legacy.viewhelpers.listfilter.basefilters.single.abstractselect.timezone.now', lambda: datetimeutils.default_timezone_datetime( 2015, 1, 10, 12, 30)): self.assertEqual( {testitem}, set( testfilter.filter( queryobject=FilterTestModel.objects.all())))
def test_is_null(self): testfilter = listfilter.django.single.select.NullDateTime( slug='mynulldatetimefield') testfilter.set_values(values=['is_null']) baker.make('cradmin_viewhelpers_testapp.FilterTestModel', mynulldatetimefield=datetimeutils.default_timezone_datetime( 2014, 12, 31)) isnull = baker.make('cradmin_viewhelpers_testapp.FilterTestModel', mynulldatetimefield=None) self.assertEqual( {isnull}, set(testfilter.filter(queryobject=FilterTestModel.objects.all())))
def test_datetime_field_with_default_with_instance(self): class MyModelForm(automodelform.ModelForm): class Meta: model = AutoFormTestModel fields = ['datetimefield_with_default'] autoformtestmodelobject = baker.make( 'cradmin_automodelform_testapp.AutoFormTestModel', datetimefield_with_default=datetimeutils.default_timezone_datetime( 2015, 12, 24, 12, 0, 0)) selector = htmls.S( MyModelForm(instance=autoformtestmodelobject).as_ul()) self.assertEqual( '2015-12-24 12:00:00', selector.one( 'input[type="text"][name="datetimefield_with_default"]') ['value']) self.assertTrue( selector.exists('.cradmin-legacy-datepicker-triggerbutton'))