from ... import exc
from ... import schema as sa_schema
from ... import sql
+from ... import text
from ... import types as sqltypes
from ... import util
from ...engine import default
rs = connection.exec_driver_sql(s, (row[1],))
index_sql = rs.scalar()
predicate = partial_pred_re.search(index_sql).group(1)
- indexes[-1]["dialect_options"]["sqlite_where"] = predicate
+ indexes[-1]["dialect_options"]["sqlite_where"] = text(
+ predicate
+ )
# loop thru unique indexes to get the column names.
for idx in list(indexes):
import datetime
import json
import os
+from unittest.mock import ANY
from sqlalchemy import and_
from sqlalchemy import bindparam
conn.exec_driver_sql(
"create unique index ix_partial on foo_with_partial_index (x) where y > 10"
)
- conn.exec_driver_sql(
- "create unique index ix_no_partial on foo_with_partial_index (x)"
- )
inspector = inspect(conn)
+ indexes = inspector.get_indexes("foo_with_partial_index")
eq_(
- inspector.get_indexes("foo_with_partial_index"),
+ indexes,
[
- {
- "unique": 1,
- "name": "ix_no_partial",
- "column_names": ["x"],
- "dialect_options": {},
- },
{
"unique": 1,
"name": "ix_partial",
"column_names": ["x"],
- "dialect_options": {"sqlite_where": "y > 10"},
- },
+ "dialect_options": {"sqlite_where": ANY},
+ }
],
)
+ assert (
+ indexes[0]["dialect_options"]["sqlite_where"].text == "y > 10"
+ )
def test_unique_constraint_named(self):
inspector = inspect(testing.db)