Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(330)

Side by Side Diff: boto/sdb/persist/test_persist.py

Issue 8386013: Merging in latest boto. (Closed) Base URL: svn://svn.chromium.org/boto
Patch Set: Redoing vendor drop by deleting and then merging. Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « boto/sdb/persist/property.py ('k') | boto/ses/__init__.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 from boto.sdb.persist.object import SDBObject
2 from boto.sdb.persist.property import StringProperty, PositiveIntegerProperty, I ntegerProperty
3 from boto.sdb.persist.property import BooleanProperty, DateTimeProperty, S3KeyPr operty
4 from boto.sdb.persist.property import ObjectProperty, StringListProperty
5 from boto.sdb.persist.property import PositiveIntegerListProperty, BooleanListPr operty, ObjectListProperty
6 from boto.sdb.persist import Manager
7 from datetime import datetime
8 import time
9
10 #
11 # This will eventually be moved to the boto.tests module and become a real unit test
12 # but for now it will live here. It shows examples of each of the Property type s in
13 # use and tests the basic operations.
14 #
15 class TestScalar(SDBObject):
16
17 name = StringProperty()
18 description = StringProperty()
19 size = PositiveIntegerProperty()
20 offset = IntegerProperty()
21 foo = BooleanProperty()
22 date = DateTimeProperty()
23 file = S3KeyProperty()
24
25 class TestRef(SDBObject):
26
27 name = StringProperty()
28 ref = ObjectProperty(ref_class=TestScalar)
29
30 class TestSubClass1(TestRef):
31
32 answer = PositiveIntegerProperty()
33
34 class TestSubClass2(TestScalar):
35
36 flag = BooleanProperty()
37
38 class TestList(SDBObject):
39
40 names = StringListProperty()
41 numbers = PositiveIntegerListProperty()
42 bools = BooleanListProperty()
43 objects = ObjectListProperty(ref_class=TestScalar)
44
45 def test1():
46 s = TestScalar()
47 s.name = 'foo'
48 s.description = 'This is foo'
49 s.size = 42
50 s.offset = -100
51 s.foo = True
52 s.date = datetime.now()
53 s.save()
54 return s
55
56 def test2(ref_name):
57 s = TestRef()
58 s.name = 'testref'
59 rs = TestScalar.find(name=ref_name)
60 s.ref = rs.next()
61 s.save()
62 return s
63
64 def test3():
65 s = TestScalar()
66 s.name = 'bar'
67 s.description = 'This is bar'
68 s.size = 24
69 s.foo = False
70 s.date = datetime.now()
71 s.save()
72 return s
73
74 def test4(ref1, ref2):
75 s = TestList()
76 s.names.append(ref1.name)
77 s.names.append(ref2.name)
78 s.numbers.append(ref1.size)
79 s.numbers.append(ref2.size)
80 s.bools.append(ref1.foo)
81 s.bools.append(ref2.foo)
82 s.objects.append(ref1)
83 s.objects.append(ref2)
84 s.save()
85 return s
86
87 def test5(ref):
88 s = TestSubClass1()
89 s.answer = 42
90 s.ref = ref
91 s.save()
92 # test out free form attribute
93 s.fiddlefaddle = 'this is fiddlefaddle'
94 s._fiddlefaddle = 'this is not fiddlefaddle'
95 return s
96
97 def test6():
98 s = TestSubClass2()
99 s.name = 'fie'
100 s.description = 'This is fie'
101 s.size = 4200
102 s.offset = -820
103 s.foo = False
104 s.date = datetime.now()
105 s.flag = True
106 s.save()
107 return s
108
109 def test(domain_name):
110 print 'Initialize the Persistance system'
111 Manager.DefaultDomainName = domain_name
112 print 'Call test1'
113 s1 = test1()
114 # now create a new instance and read the saved data from SDB
115 print 'Now sleep to wait for things to converge'
116 time.sleep(5)
117 print 'Now lookup the object and compare the fields'
118 s2 = TestScalar(s1.id)
119 assert s1.name == s2.name
120 assert s1.description == s2.description
121 assert s1.size == s2.size
122 assert s1.offset == s2.offset
123 assert s1.foo == s2.foo
124 #assert s1.date == s2.date
125 print 'Call test2'
126 s2 = test2(s1.name)
127 print 'Call test3'
128 s3 = test3()
129 print 'Call test4'
130 s4 = test4(s1, s3)
131 print 'Call test5'
132 s6 = test6()
133 s5 = test5(s6)
134 domain = s5._manager.domain
135 item1 = domain.get_item(s1.id)
136 item2 = domain.get_item(s2.id)
137 item3 = domain.get_item(s3.id)
138 item4 = domain.get_item(s4.id)
139 item5 = domain.get_item(s5.id)
140 item6 = domain.get_item(s6.id)
141 return [(s1, item1), (s2, item2), (s3, item3), (s4, item4), (s5, item5), (s6 , item6)]
OLDNEW
« no previous file with comments | « boto/sdb/persist/property.py ('k') | boto/ses/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698