@@ -44,49 +44,16 @@ def rows_returned(query):
4444
4545
4646class TestQuery (unittest .TestCase ):
47-
48- _csq = None
49-
5047 Iterate_to_exhaust_statement_table = range (IRODS_STATEMENT_TABLE_SIZE + 1 )
5148
5249 More_than_one_batch = 2 * MAX_SQL_ROWS # may need to increase if PRC default page
5350 # size is increased beyond 500
5451
5552 register_resc = ""
5653
57- @property
58- def case_sensitive_testing_feasible (self ):
59- """
60- Return result of the probe into whether lexical order of query columns has been found compatible with
61- case sensitive operators such as >, <, between. (MySQL can fail in the default DB configuration,
62- whereas PostgreSQL does not).
63- """
64- return self ._csq in (True ,)
65-
66- @staticmethod
67- def _query_columns_case_sensitive_by_default (ses ):
68- home = helpers .home_collection (ses )
69- data_objs = []
70- try :
71- for x in ('a' , 'b' , 'A' , 'B' ):
72- data_objs .append (ses .data_objects .create (f'{ home } /{ x } ' ))
73- lower = { r [DataObject .name ] for r in ses .query (DataObject .name ).filter (DataObject .name >= 'a' , DataObject .name <= 'b' ) }
74- if {'A' ,'B' } & lower :
75- return False
76- upper = { r [DataObject .name ] for r in ses .query (DataObject .name ).filter (DataObject .name >= 'A' , DataObject .name <= 'B' ) }
77- if {'a' ,'b' } & upper :
78- return False
79- return True
80- finally :
81- for d in data_objs :
82- d .unlink (force = True )
83-
8454 @classmethod
8555 def setUpClass (cls ):
8656 with helpers .make_session () as sess :
87- if cls ._csq is None :
88- cls ._csq = cls ._query_columns_case_sensitive_by_default (sess )
89-
9057 resource_name = helpers .get_register_resource (sess )
9158 if resource_name :
9259 cls .register_resc = resource_name
@@ -247,25 +214,28 @@ def test_files_query_case_sensitive(self):
247214 self .assertEqual (len (result12 ), 0 )
248215
249216 # BETWEEN tests
250- if self .case_sensitive_testing_feasible :
251- result13 = self .sess .query (DataObject .name ).filter (
252- Collection .name == self .coll_path ).filter (
253- Between (DataObject .name , [self .case_sensitive_obj_name1 ,
254- self .case_sensitive_obj_name1 + "_" ])).all ()
255- self .assertTrue (result13 .has_value (self .case_sensitive_obj_name1 ))
256- self .assertEqual (len (result13 ), 1 )
257-
258- result14 = self .sess .query (DataObject .name ).filter (
259- Collection .name == self .coll_path ).filter (
260- Between (DataObject .name , [str .lower (self .case_sensitive_obj_name1 ),
261- str .lower (self .case_sensitive_obj_name1 ) + "_" ])).all ()
262- self .assertEqual (len (result14 ), 0 )
263-
264- result15 = self .sess .query (DataObject .name ).filter (
265- Collection .name == self .coll_path ).filter (
266- Between (DataObject .name , [str .upper (self .case_sensitive_obj_name1 ),
267- str .upper (self .case_sensitive_obj_name1 ) + "_" ])).all ()
268- self .assertEqual (len (result15 ), 0 )
217+
218+ # TODO(#600): Uncomment these lines and/or make a new test when database flavor can be detected.
219+ # The resultset for BETWEEN queries can differ from database to database.
220+
221+ # result13 = self.sess.query(DataObject.name).filter(
222+ # Collection.name == self.coll_path).filter(
223+ # Between(DataObject.name, [self.case_sensitive_obj_name1,
224+ # self.case_sensitive_obj_name1 + "_"])).all()
225+ # self.assertTrue(result13.has_value(self.case_sensitive_obj_name1))
226+ # self.assertEqual(len(result13), 1)
227+
228+ # result14 = self.sess.query(DataObject.name).filter(
229+ # Collection.name == self.coll_path).filter(
230+ # Between(DataObject.name, [str.lower(self.case_sensitive_obj_name1),
231+ # str.lower(self.case_sensitive_obj_name1) + "_"])).all()
232+ # self.assertEqual(len(result14), 0)
233+
234+ # result15 = self.sess.query(DataObject.name).filter(
235+ # Collection.name == self.coll_path).filter(
236+ # Between(DataObject.name, [str.upper(self.case_sensitive_obj_name1),
237+ # str.upper(self.case_sensitive_obj_name1) + "_"])).all()
238+ # self.assertEqual(len(result15), 0)
269239
270240 def test_files_query_case_insensitive (self ):
271241 # This tests that GenQueries are case-insensitive when the case_sensitive
0 commit comments