Changeset 490

Show
Ignore:
Timestamp:
10/02/09 12:06:14 (5 years ago)
Author:
ged
Message:

Dropped support for python 2.3, SQLAlchemy 0.4 and deprecated stuff from Elixir
0.7

Location:
elixir/trunk
Files:
5 removed
26 modified

Legend:

Unmodified
Added
Removed
  • elixir/trunk/CHANGES

    r486 r490  
     10.8.0 
     2 
     3Changes: 
     4Dropped support for python 2.3, SQLAlchemy 0.4 and deprecated stuff from Elixir 
     50.7 
     6 
     7 
    180.7.0 - 2009-10-01 
    29 
  • elixir/trunk/elixir/__init__.py

    r416 r490  
    8686    '''Setup the table and mapper of all entities in the default entity 
    8787    collection. 
    88  
    89     This is called automatically if any entity of the collection is configured 
    90     with the `autosetup` option and it is first accessed, 
    91     instanciated (called) or the create_all method of a metadata containing 
    92     tables from any of those entities is called. 
    9388    ''' 
    9489    setup_entities(entities) 
  • elixir/trunk/elixir/collection.py

    r439 r490  
    33''' 
    44import sys 
    5  
    6 from elixir.py23compat import rsplit 
    75 
    86# default entity collection 
     
    3331        "source" entity when resolving relationship targets. 
    3432        ''' 
    35         path = rsplit(key, '.', 1) 
     33        path = key.rsplit('.', 1) 
    3634        classname = path.pop() 
    3735        if path: 
  • elixir/trunk/elixir/entity.py

    r480 r490  
    33``EntityMeta``. 
    44''' 
    5  
    6 from py23compat import sorted 
    75 
    86import sys 
     
    499497            self.has_pk = True 
    500498 
    501         # Autosetup triggers shouldn't be active anymore at this point, so we 
    502         # can theoretically access the entity's table safely. But the problem 
    503         # is that if, for some reason, the trigger removal phase didn't 
    504         # happen, we'll get an infinite loop. So we just make sure we don't 
    505         # get one in any case. 
    506         table = type.__getattribute__(self.entity, 'table') 
     499        table = self.entity.table 
    507500        if table is not None: 
    508501            if check_duplicate and col.key in table.columns.keys(): 
     
    691684 
    692685 
    693 class TriggerProxy(object): 
    694     """ 
    695     A class that serves as a "trigger" ; accessing its attributes runs 
    696     the setup_all function. 
    697  
    698     Note that the `setup_all` is called on each access of the attribute. 
    699     """ 
    700  
    701     def __init__(self, class_, attrname): 
    702         self.class_ = class_ 
    703         self.attrname = attrname 
    704  
    705     def __getattr__(self, name): 
    706         elixir.setup_all() 
    707         #FIXME: it's possible to get an infinite loop here if setup_all doesn't 
    708         #remove the triggers for this entity. This can happen if the entity is 
    709         #not in the `entities` list for some reason. 
    710         proxied_attr = getattr(self.class_, self.attrname) 
    711         return getattr(proxied_attr, name) 
    712  
    713     def __repr__(self): 
    714         proxied_attr = getattr(self.class_, self.attrname) 
    715         return "<TriggerProxy (%s)>" % (self.class_.__name__) 
    716  
    717  
    718 class TriggerAttribute(object): 
    719  
    720     def __init__(self, attrname): 
    721         self.attrname = attrname 
    722  
    723     def __get__(self, instance, owner): 
    724         #FIXME: it's possible to get an infinite loop here if setup_all doesn't 
    725         #remove the triggers for this entity. This can happen if the entity is 
    726         #not in the `entities` list for some reason. 
    727         elixir.setup_all() 
    728         return getattr(owner, self.attrname) 
    729  
    730686def is_entity(cls): 
    731687    """ 
     
    774730        prop.attach(cls, name) 
    775731 
    776     # Process mutators. Needed before _install_autosetup_triggers so that 
    777     # we know of the metadata (and whether the entity is autosetuped or not). 
     732    # Process mutators 
    778733    process_mutators(cls) 
    779734 
    780735    # setup misc options here (like tablename etc.) 
    781736    desc.setup_options() 
    782  
    783     # create trigger proxies 
    784     # TODO: support entity_name... It makes sense only for autoloaded 
    785     # tables for now, and would make more sense if we support "external" 
    786     # tables 
    787     if desc.autosetup: 
    788         _install_autosetup_triggers(cls) 
    789737 
    790738 
     
    808756        instrument_class(cls) 
    809757 
    810     def __call__(cls, *args, **kwargs): 
    811         if cls._descriptor.autosetup and not hasattr(cls, '_setup_done'): 
    812             elixir.setup_all() 
    813         return type.__call__(cls, *args, **kwargs) 
    814  
    815758    def __setattr__(cls, key, value): 
    816759        if isinstance(value, Property): 
     
    824767 
    825768 
    826 def _install_autosetup_triggers(cls, entity_name=None): 
    827     #TODO: move as much as possible of those "_private" values to the 
    828     # descriptor, so that we don't mess the initial class. 
    829     warnings.warn("The 'autosetup' option on entities is deprecated. " 
    830         "Please call setup_all() manually after all your entities have been " 
    831         "declared.", DeprecationWarning, stacklevel=4) 
    832     tablename = cls._descriptor.tablename 
    833     schema = cls._descriptor.table_options.get('schema', None) 
    834     cls._table_key = sqlalchemy.schema._get_table_key(tablename, schema) 
    835  
    836     table_proxy = TriggerProxy(cls, 'table') 
    837  
    838     md = cls._descriptor.metadata 
    839     md.tables[cls._table_key] = table_proxy 
    840  
    841     # We need to monkeypatch the metadata's table iterator method because 
    842     # otherwise it doesn't work if the setup is triggered by the 
    843     # metadata.create_all(). 
    844     # This is because ManyToMany relationships add tables AFTER the list 
    845     # of tables that are going to be created is "computed" 
    846     # (metadata.tables.values()). 
    847     # see: 
    848     # - table_iterator method in MetaData class in sqlalchemy/schema.py 
    849     # - visit_metadata method in sqlalchemy/ansisql.py 
    850     if SA05orlater: 
    851         warnings.warn( 
    852             "The automatic setup via metadata.create_all() through " 
    853             "the autosetup option doesn't work with SQLAlchemy 0.5 and later!") 
    854     else: 
    855         # SA 0.6 does not use table_iterator anymore (it was already deprecated 
    856         # since SA 0.5.0) 
    857         original_table_iterator = md.table_iterator 
    858         if not hasattr(original_table_iterator, 
    859                        '_non_elixir_patched_iterator'): 
    860             def table_iterator(*args, **kwargs): 
    861                 elixir.setup_all() 
    862                 return original_table_iterator(*args, **kwargs) 
    863             table_iterator.__doc__ = original_table_iterator.__doc__ 
    864             table_iterator._non_elixir_patched_iterator = \ 
    865                 original_table_iterator 
    866             md.table_iterator = table_iterator 
    867  
    868     #TODO: we might want to add all columns that will be available as 
    869     #attributes on the class itself (in SA 0.4+). This is a pretty 
    870     #rare usecase, as people will normally hit the query attribute before the 
    871     #column attributes, but I've seen people hitting this problem... 
    872     for name in ('c', 'table', 'mapper', 'query'): 
    873         setattr(cls, name, TriggerAttribute(name)) 
    874  
    875     cls._has_triggers = True 
    876  
    877  
    878 def _cleanup_autosetup_triggers(cls): 
    879     if not hasattr(cls, '_has_triggers'): 
    880         return 
    881  
    882     for name in ('table', 'mapper'): 
    883         setattr(cls, name, None) 
    884  
    885     for name in ('c', 'query'): 
    886         delattr(cls, name) 
    887  
    888     desc = cls._descriptor 
    889     md = desc.metadata 
    890  
    891     # the fake table could have already been removed (namely in a 
    892     # single table inheritance scenario) 
    893     md.tables.pop(cls._table_key, None) 
    894  
    895     # restore original table iterator if not done already 
    896     if not SA05orlater: 
    897         if hasattr(md.table_iterator, '_non_elixir_patched_iterator'): 
    898             md.table_iterator = \ 
    899                 md.table_iterator._non_elixir_patched_iterator 
    900  
    901     del cls._has_triggers 
    902  
    903  
    904769def setup_entities(entities): 
    905770    '''Setup all entities in the list passed as argument''' 
     
    912777            if isinstance(attr, Property): 
    913778                delattr(entity, name) 
    914  
    915         if entity._descriptor.autosetup: 
    916             _cleanup_autosetup_triggers(entity) 
    917779 
    918780    for method_name in ( 
     
    940802    """ 
    941803    Try to revert back the list of entities passed as argument to the state 
    942     they had just before their setup phase. It will not work entirely for 
    943     autosetup entities as we need to remove the autosetup triggers. 
     804    they had just before their setup phase. 
    944805 
    945806    As of now, this function is *not* functional in that it doesn't revert to 
     
    953814    for entity in entities: 
    954815        desc = entity._descriptor 
    955         if desc.autosetup: 
    956             _cleanup_autosetup_triggers(entity) 
    957816 
    958817        if hasattr(entity, '_setup_done'): 
  • elixir/trunk/elixir/options.py

    r484 r490  
    116116|                     | that module.                                          | 
    117117+---------------------+-------------------------------------------------------+ 
    118 | ``autosetup``       | DEPRECATED. Specify whether that entity will contain  | 
    119 |                     | automatic setup triggers.                             | 
    120 |                     | That is if this entity will be                        | 
    121 |                     | automatically setup (along with all other entities    | 
    122 |                     | which were already declared) if any of the following  | 
    123 |                     | condition happen: some of its attributes are accessed | 
    124 |                     | ('c', 'table', 'mapper' or 'query'), instanciated     | 
    125 |                     | (called) or the create_all method of this entity's    | 
    126 |                     | metadata is called. Defaults to ``False``.            | 
    127 +---------------------+-------------------------------------------------------+ 
    128118| ``allowcoloverride``| Specify whether it is allowed to override columns.    | 
    129119|                     | By default, Elixir forbids you to add a column to an  | 
     
    214204# 
    215205options_defaults = dict( 
    216     autosetup=False, 
    217206    inheritance='single', 
    218207    polymorphic=True, 
  • elixir/trunk/elixir/relationships.py

    r488 r490  
    303303| ``table_kwargs``   | A dictionary holding any other keyword argument you    | 
    304304|                    | might want to pass to the underlying Table object.     | 
    305 +--------------------+--------------------------------------------------------+| ``column_format``  | DEPRECATED. Specify an alternate format string for     | 
    306 |                    | naming the                                             | 
    307 |                    | columns in the mapping table.  The default value is    | 
    308 |                    | defined in ``elixir.options.M2MCOL_NAMEFORMAT``.  You  | 
    309 |                    | will be passed ``tablename``, ``key``, and ``entity``  | 
    310 |                    | as arguments to the format string.                     | 
    311305+--------------------+--------------------------------------------------------+ 
    312306 
     
    839833                 ondelete=None, onupdate=None, 
    840834                 table=None, schema=None, 
    841                  column_format=None, 
    842835                 filter=None, 
    843836                 table_kwargs=None, 
     
    858851        self.schema = schema 
    859852 
    860         if column_format: 
    861             warnings.warn("The 'column_format' argument on ManyToMany " 
    862                 "relationships is deprecated. Please use the 'local_colname' " 
    863                 "and/or 'remote_colname' arguments if you want custom " 
    864                 "column names for this table only, or modify " 
    865                 "options.M2MCOL_NAMEFORMAT if you want a custom format for " 
    866                 "all ManyToMany tables", DeprecationWarning, stacklevel=3) 
    867         self.column_format = column_format or options.M2MCOL_NAMEFORMAT 
     853        #TODO: this can probably be simplified/moved elsewhere since the 
     854        #argument disappeared 
     855        self.column_format = options.M2MCOL_NAMEFORMAT 
    868856        if not hasattr(self.column_format, '__call__'): 
    869857            # we need to store the format in a variable so that the 
     
    890878 
    891879        super(ManyToMany, self).__init__(of_kind, *args, **kwargs) 
    892  
    893     def get_table(self): 
    894         warnings.warn("The secondary_table attribute on ManyToMany objects is " 
    895                       "deprecated. You should rather use the table attribute.", 
    896                       DeprecationWarning, stacklevel=2) 
    897         return self.table 
    898     secondary_table = property(get_table) 
    899880 
    900881    def match_type_of(self, other): 
  • elixir/trunk/tests/test_associable.py

    r485 r490  
    7474 
    7575        session.commit() 
    76         session.clear() 
     76        session.expunge_all() 
    7777 
    7878        # Queries using the added helpers 
     
    110110 
    111111        session.commit() 
    112         session.clear() 
     112        session.expunge_all() 
  • elixir/trunk/tests/test_autoload.py

    r474 r490  
    6262 
    6363        session.commit() 
    64         session.clear() 
     64        session.expunge_all() 
    6565 
    6666        homer = Person.get_by(name="Homer") 
     
    9797 
    9898        session.commit() 
    99         session.clear() 
     99        session.expunge_all() 
    100100 
    101101        p = Person.get_by(name="Homer") 
     
    143143 
    144144        session.commit() 
    145         session.clear() 
     145        session.expunge_all() 
    146146 
    147147        c = Category.get_by(name="Simpson") 
     
    177177 
    178178        session.commit() 
    179         session.clear() 
     179        session.expunge_all() 
    180180 
    181181        homer = Person.get_by(name="Homer") 
     
    251251 
    252252        session.commit() 
    253         session.clear() 
     253        session.expunge_all() 
    254254 
    255255        res = A.query.all() 
  • elixir/trunk/tests/test_class_methods.py

    r467 r490  
    2323 
    2424        session.commit() 
    25         session.clear() 
     25        session.expunge_all() 
    2626 
    2727        assert A.get(1).name == "a1" 
  • elixir/trunk/tests/test_collections.py

    r467 r490  
    2121        class Person(Entity): 
    2222            name = Field(String(30)) 
    23             using_options(autosetup=False, tablename='person', collection=None) 
     23            using_options(tablename='person', collection=None) 
    2424 
    2525        # global collection should be empty 
  • elixir/trunk/tests/test_custombase.py

    r467 r490  
    3030 
    3131        session.commit() 
    32         session.clear() 
     32        session.expunge_all() 
    3333 
    3434        a = A.query.filter_by(name="a1").one() 
     
    4949 
    5050        session.commit() 
    51         session.clear() 
     51        session.expunge_all() 
    5252 
    5353        b = A.query.filter_by(name="b1").one() 
     
    7272 
    7373        session.commit() 
    74         session.clear() 
     74        session.expunge_all() 
    7575 
    7676        a = A.query.filter_by(name="a1").one() 
  • elixir/trunk/tests/test_dict.py

    r485 r490  
    158158    def setup(self): 
    159159        metadata.bind = 'sqlite://' 
    160         session.clear() 
     160        session.expunge_all() 
    161161 
    162162    def teardown(self): 
     
    174174        assert a.name == 'Aye' 
    175175        session.commit() 
    176         session.clear() 
     176        session.expunge_all() 
    177177 
  • elixir/trunk/tests/test_encryption.py

    r467 r490  
    5353 
    5454        session.commit() 
    55         session.clear() 
     55        session.expunge_all() 
    5656 
    5757        p = Person.get_by(name='Jonathan LaCour') 
     
    6666 
    6767        session.commit() 
    68         session.clear() 
     68        session.expunge_all() 
    6969 
    7070        p = Person.get_by(name='Jonathan LaCour') 
     
    7878        ) 
    7979        session.commit() 
    80         session.clear() 
     80        session.expunge_all() 
    8181 
    8282        p = Person.get_by(name='Jonathan LaCour') 
     
    9494 
    9595        session.commit() 
    96         session.clear() 
     96        session.expunge_all() 
    9797 
    9898        p = Person.get_by(name='Jonathan LaCour') 
  • elixir/trunk/tests/test_events.py

    r467 r490  
    7979 
    8080        d = Document(name='My Document') 
    81         session.commit(); session.clear() 
     81        session.commit(); session.expunge_all() 
    8282 
    8383        d = Document.query.one() 
    8484        d.name = 'My Document Updated' 
    85         session.commit(); session.clear() 
     85        session.commit(); session.expunge_all() 
    8686 
    8787        d = Document.query.one() 
    8888        d.delete() 
    89         session.commit(); session.clear() 
     89        session.commit(); session.expunge_all() 
    9090 
    9191        def checkCount(name, value): 
     
    134134 
    135135        a1 = A(name='a1') 
    136         session.commit(); session.clear() 
     136        session.commit(); session.expunge_all() 
    137137 
    138138        a = A.query.one() 
    139139        a.name = 'a1 updated' 
    140         session.commit(); session.clear() 
     140        session.commit(); session.expunge_all() 
    141141 
    142142        assert a.update_count == 1 
  • elixir/trunk/tests/test_fields.py

    r467 r490  
    2323 
    2424        session.commit() 
    25         session.clear() 
     25        session.expunge_all() 
    2626 
    2727        p = Person.get_by(firstname="Homer") 
     
    4040 
    4141        session.commit() 
    42         session.clear() 
     42        session.expunge_all() 
    4343 
    4444        p = Person.get_by(firstname="Homer") 
  • elixir/trunk/tests/test_inherit.py

    r467 r490  
    55from elixir import * 
    66import elixir 
    7 from elixir.py23compat import sort_list 
    87 
    98def setup(): 
     
    5049 
    5150    session.commit() 
    52     session.clear() 
     51    session.expunge_all() 
    5352 
    5453    res = {} 
    5554    for class_ in (A, B, C, D, E): 
    5655        res[class_.__name__] = class_.query.all() 
    57         sort_list(res[class_.__name__], key=lambda o: o.__class__.__name__) 
     56        res[class_.__name__].sort(key=lambda o: o.__class__.__name__) 
    5857 
    5958    for query_class in ('A', 'B', 'C', 'D', 'E'): 
     
    171170 
    172171        session.commit() 
    173         session.clear() 
     172        session.expunge_all() 
    174173 
    175174        for a in A.query.all(): 
  • elixir/trunk/tests/test_m2m.py

    r485 r490  
    4848 
    4949        session.commit() 
    50         session.clear() 
     50        session.expunge_all() 
    5151 
    5252        a = A.query.one() 
     
    159159 
    160160        session.commit() 
    161         session.clear() 
     161        session.expunge_all() 
    162162 
    163163        del A 
     
    232232 
    233233        session.commit() 
    234         session.clear() 
     234        session.expunge_all() 
    235235 
    236236        del A 
     
    267267        assert a2.is_linked_from == [a1] 
    268268 
    269     def test_manual_column_format(self): 
    270         class A(Entity): 
    271             using_options(tablename='aye') 
    272             name = Field(String(60)) 
    273             bs_ = ManyToMany('B', column_format='%(entity)s_%(key)s') 
    274  
    275         class B(Entity): 
    276             using_options(tablename='bee') 
    277             name = Field(String(60)) 
    278             as_ = ManyToMany('A', column_format='%(entity)s_%(key)s') 
    279  
    280         setup_all(True) 
    281  
    282         # check column names were generated correctly 
    283         A.mapper.compile() 
    284         m2m_cols = A.bs_.property.secondary.columns 
    285         assert 'a_id' in m2m_cols 
    286         assert 'b_id' in m2m_cols 
    287  
    288         # check the relationships work as expected 
    289         b1 = B(name='b1', as_=[A(name='a1')]) 
    290  
    291         session.commit() 
    292         session.clear() 
    293  
    294         a = A.query.one() 
    295         b = B.query.one() 
    296  
    297         assert a in b.as_ 
    298         assert b in a.bs_ 
    299  
    300269    def test_multi_pk_in_target(self): 
    301270        class A(Entity): 
     
    314283 
    315284        session.commit() 
    316         session.clear() 
     285        session.expunge_all() 
    317286 
    318287        a = A.query.one() 
     
    339308 
    340309        session.commit() 
    341         session.clear() 
     310        session.expunge_all() 
    342311 
    343312        a1 = A.query.one() 
     
    363332 
    364333        session.commit() 
    365         session.clear() 
     334        session.expunge_all() 
    366335 
    367336        homer = Person.get_by(name="Homer") 
     
    390359 
    391360        session.commit() 
    392         session.clear() 
     361        session.expunge_all() 
    393362 
    394363        homer = Person.get_by(name="Homer") 
     
    419388 
    420389        session.commit() 
    421         session.clear() 
     390        session.expunge_all() 
    422391 
    423392        a1 = A.get_by(name='a1') 
     
    452421 
    453422        session.commit() 
    454         session.clear() 
     423        session.expunge_all() 
    455424 
    456425        a = A.query.one() 
     
    487456 
    488457        session.commit() 
    489         session.clear() 
     458        session.expunge_all() 
    490459 
    491460        a = A.query.one() 
     
    524493 
    525494        session.commit() 
    526         session.clear() 
     495        session.expunge_all() 
    527496 
    528497        a = A.query.one() 
  • elixir/trunk/tests/test_m2o.py

    r467 r490  
    2525 
    2626        session.commit() 
    27         session.clear() 
     27        session.expunge_all() 
    2828 
    2929        b = B.query.one() 
     
    4646 
    4747        session.commit() 
    48         session.clear() 
     48        session.expunge_all() 
    4949 
    5050        b = B.query.one() 
     
    7272        b = B(a=a) 
    7373        session.commit() 
    74         session.clear() 
     74        session.expunge_all() 
    7575 
    7676        assert B.query.first().a == A.query.first() 
     
    9494 
    9595        session.commit() 
    96         session.clear() 
     96        session.expunge_all() 
    9797 
    9898        homer = Person.get_by(name="Homer") 
     
    191191 
    192192        session.commit() 
    193         session.clear() 
     193        session.expunge_all() 
    194194 
    195195        a1 = A.get_by(name="a1") 
     
    219219 
    220220        session.commit() 
    221         session.clear() 
     221        session.expunge_all() 
    222222 
    223223        b = B.query.one() 
     
    239239 
    240240        session.commit() 
    241         session.clear() 
     241        session.expunge_all() 
    242242 
    243243        assert "Claus" in Animal.get_by(name="Rudolph").owner.name 
  • elixir/trunk/tests/test_o2m.py

    r485 r490  
    3232 
    3333        session.commit() 
    34         session.clear() 
     34        session.expunge_all() 
    3535 
    3636        b = B.query.one() 
     
    5858 
    5959        session.commit() 
    60         session.clear() 
     60        session.expunge_all() 
    6161 
    6262        p = Person.get_by(name="Homer") 
     
    8888 
    8989        session.commit() 
    90         session.clear() 
     90        session.expunge_all() 
    9191 
    9292        root = TreeNode.get_by(name='rootnode') 
     
    118118 
    119119        session.commit() 
    120         session.clear() 
     120        session.expunge_all() 
    121121 
    122122        user = User.get(1) 
     
    146146 
    147147        session.commit() 
    148         session.clear() 
     148        session.expunge_all() 
    149149 
    150150        user = User.get(1) 
     
    173173 
    174174        session.commit() 
    175         session.clear() 
     175        session.expunge_all() 
    176176 
    177177        user = User.get(1) 
     
    197197# 
    198198#        session.commit() 
    199 #        session.clear() 
     199#        session.expunge_all() 
    200200# 
    201201#        b = B.query.one() 
     
    221221 
    222222        session.commit() 
    223         session.clear() 
     223        session.expunge_all() 
    224224 
    225225        b = B.query.one() 
     
    244244 
    245245        session.commit() 
    246         session.clear() 
     246        session.expunge_all() 
    247247 
    248248        santa = Person.get_by(name="Santa Claus") 
  • elixir/trunk/tests/test_o2o.py

    r467 r490  
    2222 
    2323        session.commit() 
    24         session.clear() 
     24        session.expunge_all() 
    2525 
    2626        b = B.query.one() 
  • elixir/trunk/tests/test_options.py

    r480 r490  
    2626        p1 = Person(name='Daniel') 
    2727        session.commit() 
    28         session.clear() 
     28        session.expunge_all() 
    2929 
    3030        person = Person.query.first() 
     
    3232        session.commit() 
    3333        assert person.row_version == 2 
    34         session.clear() 
     34        session.expunge_all() 
    3535 
    3636        person = Person.query.first() 
     
    3838        session.commit() 
    3939        assert person.row_version == 3 
    40         session.clear() 
     40        session.expunge_all() 
    4141 
    4242        # check that a concurrent modification raises exception 
  • elixir/trunk/tests/test_order_by.py

    r467 r490  
    5252 
    5353    session.commit() 
    54     session.clear() 
     54    session.expunge_all() 
    5555 
    5656 
     
    6161class TestOrderBy(object): 
    6262    def teardown(self): 
    63         session.clear() 
     63        session.expunge_all() 
    6464 
    6565    def test_mapper_order_by(self): 
  • elixir/trunk/tests/test_packages.py

    r467 r490  
    3838 
    3939        session.commit() 
    40         session.clear() 
     40        session.expunge_all() 
    4141 
    4242        a = A.query.one() 
  • elixir/trunk/tests/test_properties.py

    r467 r490  
    3939 
    4040        session.commit() 
    41         session.clear() 
     41        session.expunge_all() 
    4242 
    4343        for tag in Tag.query.all(): 
     
    5757 
    5858        session.commit() 
    59         session.clear() 
     59        session.expunge_all() 
    6060 
    6161        for tag in Tag.query.all(): 
     
    9999 
    100100        session.commit() 
    101         session.clear() 
     101        session.expunge_all() 
    102102 
    103103        category = Category.query.one() 
     
    122122 
    123123        session.commit() 
    124         session.clear() 
     124        session.expunge_all() 
    125125 
    126126        for tag in Tag.query.all(): 
     
    166166 
    167167        session.commit() 
    168         session.clear() 
     168        session.expunge_all() 
    169169 
    170170        # test the synonym itself (ie querying) 
     
    195195        ) 
    196196 
    197         session.commit(); session.clear() 
     197        session.commit(); session.expunge_all() 
    198198 
    199199        p = Person.get_by(name='Alexandre da Silva') 
     
    204204 
    205205        u.email_address = 'new@z.com' 
    206         session.commit(); session.clear() 
     206        session.commit(); session.expunge_all() 
    207207 
    208208        p = Person.get_by(name='Johann Felipe Voigt') 
     
    219219        a1 = A(name='a1') 
    220220 
    221         session.commit(); session.clear() 
     221        session.commit(); session.expunge_all() 
    222222 
    223223        a = A.query.one() 
  • elixir/trunk/tests/test_sa_integration.py

    r467 r490  
    4242        session.add(b1) 
    4343        session.commit() 
    44         session.clear() 
     44        session.expunge_all() 
    4545 
    4646        b = session.query(B).one() 
     
    8080        session.add(b1) 
    8181        session.commit() 
    82         session.clear() 
     82        session.expunge_all() 
    8383 
    8484        b = B.query.one() 
     
    114114 
    115115        session.commit() 
    116         session.clear() 
     116        session.expunge_all() 
    117117 
    118118        b = B.query.one() 
     
    143143# 
    144144#        session.commit() 
    145 #        session.clear() 
     145#        session.expunge_all() 
    146146# 
    147147#        b = B.query.one() 
  • elixir/trunk/tests/test_versioning.py

    r485 r490  
    6262                        description='draft description', director=gilliam) 
    6363        bruce = Actor(name='Bruce Willis', movies=[monkeys]) 
    64         session.commit(); session.clear() 
     64        session.commit(); session.expunge_all() 
    6565 
    6666        time.sleep(1) 
     
    7474        assert movie.autoupd == 2, movie.autoupd 
    7575        movie.description = 'description two' 
    76         session.commit(); session.clear() 
     76        session.commit(); session.expunge_all() 
    7777 
    7878        time.sleep(1) 
     
    8282        movie = Movie.get_by(title='12 Monkeys') 
    8383        movie.description = 'description three' 
    84         session.commit(); session.clear() 
     84        session.commit(); session.expunge_all() 
    8585 
    8686        # Edit the ignored field, this shouldn't change the version 
    8787        monkeys = Movie.get_by(title='12 Monkeys') 
    8888        monkeys.ignoreme = 1 
    89         session.commit(); session.clear() 
     89        session.commit(); session.expunge_all() 
    9090 
    9191        time.sleep(1) 
     
    129129 
    130130        movie.revert_to(2) 
    131         session.commit(); session.clear() 
     131        session.commit(); session.expunge_all() 
    132132 
    133133        movie = Movie.get_by(title='12 Monkeys') 
     
    137137 
    138138        movie.description = "description 3" 
    139         session.commit(); session.clear() 
     139        session.commit(); session.expunge_all() 
    140140 
    141141        movie = Movie.get_by(title='12 Monkeys') 
    142142        movie.description = "description 4" 
    143         session.commit(); session.clear() 
     143        session.commit(); session.expunge_all() 
    144144 
    145145        movie = Movie.get_by(title='12 Monkeys') 
     
    147147        movie.revert_to(movie.versions[-2]) 
    148148        movie.description = "description 5" 
    149         session.commit(); session.clear() 
     149        session.commit(); session.expunge_all() 
    150150 
    151151        movie = Movie.get_by(title='12 Monkeys')