Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/boto/sdb/db/test_db.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
| author | guerler |
|---|---|
| date | Fri, 31 Jul 2020 00:18:57 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:d30785e31577 |
|---|---|
| 1 import logging | |
| 2 import time | |
| 3 from datetime import datetime | |
| 4 | |
| 5 from boto.sdb.db.model import Model | |
| 6 from boto.sdb.db.property import StringProperty, IntegerProperty, BooleanProperty | |
| 7 from boto.sdb.db.property import DateTimeProperty, FloatProperty, ReferenceProperty | |
| 8 from boto.sdb.db.property import PasswordProperty, ListProperty, MapProperty | |
| 9 from boto.exception import SDBPersistenceError | |
| 10 | |
| 11 logging.basicConfig() | |
| 12 log = logging.getLogger('test_db') | |
| 13 log.setLevel(logging.DEBUG) | |
| 14 | |
| 15 _objects = {} | |
| 16 | |
| 17 # | |
| 18 # This will eventually be moved to the boto.tests module and become a real unit test | |
| 19 # but for now it will live here. It shows examples of each of the Property types in | |
| 20 # use and tests the basic operations. | |
| 21 # | |
| 22 class TestBasic(Model): | |
| 23 | |
| 24 name = StringProperty() | |
| 25 size = IntegerProperty() | |
| 26 foo = BooleanProperty() | |
| 27 date = DateTimeProperty() | |
| 28 | |
| 29 class TestFloat(Model): | |
| 30 | |
| 31 name = StringProperty() | |
| 32 value = FloatProperty() | |
| 33 | |
| 34 class TestRequired(Model): | |
| 35 | |
| 36 req = StringProperty(required=True, default='foo') | |
| 37 | |
| 38 class TestReference(Model): | |
| 39 | |
| 40 ref = ReferenceProperty(reference_class=TestBasic, collection_name='refs') | |
| 41 | |
| 42 class TestSubClass(TestBasic): | |
| 43 | |
| 44 answer = IntegerProperty() | |
| 45 | |
| 46 class TestPassword(Model): | |
| 47 password = PasswordProperty() | |
| 48 | |
| 49 class TestList(Model): | |
| 50 | |
| 51 name = StringProperty() | |
| 52 nums = ListProperty(int) | |
| 53 | |
| 54 class TestMap(Model): | |
| 55 | |
| 56 name = StringProperty() | |
| 57 map = MapProperty() | |
| 58 | |
| 59 class TestListReference(Model): | |
| 60 | |
| 61 name = StringProperty() | |
| 62 basics = ListProperty(TestBasic) | |
| 63 | |
| 64 class TestAutoNow(Model): | |
| 65 | |
| 66 create_date = DateTimeProperty(auto_now_add=True) | |
| 67 modified_date = DateTimeProperty(auto_now=True) | |
| 68 | |
| 69 class TestUnique(Model): | |
| 70 name = StringProperty(unique=True) | |
| 71 | |
| 72 def test_basic(): | |
| 73 global _objects | |
| 74 t = TestBasic() | |
| 75 t.name = 'simple' | |
| 76 t.size = -42 | |
| 77 t.foo = True | |
| 78 t.date = datetime.now() | |
| 79 log.debug('saving object') | |
| 80 t.put() | |
| 81 _objects['test_basic_t'] = t | |
| 82 time.sleep(5) | |
| 83 log.debug('now try retrieving it') | |
| 84 tt = TestBasic.get_by_id(t.id) | |
| 85 _objects['test_basic_tt'] = tt | |
| 86 assert tt.id == t.id | |
| 87 l = TestBasic.get_by_id([t.id]) | |
| 88 assert len(l) == 1 | |
| 89 assert l[0].id == t.id | |
| 90 assert t.size == tt.size | |
| 91 assert t.foo == tt.foo | |
| 92 assert t.name == tt.name | |
| 93 #assert t.date == tt.date | |
| 94 return t | |
| 95 | |
| 96 def test_float(): | |
| 97 global _objects | |
| 98 t = TestFloat() | |
| 99 t.name = 'float object' | |
| 100 t.value = 98.6 | |
| 101 log.debug('saving object') | |
| 102 t.save() | |
| 103 _objects['test_float_t'] = t | |
| 104 time.sleep(5) | |
| 105 log.debug('now try retrieving it') | |
| 106 tt = TestFloat.get_by_id(t.id) | |
| 107 _objects['test_float_tt'] = tt | |
| 108 assert tt.id == t.id | |
| 109 assert tt.name == t.name | |
| 110 assert tt.value == t.value | |
| 111 return t | |
| 112 | |
| 113 def test_required(): | |
| 114 global _objects | |
| 115 t = TestRequired() | |
| 116 _objects['test_required_t'] = t | |
| 117 t.put() | |
| 118 return t | |
| 119 | |
| 120 def test_reference(t=None): | |
| 121 global _objects | |
| 122 if not t: | |
| 123 t = test_basic() | |
| 124 tt = TestReference() | |
| 125 tt.ref = t | |
| 126 tt.put() | |
| 127 time.sleep(10) | |
| 128 tt = TestReference.get_by_id(tt.id) | |
| 129 _objects['test_reference_tt'] = tt | |
| 130 assert tt.ref.id == t.id | |
| 131 for o in t.refs: | |
| 132 log.debug(o) | |
| 133 | |
| 134 def test_subclass(): | |
| 135 global _objects | |
| 136 t = TestSubClass() | |
| 137 _objects['test_subclass_t'] = t | |
| 138 t.name = 'a subclass' | |
| 139 t.size = -489 | |
| 140 t.save() | |
| 141 | |
| 142 def test_password(): | |
| 143 global _objects | |
| 144 t = TestPassword() | |
| 145 _objects['test_password_t'] = t | |
| 146 t.password = "foo" | |
| 147 t.save() | |
| 148 time.sleep(5) | |
| 149 # Make sure it stored ok | |
| 150 tt = TestPassword.get_by_id(t.id) | |
| 151 _objects['test_password_tt'] = tt | |
| 152 #Testing password equality | |
| 153 assert tt.password == "foo" | |
| 154 #Testing password not stored as string | |
| 155 assert str(tt.password) != "foo" | |
| 156 | |
| 157 def test_list(): | |
| 158 global _objects | |
| 159 t = TestList() | |
| 160 _objects['test_list_t'] = t | |
| 161 t.name = 'a list of ints' | |
| 162 t.nums = [1, 2, 3, 4, 5] | |
| 163 t.put() | |
| 164 tt = TestList.get_by_id(t.id) | |
| 165 _objects['test_list_tt'] = tt | |
| 166 assert tt.name == t.name | |
| 167 for n in tt.nums: | |
| 168 assert isinstance(n, int) | |
| 169 | |
| 170 def test_list_reference(): | |
| 171 global _objects | |
| 172 t = TestBasic() | |
| 173 t.put() | |
| 174 _objects['test_list_ref_t'] = t | |
| 175 tt = TestListReference() | |
| 176 tt.name = "foo" | |
| 177 tt.basics = [t] | |
| 178 tt.put() | |
| 179 time.sleep(5) | |
| 180 _objects['test_list_ref_tt'] = tt | |
| 181 ttt = TestListReference.get_by_id(tt.id) | |
| 182 assert ttt.basics[0].id == t.id | |
| 183 | |
| 184 def test_unique(): | |
| 185 global _objects | |
| 186 t = TestUnique() | |
| 187 name = 'foo' + str(int(time.time())) | |
| 188 t.name = name | |
| 189 t.put() | |
| 190 _objects['test_unique_t'] = t | |
| 191 time.sleep(10) | |
| 192 tt = TestUnique() | |
| 193 _objects['test_unique_tt'] = tt | |
| 194 tt.name = name | |
| 195 try: | |
| 196 tt.put() | |
| 197 assert False | |
| 198 except(SDBPersistenceError): | |
| 199 pass | |
| 200 | |
| 201 def test_datetime(): | |
| 202 global _objects | |
| 203 t = TestAutoNow() | |
| 204 t.put() | |
| 205 _objects['test_datetime_t'] = t | |
| 206 time.sleep(5) | |
| 207 tt = TestAutoNow.get_by_id(t.id) | |
| 208 assert tt.create_date.timetuple() == t.create_date.timetuple() | |
| 209 | |
| 210 def test(): | |
| 211 log.info('test_basic') | |
| 212 t1 = test_basic() | |
| 213 log.info('test_required') | |
| 214 test_required() | |
| 215 log.info('test_reference') | |
| 216 test_reference(t1) | |
| 217 log.info('test_subclass') | |
| 218 test_subclass() | |
| 219 log.info('test_password') | |
| 220 test_password() | |
| 221 log.info('test_list') | |
| 222 test_list() | |
| 223 log.info('test_list_reference') | |
| 224 test_list_reference() | |
| 225 log.info("test_datetime") | |
| 226 test_datetime() | |
| 227 log.info('test_unique') | |
| 228 test_unique() | |
| 229 | |
| 230 if __name__ == "__main__": | |
| 231 test() |
