Skip to content

v1.3.0

Compare
Choose a tag to compare
@amochin amochin released this 17 Jul 19:11
· 151 commits to master since this release

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