def adjust_input(self, kwargs): """ Adjust user input wrt common DAS keyword patterns, e.g. Zee -> dataset=*Zee*, T1_US -> site=T1_US*. This method only works if self.adjust is set in configuration of DAS server. This method can be customization for concrete DAS applications via external free_text_parser function (part of DAS.web.utils module) """ if not self.adjust: return uinput = kwargs.get('input', '') query_part = uinput.split('|')[0] if query_part == 'queries' or query_part == 'records': return new_input = free_text_parser(uinput, self.daskeys) if uinput and new_input == uinput: selkey = choose_select_key(uinput, self.daskeys, 'dataset') if selkey and len(new_input) > len(selkey) and \ new_input[:len(selkey)] != selkey: new_input = selkey + ' ' + new_input kwargs['input'] = new_input
def test_choose_select_key(self): """test choose_select_key function""" keys = ['dataset', 'release', 'file'] query = 'dataset=abc release=CMS' expect = 'dataset' result = choose_select_key(query, keys) self.assertEqual(expect, result) query = 'release=CMS dataset=abc' expect = 'dataset' result = choose_select_key(query, keys) self.assertEqual(expect, result) query = 'release release=CMS dataset=abc' expect = 'release' result = choose_select_key(query, keys) self.assertEqual(expect, result) query = 'file=/a.root dataset=abc' expect = 'dataset' result = choose_select_key(query, keys) self.assertEqual(expect, result) query = 'file=/a.root release=CMS' expect = 'file' result = choose_select_key(query, keys) self.assertEqual(expect, result) query = 'release=CMS file=/a.root' expect = 'release' result = choose_select_key(query, keys) self.assertEqual(expect, result) query = 'file dataset=abc' expect = 'file' result = choose_select_key(query, keys) self.assertEqual(expect, result)
def test_choose_select_key(self): """test choose_select_key function""" keys = ["dataset", "release", "file"] query = "dataset=abc release=CMS" expect = "dataset" result = choose_select_key(query, keys) self.assertEqual(expect, result) query = "release=CMS dataset=abc" expect = "dataset" result = choose_select_key(query, keys) self.assertEqual(expect, result) query = "release release=CMS dataset=abc" expect = "release" result = choose_select_key(query, keys) self.assertEqual(expect, result) query = "file=/a.root dataset=abc" expect = "dataset" result = choose_select_key(query, keys) self.assertEqual(expect, result) query = "file=/a.root release=CMS" expect = "file" result = choose_select_key(query, keys) self.assertEqual(expect, result) query = "release=CMS file=/a.root" expect = "release" result = choose_select_key(query, keys) self.assertEqual(expect, result) query = "file dataset=abc" expect = "file" result = choose_select_key(query, keys) self.assertEqual(expect, result)