1
from sqlalchemy.test.testing import assert_raises, assert_raises_message
1
from test.lib.testing import assert_raises, assert_raises_message
2
2
from sqlalchemy.orm import interfaces, util
3
3
from sqlalchemy import Column
4
4
from sqlalchemy import Integer
6
6
from sqlalchemy import Table
7
7
from sqlalchemy.orm import aliased
8
8
from sqlalchemy.orm import mapper, create_session
11
from sqlalchemy.test import TestBase, testing
9
from test.lib import testing
10
from test.lib import fixtures
13
11
from test.orm import _fixtures
14
from sqlalchemy.test.testing import eq_
17
class ExtensionCarrierTest(TestBase):
19
carrier = util.ExtensionCarrier()
21
assert 'translate_row' not in carrier
22
assert carrier.translate_row() is interfaces.EXT_CONTINUE
23
assert 'translate_row' not in carrier
25
assert_raises(AttributeError, lambda: carrier.snickysnack)
27
class Partial(object):
28
def __init__(self, marker):
30
def translate_row(self, row):
33
carrier.append(Partial('end'))
34
assert 'translate_row' in carrier
35
assert carrier.translate_row(None) == 'end'
37
carrier.push(Partial('front'))
38
assert carrier.translate_row(None) == 'front'
40
assert 'populate_instance' not in carrier
41
carrier.append(interfaces.MapperExtension)
44
#assert 'populate_instance' not in carrier
46
assert 'populate_instance' in carrier
49
assert carrier.interface
50
for m in carrier.interface:
51
assert getattr(interfaces.MapperExtension, m)
53
class AliasedClassTest(TestBase):
12
from test.lib.testing import eq_
15
class AliasedClassTest(fixtures.TestBase):
54
16
def point_map(self, cls):
55
17
table = Table('point', MetaData(),
56
18
Column('id', Integer(), primary_key=True),
123
85
assert Point.max_x is alias.max_x
125
87
def test_descriptors(self):
126
90
class descriptor(object):
128
91
def __init__(self, fn):
130
93
def __get__(self, obj, owner):
225
188
class IdentityKeyTest(_fixtures.FixtureTest):
226
189
run_inserts = None
228
@testing.resolve_artifact_names
229
191
def test_identity_key_1(self):
192
User, users = self.classes.User, self.tables.users
230
194
mapper(User, users)
232
key = util.identity_key(User, 1)
196
key = util.identity_key(User, [1])
233
197
eq_(key, (User, (1,)))
234
key = util.identity_key(User, ident=1)
198
key = util.identity_key(User, ident=[1])
235
199
eq_(key, (User, (1,)))
237
@testing.resolve_artifact_names
238
201
def test_identity_key_2(self):
202
users, User = self.tables.users, self.classes.User
239
204
mapper(User, users)
240
205
s = create_session()
241
206
u = User(name='u1')
244
209
key = util.identity_key(instance=u)
245
210
eq_(key, (User, (u.id,)))
247
@testing.resolve_artifact_names
248
212
def test_identity_key_3(self):
213
User, users = self.classes.User, self.tables.users
249
215
mapper(User, users)
251
217
row = {users.c.id: 1, users.c.name: "Frank"}