|
22 | 22 | import unittest.mock as mock |
23 | 23 |
|
24 | 24 | from labkey import utils |
25 | | -from labkey.query import delete_rows, update_rows, insert_rows, select_rows, execute_sql |
| 25 | +from labkey.query import delete_rows, update_rows, insert_rows, select_rows, execute_sql, QueryFilter |
26 | 26 | from labkey.exceptions import RequestError, QueryNotFoundError, ServerNotFoundError, RequestAuthorizationError |
27 | 27 |
|
28 | 28 | from utilities import MockLabKey, mock_server_context, success_test, throws_error_test |
@@ -245,6 +245,30 @@ def test_success(self): |
245 | 245 | test = self |
246 | 246 | success_test(test, self.service.get_successful_response(), select_rows, True, *self.args, **self.expected_kwargs) |
247 | 247 |
|
| 248 | + def test_query_filter(self): |
| 249 | + test = self |
| 250 | + # Construct a set of arguments that |
| 251 | + args = [ |
| 252 | + *self.args, |
| 253 | + # view_name |
| 254 | + None, |
| 255 | + # filter_array |
| 256 | + [ |
| 257 | + QueryFilter('Field1', 'value', 'eq'), |
| 258 | + QueryFilter('Field2', 'value1', 'contains'), |
| 259 | + QueryFilter('Field2', 'value2', 'contains'), |
| 260 | + ] |
| 261 | + ] |
| 262 | + # Expected query field values in post request body |
| 263 | + query_field = { |
| 264 | + 'query.Field1~eq': ['value'], |
| 265 | + 'query.Field2~contains': ['value1', 'value2'], |
| 266 | + } |
| 267 | + # Update post request body with expected query field values |
| 268 | + self.expected_kwargs['data'].update(query_field) |
| 269 | + |
| 270 | + success_test(test, self.service.get_successful_response(), select_rows, True, *args, **self.expected_kwargs) |
| 271 | + |
248 | 272 | def test_unauthorized(self): |
249 | 273 | test = self |
250 | 274 | throws_error_test(test, RequestAuthorizationError, self.service.get_unauthorized_response(), |
|
0 commit comments