Contact: fumanchu@aminus.org

Log in as guest/dejavu to create tickets

I think I've seen this ORM somewhere before...

root/trunk/test_dejavu.py

Revision 22 (checked in by fumanchu, 9 years ago)

1. Moved xray, recur into dejavu.
2. Doc updates.

Line 
1 import unittest
2 import datetime
3 import dejavu
4
5
6 class UnitTests(unittest.TestCase):
7    
8     def test_Properties(self):
9         a = dejavu.Unit()
10        
11         self.assertEqual(a.ID, None)
12         self.assertEqual(a.__class__.ID.type, int)
13         a.ID = 321
14         self.assertEqual(a.ID, 321)
15         self.assertEqual(a.dirty, True)
16         a.ID = '444'
17         self.assertEqual(a.ID, 444)
18         # Should remapping the property attempt to coerce all instances?
19         a.set_property('ID', unicode)
20         a.ID = 'my thing'
21         self.assertEqual(a.ID, 'my thing')
22        
23         class Triggered(dejavu.UnitProperty):
24             def pre(self, unit, value):
25                 unit.preval = value
26            
27             def post(self, unit, value):
28                 unit.postval = value
29        
30         class Thing(dejavu.Unit):
31             Integer = dejavu.UnitProperty('Integer', int, index=True)
32             String = dejavu.UnitProperty('String', str, hints={'Size': 0})
33             Unicode = dejavu.UnitProperty('Unicode', unicode)
34             Datetime = Triggered('Datetime', datetime.datetime)
35        
36         # Instance creation and population
37         t = Thing(Integer=3, String='abc', Unicode=u'foo')
38         self.assertEqual(t.Integer, 3)
39         self.assertEqual(t.String, 'abc')
40         self.assertEqual(type(t.String), str)
41         self.assertEqual(t.Unicode, u'foo')
42         self.assertEqual(type(t.Unicode), unicode)
43         self.assertEqual(t.Datetime, None)
44        
45         # Index attribute
46         self.assertEqual(t.__class__.Integer.index, True)
47        
48         # Triggers. Unit needs a sandbox or pre, post won't be called.
49         t.sandbox = True
50         self.assertEqual(hasattr(t, 'preval'), False)
51         t.Datetime = aDate = datetime.datetime(2004, 10, 20)
52         self.assertEqual(t.preval, aDate)
53         self.assertEqual(t.postval, aDate)
54
55
56 if __name__ == "__main__":
57     unittest.main()
58
Note: See TracBrowser for help on using the browser.