]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- pg8000 wants to raise a ProgrammingError for a PK violation
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 16 May 2015 01:18:18 +0000 (21:18 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 16 May 2015 01:18:18 +0000 (21:18 -0400)
lib/sqlalchemy/testing/requirements.py
lib/sqlalchemy/testing/suite/test_dialect.py
test/requirements.py

index 32465c47d8d0ac470db6db3ceb05e47cd562c795..e8b3a995f6257522cb73510f0842d1b0e2f27d4c 100644 (file)
@@ -341,6 +341,14 @@ class SuiteRequirements(Requirements):
         """target dialect supports reflection of unique constraints"""
         return exclusions.open()
 
+    @property
+    def duplicate_key_raises_integrity_error(self):
+        """target dialect raises IntegrityError when reporting an INSERT
+        with a primary key violation.  (hint: it should)
+
+        """
+        return exclusions.open()
+
     @property
     def unbounded_varchar(self):
         """Target database must support VARCHAR with no length"""
index 5ad5694b3a2a56cfd09a8b4bd42c8f2bb2c3ce49..00884a212c99ec52f4fc90191e286e08b0178e1f 100644 (file)
@@ -1,4 +1,5 @@
 from .. import fixtures, config
+from ..config import requirements
 from sqlalchemy import exc
 from sqlalchemy import Integer, String
 from .. import assert_raises
@@ -23,6 +24,7 @@ class ExceptionTest(fixtures.TablesTest):
               Column('data', String(50))
               )
 
+    @requirements.duplicate_key_raises_integrity_error
     def test_integrity_error(self):
 
         with config.db.begin() as conn:
index 77d941a67103590e56e4b9a760cc1cd0e1ac725d..e993be2e7258bdd71bc9f93448a15e3e578e7bea 100644 (file)
@@ -668,6 +668,10 @@ class DefaultRequirements(SuiteRequirements):
                     ("mssql+pyodbc", None, None, "crashes due to bug #351"),
                 )
 
+    @property
+    def duplicate_key_raises_integrity_error(self):
+        return fails_on("postgresql+pg8000")
+
     @property
     def python2(self):
         return skip_if(