@@ -1872,12 +1872,15 @@ def test_filtering(self):
18721872class OrderingFilterTests (TestCase ):
18731873
18741874 def setUp (self ):
1875- User .objects .create (username = 'alex' , first_name = 'Alex' , last_name = 'Allan' , status = 1 )
1876- User .objects .create (username = 'jacob' , first_name = 'Jacob' , last_name = 'Johnson' , status = 2 )
1877- User .objects .create (username = 'aaron' , first_name = 'Aaron' , last_name = 'Barrett' , status = 2 )
1878- User .objects .create (username = 'carl' , first_name = None , last_name = 'Jung' , status = 0 )
1875+ tz = timezone .utc
1876+ User .objects .create (username = 'alex' , status = 1 , last_login = datetime .datetime (2020 , 1 , 1 , tzinfo = tz ))
1877+ User .objects .create (username = 'jacob' , status = 2 , last_login = datetime .datetime (2020 , 2 , 1 , tzinfo = tz ))
1878+ User .objects .create (username = 'aaron' , status = 2 , last_login = datetime .datetime (2020 , 3 , 1 , tzinfo = tz ))
1879+ User .objects .create (username = 'carl' , status = 0 )
18791880
18801881 def test_ordering (self ):
1882+ tz = timezone .utc
1883+
18811884 class F (FilterSet ):
18821885 o = OrderingFilter (
18831886 fields = ('username' , )
@@ -1893,6 +1896,8 @@ class Meta:
18931896 self .assertEqual (list (names ), ['aaron' , 'alex' , 'carl' , 'jacob' ])
18941897
18951898 def test_ordering_with_select_widget (self ):
1899+ tz = timezone .utc
1900+
18961901 class F (FilterSet ):
18971902 o = OrderingFilter (
18981903 widget = forms .Select ,
@@ -1909,125 +1914,131 @@ class Meta:
19091914 self .assertEqual (list (names ), ['aaron' , 'alex' , 'carl' , 'jacob' ])
19101915
19111916 def test_ordering_with_null (self ):
1917+ tz = timezone .utc
1918+
19121919 class F (FilterSet ):
19131920 o = OrderingFilter (
1914- fields = ('first_name' , 'last_name' )
1921+ fields = ('last_login' , )
19151922 )
19161923
19171924 class Meta :
19181925 model = User
1919- fields = ['first_name' , 'last_name ' ]
1926+ fields = ['last_login ' ]
19201927
19211928 qs = User .objects .all ()
1922- f = F ({'o' : 'first_name,last_name ' }, queryset = qs )
1923- names = f .qs .values_list ('first_name ' , 'last_name ' )
1924- self .assertEqual (list (names ), [
1925- (None , 'Jung' ),
1926- ('Aaron ' , 'Barrett' ),
1927- ('Alex ' , 'Allan' ),
1928- ('Jacob ' , 'Johnson' ),
1929+ f = F ({'o' : 'last_login ' }, queryset = qs )
1930+ results = f .qs .values_list ('username ' , 'last_login ' )
1931+ self .assertEqual (list (results ), [
1932+ ('carl' , None ),
1933+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
1934+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
1935+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
19291936 ])
19301937
1931- f = F ({'o' : '-first_name,-last_name ' }, queryset = qs )
1932- names = f .qs .values_list ('first_name ' , 'last_name ' )
1933- self .assertEqual (list (names ), [
1934- ('Jacob ' , 'Johnson' ),
1935- ('Alex ' , 'Allan' ),
1936- ('Aaron ' , 'Barrett' ),
1937- (None , 'Jung' ),
1938+ f = F ({'o' : '-last_login ' }, queryset = qs )
1939+ results = f .qs .values_list ('username ' , 'last_login ' )
1940+ self .assertEqual (list (results ), [
1941+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
1942+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
1943+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
1944+ ('carl' , None ),
19381945 ])
19391946
19401947 def test_ordering_with_params_and_null (self ):
1948+ tz = timezone .utc
1949+
19411950 class F (FilterSet ):
19421951 o = OrderingFilter (
1943- params = ('first_name' , 'last_name' )
1952+ params = ('last_login' , )
19441953 )
19451954
19461955 class Meta :
19471956 model = User
1948- fields = ['first_name' , 'last_name ' ]
1957+ fields = ['last_login ' ]
19491958
19501959 qs = User .objects .all ()
1951- f = F ({'o' : 'first_name,last_name ' }, queryset = qs )
1952- names = f .qs .values_list ('first_name ' , 'last_name ' )
1953- self .assertEqual (list (names ), [
1954- (None , 'Jung' ),
1955- ('Aaron ' , 'Barrett' ),
1956- ('Alex ' , 'Allan' ),
1957- ('Jacob ' , 'Johnson' ),
1960+ f = F ({'o' : 'last_login ' }, queryset = qs )
1961+ results = f .qs .values_list ('username ' , 'last_login ' )
1962+ self .assertEqual (list (results ), [
1963+ ('carl' , None ),
1964+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
1965+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
1966+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
19581967 ])
19591968
1960- f = F ({'o' : '-first_name,-last_name ' }, queryset = qs )
1961- names = f .qs .values_list ('first_name ' , 'last_name ' )
1962- self .assertEqual (list (names ), [
1963- ('Jacob ' , 'Johnson' ),
1964- ('Alex ' , 'Allan' ),
1965- ('Aaron ' , 'Barrett' ),
1966- (None , 'Jung' ),
1969+ f = F ({'o' : '-last_login ' }, queryset = qs )
1970+ results = f .qs .values_list ('username ' , 'last_login ' )
1971+ self .assertEqual (list (results ), [
1972+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
1973+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
1974+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
1975+ ('carl' , None ),
19671976 ])
19681977
19691978 def test_ordering_with_params_and_nulls_last (self ):
1979+ tz = timezone .utc
1980+
19701981 class F (FilterSet ):
19711982 o = OrderingFilter (
19721983 params = {
1973- 'first_name' : {'expr' : expressions .F ('first_name' ).asc (nulls_last = True )},
1974- 'last_name' : {'expr' : expressions .F ('last_name' ).asc (nulls_last = True )}
1984+ 'last_login' : {'expr' : expressions .F ('last_login' ).asc (nulls_last = True )},
19751985 }
19761986 )
19771987
19781988 class Meta :
19791989 model = User
1980- fields = ['first_name' , 'last_name ' ]
1990+ fields = ['last_login ' ]
19811991
19821992 qs = User .objects .all ()
1983- f = F ({'o' : 'first_name,last_name ' }, queryset = qs )
1984- names = f .qs .values_list ('first_name ' , 'last_name ' )
1985- self .assertEqual (list (names ), [
1986- ('Aaron ' , 'Barrett' ),
1987- ('Alex ' , 'Allan' ),
1988- ('Jacob ' , 'Johnson' ),
1989- (None , 'Jung' ),
1993+ f = F ({'o' : 'last_login ' }, queryset = qs )
1994+ results = f .qs .values_list ('username ' , 'last_login ' )
1995+ self .assertEqual (list (results ), [
1996+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
1997+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
1998+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
1999+ ('carl' , None ),
19902000 ])
19912001
1992- f = F ({'o' : '-first_name,-last_name ' }, queryset = qs )
1993- names = f .qs .values_list ('first_name ' , 'last_name ' )
1994- self .assertEqual (list (names ), [
1995- (None , 'Jung' ),
1996- ('Jacob ' , 'Johnson' ),
1997- ('Alex ' , 'Allan' ),
1998- ('Aaron ' , 'Barrett' ),
2002+ f = F ({'o' : '-last_login ' }, queryset = qs )
2003+ results = f .qs .values_list ('username ' , 'last_login ' )
2004+ self .assertEqual (list (results ), [
2005+ ('carl' , None ),
2006+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
2007+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
2008+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
19992009 ])
20002010
20012011 def test_ordering_with_params_and_desc_nulls_last (self ):
2012+ tz = timezone .utc
2013+
20022014 class F (FilterSet ):
20032015 o = OrderingFilter (
20042016 params = {
2005- 'first_name' : {'expr' : expressions .F ('first_name' ).desc (nulls_last = True )},
2006- 'last_name' : {'expr' : expressions .F ('last_name' ).desc (nulls_last = True )}
2017+ 'last_login' : {'expr' : expressions .F ('last_login' ).desc (nulls_last = True )},
20072018 }
20082019 )
20092020
20102021 class Meta :
20112022 model = User
2012- fields = ['first_name' , 'last_name ' ]
2023+ fields = ['last_login ' ]
20132024
20142025 qs = User .objects .all ()
2015- f = F ({'o' : 'first_name,last_name ' }, queryset = qs )
2016- names = f .qs .values_list ('first_name ' , 'last_name ' )
2017- self .assertEqual (list (names ), [
2018- ('Jacob ' , 'Johnson' ),
2019- ('Alex ' , 'Allan' ),
2020- ('Aaron ' , 'Barrett' ),
2021- (None , 'Jung' ),
2026+ f = F ({'o' : 'last_login ' }, queryset = qs )
2027+ results = f .qs .values_list ('username ' , 'last_login ' )
2028+ self .assertEqual (list (results ), [
2029+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
2030+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
2031+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
2032+ ('carl' , None ),
20222033 ])
20232034
2024- f = F ({'o' : '-first_name,-last_name ' }, queryset = qs )
2025- names = f .qs .values_list ('first_name ' , 'last_name ' )
2026- self .assertEqual (list (names ), [
2027- (None , 'Jung' ),
2028- ('Aaron ' , 'Barrett' ),
2029- ('Alex ' , 'Allan' ),
2030- ('Jacob ' , 'Johnson' ),
2035+ f = F ({'o' : '-last_login ' }, queryset = qs )
2036+ results = f .qs .values_list ('username ' , 'last_login ' )
2037+ self .assertEqual (list (results ), [
2038+ ('carl' , None ),
2039+ ('alex ' , datetime . datetime ( 2020 , 1 , 1 , tzinfo = tz ) ),
2040+ ('jacob ' , datetime . datetime ( 2020 , 2 , 1 , tzinfo = tz ) ),
2041+ ('aaron ' , datetime . datetime ( 2020 , 3 , 1 , tzinfo = tz ) ),
20312042 ])
20322043
20332044
0 commit comments