@@ -96,3 +96,57 @@ def test_search_all_languages(self):
9696
9797 self .assertEqual (response .status_code , status .HTTP_200_OK )
9898 self .assertEqual (response .data ['count' ], 7 )
99+
100+ def test_filter_nutriscore_exact (self ):
101+ """
102+ Exact match on nutriscore returns only ingredients with that grade
103+ """
104+ response = self .client .get (self .url + '?nutriscore=a' )
105+
106+ self .assertEqual (response .status_code , status .HTTP_200_OK )
107+ self .assertEqual (response .data ['count' ], 3 )
108+
109+ def test_filter_nutriscore_in (self ):
110+ """
111+ `in` lookup accepts a comma-separated list of grades
112+ """
113+ response = self .client .get (self .url + '?nutriscore__in=a,b' )
114+
115+ self .assertEqual (response .status_code , status .HTTP_200_OK )
116+ self .assertEqual (response .data ['count' ], 7 )
117+
118+ def test_filter_nutriscore_lt (self ):
119+ """
120+ `lt` lookup returns ingredients with a better grade (e.g. better than C → A, B)
121+ """
122+ response = self .client .get (self .url + '?nutriscore__lt=c' )
123+
124+ self .assertEqual (response .status_code , status .HTTP_200_OK )
125+ self .assertEqual (response .data ['count' ], 7 )
126+
127+ def test_filter_nutriscore_lte (self ):
128+ """
129+ `lte` lookup is inclusive (e.g. C or better → A, B, C)
130+ """
131+ response = self .client .get (self .url + '?nutriscore__lte=c' )
132+
133+ self .assertEqual (response .status_code , status .HTTP_200_OK )
134+ self .assertEqual (response .data ['count' ], 10 )
135+
136+ def test_filter_nutriscore_gt (self ):
137+ """
138+ `gt` lookup returns ingredients with a worse grade (e.g. worse than C → D, E)
139+ """
140+ response = self .client .get (self .url + '?nutriscore__gt=c' )
141+
142+ self .assertEqual (response .status_code , status .HTTP_200_OK )
143+ self .assertEqual (response .data ['count' ], 3 )
144+
145+ def test_filter_nutriscore_gte (self ):
146+ """
147+ `gte` lookup is inclusive (e.g. C or worse → C, D, E)
148+ """
149+ response = self .client .get (self .url + '?nutriscore__gte=c' )
150+
151+ self .assertEqual (response .status_code , status .HTTP_200_OK )
152+ self .assertEqual (response .data ['count' ], 6 )
0 commit comments