return exclusions.only_if([
lambda: self.config.db.dialect.supports_sequences
- ], "no SEQUENCE support")
+ ], "no sequence support")
+
+ @property
+ def sequences_optional(self):
+ """Target database supports sequences, but also optionally
+ as a means of generating new PK values."""
+
+ return exclusions.only_if([
+ lambda: self.config.db.dialect.supports_sequences and \
+ self.config.db.dialect.sequences_optional
+ ], "no sequence support, or sequences not optional")
@property
def reflects_pk_names(self):
Column('data', String(50))
)
+ Table('seq_opt_pk', metadata,
+ Column('id', Integer, Sequence('tab_id_seq', optional=True),
+ primary_key=True),
+ Column('data', String(50))
+ )
+
def test_insert_roundtrip(self):
config.db.execute(
self.tables.seq_pk.insert(),
r, 1
)
+ @requirements.sequences_optional
+ def test_optional_seq(self):
+ r = config.db.execute(
+ self.tables.seq_opt_pk.insert(),
+ data="some data"
+ )
+ eq_(
+ r.inserted_primary_key,
+ [1]
+ )
def _assert_round_trip(self, table, conn):