add support and automated testing for case sensitive collations

This commit is contained in:
Sam Debruyn committed 2023-05-21 16:39:01 +02:00
1 parent d2c9444bcb
commit 7c162533b4
7 files changed
+25 -7

No files matched your search

@@ -19,6 +19,7 @@ jobs:
python_version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
msodbc_version: ["17", "18"]
sqlserver_version: ["2017", "2019", "2022"]
collation: ["SQL_Latin1_General_CP1_CS_AS", "SQL_Latin1_General_CP1_CI_AS"]
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository }}:CI-${{ matrix.python_version }}-msodbc${{ matrix.msodbc_version }}
@@ -31,6 +32,7 @@ jobs:
DBT_TEST_USER_1: DBT_TEST_USER_1
DBT_TEST_USER_2: DBT_TEST_USER_2
DBT_TEST_USER_3: DBT_TEST_USER_3
COLLATION: ${{ matrix.collation }}
steps:
- uses: actions/checkout@v3
+16 -3
View File
@@ -2,13 +2,26 @@
for i in {1..50};
do
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "${SA_PASSWORD}" -d msdb -I -i init.sql
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "${SA_PASSWORD}" -d master -I -Q "CREATE DATABASE TestDB COLLATE ${COLLATION}"
if [ $? -eq 0 ]
then
echo "init.sql completed"
echo "database creation completed"
break
else
echo "not ready yet..."
echo "creating database..."
sleep 1
fi
done
for i in {1..50};
do
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "${SA_PASSWORD}" -d TestDB -I -i init.sql
if [ $? -eq 0 ]
then
echo "user creation completed"
break
else
echo "configuring users..."
sleep 1
fi
done
+2
View File
@@ -1,6 +1,8 @@
ARG MSSQL_VERSION="2022"
FROM mcr.microsoft.com/mssql/server:${MSSQL_VERSION}-latest
ENV COLLATION="SQL_Latin1_General_CP1_CI_AS"
RUN mkdir -p /opt/init_scripts
WORKDIR /opt/init_scripts
COPY scripts/* /opt/init_scripts/
+1
View File
@@ -8,6 +8,7 @@ services:
environment:
SA_PASSWORD: "L0calTesting!"
ACCEPT_EULA: "Y"
COLLATION: "SQL_Latin1_General_CP1_CS_AS"
env_file:
- test.env
ports:
+2 -2
View File
@@ -1,9 +1,9 @@
SQLSERVER_TEST_DRIVER=ODBC Driver 18 for SQL Server
SQLSERVER_TEST_HOST=127.0.0.1
SQLSERVER_TEST_USER=sa
SQLSERVER_TEST_USER=SA
SQLSERVER_TEST_PASS=L0calTesting!
SQLSERVER_TEST_PORT=1433
SQLSERVER_TEST_DBNAME=msdb
SQLSERVER_TEST_DBNAME=TestDB
SQLSERVER_TEST_ENCRYPT=True
SQLSERVER_TEST_TRUST_CERT=True
DBT_TEST_USER_1=DBT_TEST_USER_1
+1 -1
View File
@@ -113,7 +113,7 @@ def _profile_ci_sql_server():
"host": "sqlserver",
"user": "SA",
"pass": "5atyaNadella",
"database": "msdb",
"database": "TestDB",
"encrypt": True,
"trust_cert": True,
},
+1 -1
View File
@@ -22,7 +22,7 @@ select 1 as id
@staticmethod
def _verify_schema_owner(schema_name, owner, project):
get_schema_owner = f"""
select schema_owner from information_schema.schemata where schema_name = '{schema_name}'
select SCHEMA_OWNER from INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME = '{schema_name}'
"""
result = project.run_sql(get_schema_owner, fetch="one")[0]
assert result == owner