Show
Ignore:
Timestamp:
10/22/07 17:22:20 (6 years ago)
Author:
ged
Message:

converted most tests to the attribute syntax + reorganized tests around

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • elixir/trunk/tests/test_m2m.py

    r233 r234  
    11""" 
    2     simple test case 
     2test many to many relationships 
    33""" 
    44 
     
    77#----------- 
    88 
    9 class TestMultipleRelationships(object): 
     9class TestManyToMany(object): 
    1010    def setup(self): 
    1111        metadata.bind = 'sqlite:///' 
     
    1414        cleanup_all(True) 
    1515     
     16    def test_simple(self): 
     17        class A(Entity): 
     18            name = Field(Unicode(60)) 
     19            bs_ = ManyToMany('B') 
    1620 
    17     def test_has_and_belongs_to_many_multi_ref(self): 
     21        class B(Entity): 
     22            name = Field(Unicode(60)) 
     23            as_ = ManyToMany('A') 
     24 
     25        setup_all(True) 
     26 
     27        b1 = B(name='b1', as_=[A(name='a1')]) 
     28 
     29        session.flush() 
     30        session.clear() 
     31 
     32        a = A.query.one() 
     33        b = B.query.one() 
     34 
     35        assert a in b.as_ 
     36        assert b in a.bs_ 
     37 
     38    def test_multi(self): 
    1839        class A(Entity): 
    1940            name = Field(String(100)) 
     
    4263        assert b2 in a1.rel1 
    4364 
     65    def test_selfref(self): 
     66        class Person(Entity): 
     67            name = Field(Unicode(30)) 
     68             
     69            friends = ManyToMany('Person') 
     70 
     71        create_all() 
     72 
     73        barney = Person(name="Barney") 
     74        homer = Person(name="Homer", friends=[barney]) 
     75        barney.friends.append(homer) 
     76 
     77        session.flush() 
     78        session.clear() 
     79         
     80        homer = Person.get_by(name="Homer") 
     81        barney = Person.get_by(name="Barney") 
     82 
     83        assert homer in barney.friends 
     84        assert barney in homer.friends 
     85 
     86    def test_has_and_belongs_to_many(self): 
     87        class A(Entity): 
     88            has_field('name', String(100)) 
     89 
     90            has_and_belongs_to_many('bs', of_kind='B') 
     91             
     92        class B(Entity): 
     93            has_field('name', String(100), primary_key=True) 
     94 
     95        setup_all(True) 
     96         
     97        b1 = B(name='b1') 
     98        a1 = A(name='a1', bs=[B(name='b2'), b1]) 
     99        a2 = A(name='a2', bs=[B(name='b3'), b1]) 
     100        a3 = A(name='a3') 
     101 
     102        session.flush() 
     103        session.clear() 
     104         
     105        a1 = A.get_by(name='a1') 
     106        a2 = A.get_by(name='a2') 
     107        a3 = A.get_by(name='a3') 
     108        b1 = B.get_by(name='b1') 
     109        b2 = B.get_by(name='b2') 
     110 
     111        assert b1 in a1.bs 
     112        assert b2 in a1.bs 
     113        assert b1 in a2.bs 
     114        assert not a3.bs 
     115