Index: elixir/trunk/tests/test_fields.py
===================================================================
--- elixir/trunk/tests/test_fields.py (revision 227)
+++ elixir/trunk/tests/test_fields.py (revision 228)
@@ -1,4 +1,4 @@
 """
-    simple test case
+test the different syntaxes to define fields
 """
 
@@ -6,123 +6,61 @@
 
 def setup():
-    global Director, Movie, Actor, Media
-
-    class Director(Entity):
-        with_fields(
-            name = Field(Unicode(60))
-        )
-        
-        has_many('movies', of_kind='Movie', inverse='director')
-
-
-    class Movie(Entity):
-        """
-            simple movie class
-        """
-        
-        # columns
-        with_fields(
-            title = Field(Unicode(50)),
-            year = Field(Integer)
-        )
-        
-        # relationships
-        belongs_to('director', of_kind="Director", inverse='movies')
-        
-        has_and_belongs_to_many('actors', of_kind="Actor", inverse='movies')
-        has_one('media', of_kind='Media', inverse='movie')
-
-
-    class Actor(Entity):
-        with_fields(
-            name = Field(Unicode(60))
-        )
-        
-        has_and_belongs_to_many('movies', of_kind="Movie", inverse="actors")
-
-
-    class Media(Entity):
-        with_fields(
-            number = Field(Integer, primary_key=True)
-        )
-        
-        belongs_to('movie', of_kind='Movie', inverse='media')
-
     metadata.bind = 'sqlite:///'
         
-def teardown():
-    cleanup_all()
+class TestFields(object):
+    def teardown(self):
+        cleanup_all(True)
+    
+    def test_attr_syntax(self):
+        class Person(Entity):
+            firstname = Field(Unicode(30))
+            surname = Field(Unicode(30))
 
-
-class TestMovies(object):
-    def setup(self):
-        create_all()
-    
-    def teardown(self):
-        drop_all()
-        session.clear()
-    
-    def test_backref(self):
-        swars = Movie(title="Star Wars", year=1977)
-        glucas = Director(name="George Lucas")
-        swars.director = glucas
-
-        # does it work before a flush?
-        assert swars in glucas.movies
-
-    def test_bidirectional(self):
-        brunner = Movie(title="Blade Runner", year=1982)
-        alien = Movie(title="Alien", year=1979)
-        swars = Movie(title="Star Wars", year=1977)
+        setup_all(True)
         
-        brunner.media = Media(number=1)
-        m = Media(number=7)
-        m.movie = alien
-        
-        rscott = Director(name="Ridley Scott")
-        glucas = Director(name="George Lucas")
-        
-        hford = Actor(name="Harrison Ford")
-        mhamill = Actor(name="Mark Hamill")
-        sweaver = Actor(name="Sigourney Weaver")
-        
-        rscott.movies.append(brunner) 
-        rscott.movies.append(alien)
-        swars.director = glucas
-        
-        swars.actors.append(hford)
-        swars.actors.append(mhamill)
-        alien.actors.append(sweaver)
-        brunner.actors.append(hford)
+        homer = Person(firstname="Homer", surname="Simpson")
+        bart = Person(firstname="Bart", surname="Simpson")
         
         session.flush()
         session.clear()
         
-        # directors
-        assert Movie.get_by(title="Alien").director is Director.get_by(name="Ridley Scott")
-        assert Director.get_by(name="Ridley Scott").name == "Ridley Scott"
-        assert Movie.get_by(title="Alien").director.name == "Ridley Scott"
-        assert Movie.get_by(title="Star Wars").director is Director.get_by(name="George Lucas")
+        p = Person.get_by(firstname="Homer")
         
-        # movie
-        assert Movie.get_by(title="Blade Runner").year == 1982
-        assert Movie.get_by(title="Alien").year == 1979
+        assert p.surname == 'Simpson'
+
+    def test_has_field(self):
+        class Person(Entity):
+            has_field('firstname', Unicode(30))
+            has_field('surname', Unicode(30))
+
+        setup_all(True)
         
-        # actors
-        assert Actor.get_by(name="Harrison Ford") in Movie.get_by(title="Blade Runner").actors
-        assert Actor.get_by(name="Harrison Ford") in Movie.get_by(title="Star Wars").actors
-        assert Movie.get_by(title="Star Wars") in Actor.get_by(name="Mark Hamill").movies
-        assert Movie.get_by(title="Blade Runner") in Actor.get_by(name="Harrison Ford").movies
+        homer = Person(firstname="Homer", surname="Simpson")
+        bart = Person(firstname="Bart", surname="Simpson")
         
-        # media
-        assert Movie.get_by(title="Blade Runner").media is Media.get_by(number=1)
-        assert Movie.get_by(title="Blade Runner").media.number is Media.get_by(number=1).number
-        assert Actor.get_by(name="Sigourney Weaver") in Media.get_by(number=7).movie.actors
+        session.flush()
+        session.clear()
+        
+        p = Person.get_by(firstname="Homer")
+        
+        assert p.surname == 'Simpson'
+        
+    def test_with_fields(self):
+        class Person(Entity):
+            with_fields(
+                firstname = Field(Unicode(30))
+                surname = Field(Unicode(30))
+            )
+            
+        setup_all(True)
+        
+        homer = Person(firstname="Homer", surname="Simpson")
+        bart = Person(firstname="Bart", surname="Simpson")
+        
+        session.flush()
+        session.clear()
+        
+        p = Person.get_by(firstname="Homer")
+        
+        assert p.surname == 'Simpson'
 
-if __name__ == '__main__':
-    setup()
-    test = TestMovies()
-    test.setup()
-    test.test_bidirectional()
-    test.teardown()
-    teardown()
