Example #1
0
 def test_multikey_sorting_with_list_of_dicts(self):
     expected_result = [
         {'name': 'abc', 'version': '1.2.10'},
         {'name': 'abc', 'version': '1.2.2'},
         {'name': 'abc', 'version': '1.3.2'},
         {'name': 'def', 'version': '1.2.10'},
         {'name': 'def', 'version': '1.2.2'},
     ]
     assert(natural_sort._multi_key_sort(self.dicts_to_sort, ('name', 'version')) == expected_result)
Example #2
0
 def test_multikey_sorting_with_list_of_dicts_and_normalizing_functions(self):
     expected_result = [
         {'name': 'abc', 'version': '1.2.2'},
         {'name': 'abc', 'version': '1.2.10'},
         {'name': 'abc', 'version': '1.3.2'},
         {'name': 'def', 'version': '1.2.2'},
         {'name': 'def', 'version': '1.2.10'},
     ]
     def convert(text):
         try:
             return int(text)
         except ValueError:
             return text
     functions = {
         'name': lambda x: x,
         'version': lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] 
     }
     result = natural_sort._multi_key_sort(self.dicts_to_sort, ('name', 'version'), functions)
     assert(result == expected_result)