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

« back to all changes in this revision

Viewing changes to test/sql/test_selectable.py

  • Committer: Package Import Robot
  • Author(s): Piotr Ożarowski
  • Date: 2013-10-28 22:29:40 UTC
  • mfrom: (1.4.24)
  • Revision ID: package-import@ubuntu.com-20131028222940-wvyqffl4g617caun
Tags: 0.8.3-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
from sqlalchemy import exc
11
11
from sqlalchemy.sql import table, column, null
12
12
from sqlalchemy import util
 
13
from sqlalchemy.schema import Column, Table, MetaData
13
14
 
14
15
metadata = MetaData()
15
16
table1 = Table('table1', metadata,
148
149
        s = select([t])._clone()
149
150
        assert c in s.c.bar.proxy_set
150
151
 
 
152
 
 
153
    def test_no_error_on_unsupported_expr_key(self):
 
154
        from sqlalchemy.dialects.postgresql import ARRAY
 
155
 
 
156
        t = table('t', column('x', ARRAY(Integer)))
 
157
 
 
158
        expr = t.c.x[5]
 
159
        s = select([t, expr])
 
160
        eq_(
 
161
            s.c.keys(),
 
162
            ['x', expr.anon_label]
 
163
        )
 
164
 
151
165
    def test_cloned_intersection(self):
152
166
        t1 = table('t1', column('x'))
153
167
        t2 = table('t2', column('x'))
500
514
            "SELECT c FROM (SELECT (SELECT (SELECT table1.col1 AS a FROM table1) AS b) AS c)"
501
515
        )
502
516
 
 
517
    def test_self_referential_select_raises(self):
 
518
        t = table('t', column('x'))
 
519
 
 
520
        s = select([t])
 
521
 
 
522
        s.append_whereclause(s.c.x > 5)
 
523
        assert_raises_message(
 
524
            exc.InvalidRequestError,
 
525
            r"select\(\) construct refers to itself as a FROM",
 
526
            s.compile
 
527
        )
 
528
 
503
529
    def test_unusual_column_elements_text(self):
504
530
        """test that .c excludes text()."""
505
531
 
1367
1393
        c1.name = 'somename'
1368
1394
        eq_(c1_a.name, 'somename')
1369
1395
 
 
1396
    def test_late_table_add(self):
 
1397
        c1 = Column("foo", Integer)
 
1398
        c1_a = c1._annotate({"foo": "bar"})
 
1399
        t = Table('t', MetaData(), c1)
 
1400
        is_(c1_a.table, t)
 
1401
 
1370
1402
    def test_custom_constructions(self):
1371
1403
        from sqlalchemy.schema import Column
1372
1404
        class MyColumn(Column):