summaryrefslogtreecommitdiff
path: root/test/sql
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-10-08 17:02:55 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-10-08 17:02:55 -0400
commit845500280d58a7c0cf6f08fb884b1428adb85635 (patch)
treefe7c47f7762fe6bb0edb1dac0d029d63c92a16e6 /test/sql
parent956c26d07712628457aef70cc8b2d85af2cc72f6 (diff)
downloadsqlalchemy-845500280d58a7c0cf6f08fb884b1428adb85635.tar.gz
- open up autoincrement for columns that have a default; autoinc is usually
"auto" now so True can indicate the dialect would support this
Diffstat (limited to 'test/sql')
-rw-r--r--test/sql/test_defaults.py17
-rw-r--r--test/sql/test_metadata.py19
2 files changed, 24 insertions, 12 deletions
diff --git a/test/sql/test_defaults.py b/test/sql/test_defaults.py
index 8a0e27ebd..fd4c77555 100644
--- a/test/sql/test_defaults.py
+++ b/test/sql/test_defaults.py
@@ -1080,6 +1080,23 @@ class SequenceTest(fixtures.TestBase, testing.AssertsCompiledSQL):
assert not self._has_sequence('s1')
assert not self._has_sequence('s2')
+ @testing.requires.returning
+ @testing.provide_metadata
+ def test_freestanding_sequence_via_autoinc(self):
+ t = Table(
+ 'some_table', self.metadata,
+ Column(
+ 'id', Integer,
+ autoincrement=True,
+ primary_key=True,
+ server_default=Sequence(
+ 'my_sequence', metadata=self.metadata).next_value())
+ )
+ self.metadata.create_all(testing.db)
+
+ result = testing.db.execute(t.insert())
+ eq_(result.inserted_primary_key, [1])
+
cartitems = sometable = metadata = None
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py
index 24f416439..501df4671 100644
--- a/test/sql/test_metadata.py
+++ b/test/sql/test_metadata.py
@@ -1417,7 +1417,7 @@ class PKAutoIncrementTest(fixtures.TestBase):
lambda: pk._autoincrement_column
)
- def test_single_integer_illegal_default(self):
+ def test_single_integer_default(self):
t = Table(
't', MetaData(),
Column('a', Integer, autoincrement=True, default=lambda: 1))
@@ -1426,13 +1426,12 @@ class PKAutoIncrementTest(fixtures.TestBase):
)
t.append_constraint(pk)
- assert_raises_message(
- exc.ArgumentError,
- "Column default.*on column t.a is not compatible",
- lambda: pk._autoincrement_column
- )
+ is_(pk._autoincrement_column, t.c.a)
- def test_single_integer_illegal_server_default(self):
+ def test_single_integer_server_default(self):
+ # new as of 1.1; now that we have three states for autoincrement,
+ # if the user puts autoincrement=True with a server_default, trust
+ # them on it
t = Table(
't', MetaData(),
Column('a', Integer,
@@ -1442,11 +1441,7 @@ class PKAutoIncrementTest(fixtures.TestBase):
)
t.append_constraint(pk)
- assert_raises_message(
- exc.ArgumentError,
- "Column server default.*on column t.a is not compatible",
- lambda: pk._autoincrement_column
- )
+ is_(pk._autoincrement_column, t.c.a)
def test_implicit_autoinc_but_fks(self):
m = MetaData()