v1.3.0
This is a first release since 2019 and it contains some long-awaited bug fixes and improvements.
The library finally supports the new Oracle driver - oracledb.
Running the SQL script files has been improved - the UTF8 encoding is used by default now, values with semicolons and begin/end blocks are processed properly.
You can now provide custom error messages to assertion keywords. The default error messages were improved as well.
And a lot of other changes - see more details below.
The probably breaking changes are related to the Execute Sql Script and Call Stored Procedure keywords - see details below.
Most important changes
- Added support for Teradata 15 & 16
- Solve encoding problem - explicitely use UTF8 when running SQL script files
- Support kingbase database
- pyodbc - allow overriding dbDriver istead of always using "SQL Server"
- The keyword "Disconnect From Database" doesn't fail by default now, if there was no open connection. The previous behavior with an error can be enforced using a special parameter.
- Proper execution of SQL scripts containing semicolons in values - fixes #111
- Fix #173 - keyword "Connect using custom params" doesn't require require quotes (") around the connection string any more
- Fix #178 - keyword "table must exist" doesn't fail now, if the DB doesn't support information_schema
- Fix #174 - Semicolons (';') after the SQL statement don't lead to error messages with Oracle DB - as they're omitted. Omitting semicolon at the end of an SQL statement is defined based on the DB module (by default True for Oracle only) and can be changed from outside - necessary for running some SQL scripts even in Oracle.
- It's now possible to set charset when connecting via pyodbc
- It's now possible to provide custom error message to assertion keywords - #162
- Hide DB connection password in output logs
- The error messages in assertion keywords were also generally improved - #179
- Support for new Oracle driver - #166
- Executing the SQL scripts was significantly improved. The statements are now separated more precisely. Also begin/end blocks are processed properly.
- The Call Stored Procedure keyword has got a completely new implementation.
- It supports pymysql, oracledb/cx_Oracle, psycopg2, pymssql now
- For not supported DB's there is a warning message and more cautious attempt to get results
- The keyword returns now both param values and result sets (even multiple sets for supported DB)
- Special handling for OUT params of cursor type
- See more in the keyword docs
A lot of work was also done in the backstage
- CI setup for tests and keyword docs publishing
- Tests were unified, restructured and extended
- Repository cleanup
- Package and setup infos, setup and metadata were updated as well
- Readme and docs
Thanks a lot to all contributors!
@kivipe, @denghj, @adrianyorke, @zhouziyang2012, @snoozebear, @IlfirinPL, @kad-derksn, @emanlove, @robinmatz, @carnegiemedal, @gsusin, @amochin
Full Changelog: v1.1.1...v1.3.0