Changeset 528 for elixir/trunk

Show
Ignore:
Timestamp:
09/02/10 10:10:22 (21 months ago)
Author:
ged
Message:

- Added more tests for relationships to forward-declared entities, including

a failing one (forward reference to a non-pk column).

Location:
elixir/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • elixir/trunk/CHANGES

    r527 r528  
    44- Better support for Python 3.x by running 2to3 within setup (patch by 
    55  "foogod", closes #110). 
     6- Added more tests for relationships to forward-declared entities. 
    67 
    78Changes: 
  • elixir/trunk/tests/test_m2o.py

    r490 r528  
    3030 
    3131        assert b.a.name == 'a1' 
     32 
     33    def test_forward(self): 
     34        class A(Entity): 
     35            name = Field(String(60)) 
     36 
     37        class B(Entity): 
     38            name = Field(String(60)) 
     39            a = ManyToOne('A') 
     40            c = ManyToOne('C') 
     41 
     42        class C(Entity): 
     43            name = Field(String(60)) 
     44 
     45        setup_all(True) 
     46 
     47        b1 = B(name='b1', a=A(name='a1'), c=C(name='c1')) 
     48 
     49        session.commit() 
     50        session.expunge_all() 
     51 
     52        b = B.query.one() 
     53 
     54        assert b.a.name == 'a1' 
     55        assert b.c.name == 'c1' 
    3256 
    3357    # this test is in test_o2m.py 
     
    208232            name = Field(String(60)) 
    209233            a = ManyToOne('A', target_column=['id', 'name']) 
    210 # currently fails 
    211 #            c = ManyToOne('C', target_column=['id', 'name']) 
    212  
    213 #        class C(Entity): 
     234 
     235        setup_all(True) 
     236 
     237        b1 = B(name='b1', a=A(name='a1')) 
     238 
     239        session.commit() 
     240        session.expunge_all() 
     241 
     242        b = B.query.one() 
     243 
     244        assert b.a.name == 'a1' 
     245 
     246    # currently fails. See elixir/relationships.py:create_keys 
     247#    def test_non_pk_forward(self): 
     248#        class B(Entity): 
     249#            name = Field(String(60)) 
     250#            a = ManyToOne('A', target_column=['id', 'name']) 
     251# 
     252#        class A(Entity): 
    214253#            name = Field(String(60), unique=True) 
    215  
    216         setup_all(True) 
    217  
    218         b1 = B(name='b1', a=A(name='a1')) 
    219  
    220         session.commit() 
    221         session.expunge_all() 
    222  
    223         b = B.query.one() 
    224  
    225         assert b.a.name == 'a1' 
     254# 
     255#        setup_all(True) 
     256# 
     257#        b1 = B(name='b1', a=A(name='a1')) 
     258# 
     259#        session.commit() 
     260#        session.expunge_all() 
     261# 
     262#        b = B.query.one() 
     263# 
     264#        assert b.a.name == 'a1' 
    226265 
    227266    def test_belongs_to_syntax(self):