~ubuntu-branches/debian/jessie/sqlalchemy/jessie

« back to all changes in this revision

Viewing changes to test/orm/test_utils.py

  • Committer: Bazaar Package Importer
  • Author(s): Piotr Ożarowski
  • Date: 2011-08-01 23:18:16 UTC
  • mfrom: (1.4.15 upstream) (16.1.14 experimental)
  • Revision ID: james.westby@ubuntu.com-20110801231816-6lx797pi3q1fpqst
Tags: 0.7.2-1
* New upstream release
* Bump minimum required python-mako version to 0.4.1 (closes: 635898)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
9
 
 
10
 
 
11
 
from sqlalchemy.test import TestBase, testing
12
 
 
 
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_
15
 
 
16
 
 
17
 
class ExtensionCarrierTest(TestBase):
18
 
    def test_basic(self):
19
 
        carrier = util.ExtensionCarrier()
20
 
 
21
 
        assert 'translate_row' not in carrier
22
 
        assert carrier.translate_row() is interfaces.EXT_CONTINUE
23
 
        assert 'translate_row' not in carrier
24
 
 
25
 
        assert_raises(AttributeError, lambda: carrier.snickysnack)
26
 
 
27
 
        class Partial(object):
28
 
            def __init__(self, marker):
29
 
                self.marker = marker
30
 
            def translate_row(self, row):
31
 
                return self.marker
32
 
 
33
 
        carrier.append(Partial('end'))
34
 
        assert 'translate_row' in carrier
35
 
        assert carrier.translate_row(None) == 'end'
36
 
 
37
 
        carrier.push(Partial('front'))
38
 
        assert carrier.translate_row(None) == 'front'
39
 
 
40
 
        assert 'populate_instance' not in carrier
41
 
        carrier.append(interfaces.MapperExtension)
42
 
 
43
 
        # Py3K
44
 
        #assert 'populate_instance' not in carrier
45
 
        # Py2K
46
 
        assert 'populate_instance' in carrier
47
 
        # end Py2K
48
 
 
49
 
        assert carrier.interface
50
 
        for m in carrier.interface:
51
 
            assert getattr(interfaces.MapperExtension, m)
52
 
 
53
 
class AliasedClassTest(TestBase):
 
12
from test.lib.testing import eq_
 
13
 
 
14
 
 
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
124
86
 
125
87
    def test_descriptors(self):
 
88
        """Tortured..."""
 
89
 
126
90
        class descriptor(object):
127
 
            """Tortured..."""
128
91
            def __init__(self, fn):
129
92
                self.fn = fn
130
93
            def __get__(self, obj, owner):
225
188
class IdentityKeyTest(_fixtures.FixtureTest):
226
189
    run_inserts = None
227
190
 
228
 
    @testing.resolve_artifact_names
229
191
    def test_identity_key_1(self):
 
192
        User, users = self.classes.User, self.tables.users
 
193
 
230
194
        mapper(User, users)
231
195
 
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,)))
236
200
 
237
 
    @testing.resolve_artifact_names
238
201
    def test_identity_key_2(self):
 
202
        users, User = self.tables.users, self.classes.User
 
203
 
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,)))
246
211
 
247
 
    @testing.resolve_artifact_names
248
212
    def test_identity_key_3(self):
 
213
        User, users = self.classes.User, self.tables.users
 
214
 
249
215
        mapper(User, users)
250
216
 
251
217
        row = {users.c.id: 1, users.c.name: "Frank"}