root / elixir / trunk / tests / test_fields.py @ 228

Revision 228, 1.6 kB (checked in by ged, 6 years ago)

merge all tests for fields definition into one test file

Line 
1"""
2test the different syntaxes to define fields
3"""
4
5from elixir import *
6
7def setup():
8    metadata.bind = 'sqlite:///'
9       
10class TestFields(object):
11    def teardown(self):
12        cleanup_all(True)
13   
14    def test_attr_syntax(self):
15        class Person(Entity):
16            firstname = Field(Unicode(30))
17            surname = Field(Unicode(30))
18
19        setup_all(True)
20       
21        homer = Person(firstname="Homer", surname="Simpson")
22        bart = Person(firstname="Bart", surname="Simpson")
23       
24        session.flush()
25        session.clear()
26       
27        p = Person.get_by(firstname="Homer")
28       
29        assert p.surname == 'Simpson'
30
31    def test_has_field(self):
32        class Person(Entity):
33            has_field('firstname', Unicode(30))
34            has_field('surname', Unicode(30))
35
36        setup_all(True)
37       
38        homer = Person(firstname="Homer", surname="Simpson")
39        bart = Person(firstname="Bart", surname="Simpson")
40       
41        session.flush()
42        session.clear()
43       
44        p = Person.get_by(firstname="Homer")
45       
46        assert p.surname == 'Simpson'
47       
48    def test_with_fields(self):
49        class Person(Entity):
50            with_fields(
51                firstname = Field(Unicode(30))
52                surname = Field(Unicode(30))
53            )
54           
55        setup_all(True)
56       
57        homer = Person(firstname="Homer", surname="Simpson")
58        bart = Person(firstname="Bart", surname="Simpson")
59       
60        session.flush()
61        session.clear()
62       
63        p = Person.get_by(firstname="Homer")
64       
65        assert p.surname == 'Simpson'
Note: See TracBrowser for help on using the browser.