Changeset 313
- Timestamp:
- 03/27/08 18:33:22 (5 years ago)
- Location:
- elixir/trunk
- Files:
-
- 7 modified
-
elixir/ext/list.py (modified) (3 diffs)
-
elixir/py23compat.py (modified) (2 diffs)
-
tests/test_autoload.py (modified) (1 diff)
-
tests/test_events.py (modified) (1 diff)
-
tests/test_inherit.py (modified) (2 diffs)
-
tests/test_o2m.py (modified) (1 diff)
-
tests/test_properties.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
elixir/trunk/elixir/ext/list.py
r309 r313 115 115 qualifier_method = lambda self: None 116 116 117 @before_insert118 117 def _init_position(self): 119 118 s = select( … … 125 124 a = s.alias() 126 125 setattr(self, position_column_name, select([func.max(a.c.value)])) 127 128 @before_delete126 _init_position = before_insert(_init_position) 127 129 128 def _shift_items(self): 130 129 self.table.update( … … 137 136 } 138 137 ).execute() 138 _shift_items = before_delete(_shift_items) 139 139 140 140 def move_to_bottom(self): -
elixir/trunk/elixir/py23compat.py
r308 r313 7 7 from sets import Set as set 8 8 9 orig_cmp = cmp 10 # [].sort 11 def sort_list(l, cmp=None, key=None, reverse=False): 12 try: 13 l.sort(cmp, key, reverse) 14 except TypeError, e: 15 if not str(e).startswith('sort expected at most 1 arguments'): 16 raise 17 if cmp is None: 18 cmp = orig_cmp 19 if key is not None: 20 # the cmp=cmp parameter is required to get the original comparator 21 # into the lambda namespace 22 cmp = lambda self, other, cmp=cmp: cmp(key(self), key(other)) 23 if reverse: 24 cmp = lambda self, other, cmp=cmp: -cmp(self,other) 25 l.sort(cmp) 26 9 27 # sorted 10 28 try: … … 13 31 # global name 'sorted' doesn't exist in Python2.3 14 32 # this provides a poor-man's emulation of the sorted built-in method 15 def sorted(l, **kwargs):33 def sorted(l, cmp=None, key=None, reverse=False): 16 34 sorted_list = list(l) 17 if 'key' in kwargs: 18 key_func = kwargs['key'] 19 sorted_list.sort(lambda self, other: cmp(key_func(self), 20 key_func(other))) 21 else: 22 sorted_list.sort() 35 sort_list(sorted_list, cmp, key, reverse) 23 36 return sorted_list 24 37 -
elixir/trunk/tests/test_autoload.py
r310 r313 140 140 print "Persons in the '%s' category: %s." % ( 141 141 c.name, 142 ", ".join( p.name for p in c.persons))142 ", ".join([p.name for p in c.persons])) 143 143 144 144 assert len(c.persons) == 4 -
elixir/trunk/tests/test_events.py
r310 r313 19 19 name = Field(String(50)) 20 20 21 @before_insert22 21 def pre_insert(self): 23 22 global before_insert_called 24 23 before_insert_called += 1 24 pre_insert = before_insert(pre_insert) 25 25 26 @after_insert27 26 def post_insert(self): 28 27 global after_insert_called 29 28 after_insert_called += 1 29 post_insert = after_insert(post_insert) 30 30 31 @before_update32 31 def pre_update(self): 33 32 global before_update_called 34 33 before_update_called += 1 34 pre_update = before_update(pre_update) 35 35 36 @after_update37 36 def post_update(self): 38 37 global after_update_called 39 38 after_update_called += 1 39 post_update = after_update(post_update) 40 40 41 @before_delete42 41 def pre_delete(self): 43 42 global before_delete_called 44 43 before_delete_called += 1 44 pre_delete = before_delete(pre_delete) 45 45 46 @after_delete47 46 def post_delete(self): 48 47 global after_delete_called 49 48 after_delete_called += 1 49 post_delete = after_delete(post_delete) 50 50 51 @before_insert52 @before_update53 @before_delete54 51 def pre_any(self): 55 52 global before_any_called 56 53 before_any_called += 1 54 pre_any = before_insert(before_update(before_delete(pre_any))) 57 55 metadata.bind = 'sqlite:///' 58 56 -
elixir/trunk/tests/test_inherit.py
r310 r313 5 5 from elixir import * 6 6 import elixir 7 from elixir.py23compat import sort_list 7 8 8 9 def setup(): … … 53 54 for class_ in (A, B, C, D, E): 54 55 res[class_.__name__] = class_.query.all() 55 res[class_.__name__].sort(key=lambda o: o.__class__.__name__)56 sort_list(res[class_.__name__], key=lambda o: o.__class__.__name__) 56 57 57 58 for query_class in ('A', 'B', 'C', 'D', 'E'): -
elixir/trunk/tests/test_o2m.py
r271 r313 62 62 print "%s is %s's child." % (p.name, p.father.name) 63 63 print "His children are: %s." % ( 64 " and ".join( c.name for c in p.children))64 " and ".join([c.name for c in p.children])) 65 65 66 66 assert p in p.father.children -
elixir/trunk/tests/test_properties.py
r310 r313 94 94 # assert category.score == 85 # doesn't work for now 95 95 for user in category.users: 96 assert user.score == sum( tag.score for tag in user.tags)96 assert user.score == sum([tag.score for tag in user.tags]) 97 97 for tag in user.tags: 98 98 assert tag.score == tag.score1 * tag.score2
