From ab97eb80c387ca815f8c20920f98456a8bddefff Mon Sep 17 00:00:00 2001 From: Kuntal Ghosh Date: Tue, 20 Dec 2022 01:45:23 +0530 Subject: [PATCH] Fix os and pyodbc versions for github action (#950) The Github Actions for Python Framework and Upgrade Validation framework started Failing Due to new release of Pyodbc. There is a diff in expected output file due to this version Change More details about the issue can be found here - mkleehammer/pyodbc#1082 We're running the github actions on ubuntu-latest. Previously, it was ubuntu-20.04, but in any recently created fork, it's pointing to ubuntu-22.04. This is causing dependency/build failure in the github actions running in the fork. So, let's fix the os version. Task: BABEL-OSS Authored-by: Kuntal Ghosh --- .github/workflows/ci.yml | 2 +- .github/workflows/dotnet-framework.yml | 2 +- .github/workflows/isolation-tests.yml | 2 +- .github/workflows/odbc-framework.yml | 2 +- .github/workflows/python-framework.yml | 5 +++-- test/python/expected/pyodbc/TestAuth.out | 12 ++++++------ 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 295f9010fe..1933fb08c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: extension-tests: name: Build and test - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Clone, build, and run tests for Postgres engine diff --git a/.github/workflows/dotnet-framework.yml b/.github/workflows/dotnet-framework.yml index 8c3644f5e5..45224c1bd6 100644 --- a/.github/workflows/dotnet-framework.yml +++ b/.github/workflows/dotnet-framework.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: dotnet: name: Dotnet - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Clone, build, and run tests for Postgres engine diff --git a/.github/workflows/isolation-tests.yml b/.github/workflows/isolation-tests.yml index 7ab43b19f8..324c928109 100644 --- a/.github/workflows/isolation-tests.yml +++ b/.github/workflows/isolation-tests.yml @@ -8,7 +8,7 @@ on: jobs: isolation-tests: name: Isolation-Tests - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Clone, build, and run tests for Postgres engine diff --git a/.github/workflows/odbc-framework.yml b/.github/workflows/odbc-framework.yml index 117cb979ea..e32a1fad51 100644 --- a/.github/workflows/odbc-framework.yml +++ b/.github/workflows/odbc-framework.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: odbc: name: ODBC - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Clone, build, and run tests for Postgres engine diff --git a/.github/workflows/python-framework.yml b/.github/workflows/python-framework.yml index d24b3ee57f..19cb603b43 100644 --- a/.github/workflows/python-framework.yml +++ b/.github/workflows/python-framework.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: python: name: Python - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Clone, build, and run tests for Postgres engine @@ -79,7 +79,7 @@ jobs: curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list cd ~/work/babelfish_extensions/babelfish_extensions/test/python sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17 python3-dev - pip3 install pyodbc pymssql pytest pytest-xdist + pip3 install pyodbc==4.0.35 pymssql pytest pytest-xdist - name: Run Python tests run: | cd test/python @@ -93,4 +93,5 @@ jobs: fileGenerator_databaseName=master \ fileGenerator_user=python_user \ fileGenerator_password=12345678 \ + LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/odbc/ \ pytest -s --tb=long -q . diff --git a/test/python/expected/pyodbc/TestAuth.out b/test/python/expected/pyodbc/TestAuth.out index 8125850a7b..3e00aef7f5 100644 --- a/test/python/expected/pyodbc/TestAuth.out +++ b/test/python/expected/pyodbc/TestAuth.out @@ -1,26 +1,26 @@ #database name, username and password should not exceed 128 characters py_auth#!#database|-|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ~~ERROR (Code: 3701)~~ -~~ERROR (Message: [42S02] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server][SQL Server]database "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" does not exist (3701) (SQLDriverConnect))~~ +~~ERROR (Message: [42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]database "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" does not exist (3701) (SQLDriverConnect))~~ py_auth#!#database|-|111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112 ~~ERROR (Code: 0)~~ -~~ERROR (Message: [08001] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Invalid value specified for connection string attribute 'DATABASE' (0) (SQLDriverConnect))~~ +~~ERROR (Message: [08001] [Microsoft][ODBC Driver 17 for SQL Server]Invalid value specified for connection string attribute 'DATABASE' (0) (SQLDriverConnect))~~ py_auth#!#user|-|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ~~ERROR (Code: 33557097)~~ -~~ERROR (Message: [42000] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server][SQL Server]role "111111111111111111111111111111111111111111111111111111111111111" does not exist (33557097) (SQLDriverConnect))~~ +~~ERROR (Message: [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]role "111111111111111111111111111111111111111111111111111111111111111" does not exist (33557097) (SQLDriverConnect))~~ py_auth#!#user|-|111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112 ~~ERROR (Code: 0)~~ -~~ERROR (Message: [08001] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Invalid value specified for connection string attribute 'UID' (0) (SQLDriverConnect))~~ +~~ERROR (Message: [08001] [Microsoft][ODBC Driver 17 for SQL Server]Invalid value specified for connection string attribute 'UID' (0) (SQLDriverConnect))~~ #not sure why any password is accepted during authentication through cloud desktop #This test should throw error but from cloud desktop a connection is successfully established #py_auth#!#password|-|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 py_auth#!#password|-|111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112 ~~ERROR (Code: 0)~~ -~~ERROR (Message: [08001] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Invalid value specified for connection string attribute 'PWD' (0) (SQLDriverConnect))~~ +~~ERROR (Message: [08001] [Microsoft][ODBC Driver 17 for SQL Server]Invalid value specified for connection string attribute 'PWD' (0) (SQLDriverConnect))~~ py_auth#!#others|-|packetSize=0 ~~SUCCESS~~ @@ -30,5 +30,5 @@ py_auth#!#others|-|packetSize=4096 ~~SUCCESS~~ py_auth#!#database|-|test1 SELECT 1 ~~ERROR (Code: 3701)~~ -~~ERROR (Message: [42S02] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server][SQL Server]database "test1 select 1" does not exist (3701) (SQLDriverConnect))~~ +~~ERROR (Message: [42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]database "test1 select 1" does not exist (3701) (SQLDriverConnect))~~