- Nothing changed yet.
- Drop support for Python 2.7, 3.6.
- Drop support for SQLAlchemy < 1.2.
- Add support for Python 3.10, 3.11.
- Add support for SQLAlchemy 2.x.
- Restrict supported SQLALchemy to < 2.
- Ensure compatibility with
pytest > 6.0
. - Add support for Python 3.9.
- Switch CI to GHA.
- Fix PostgreSQL
drop_db
to be able to forcibly drop a data base with open connections, even though there is no database with the same name as the user.
- Forcibly close connections to test database before dropping, so this does not have to be done beforehand. (Ported from 4.x but missing in change log there.)
- Calculate a random database name that is random enough for parallel execution. (Ported from 4.2)
- Caution: This release is based on version 1.3 ignoring the changes made in the 4.x releases! At least some of those changes will be added later on.
- Drop support for Python 2.6 and Python 3.3 up to 3.5.
- Remove module
gocept.testdb.db
containing only imports for backwards compatibility, import now fromgocept.testdb.mysql
resp.gocept.testdb.postgres
.
- Officially support Python 3.6 up to 3.8.
- Add support to specify the port to connect to the database, thus the
environment variables
MYSQL_PORT
andPOSTGRES_PORT
are taken into account. This eases using docker containers on custom ports.
- Migrate code to Github.
- Drop support of Python 3.2.
- Streamline documentation.
- Officially support Python 3.2 up to Python 3.4.
- Switch PyMySQL driver to support Python 3 for MySQL.
- Add environment variable
MYSQL_COMMAND_POSTFIX
to use MySQL commands like mysql5 instead of mysql.
- Improve retry logic for dropping databases: ensure that db actually exists before trying to drop it (#12706).
- Provisional compatibility to Python 3 (no compatible mysql driver exists yet, though).
- Fixed test code that made implicit assumptions about existing databases on the PostgreSQL server used or depended on timing conditions.
- Use template0 when changing LC_COLLATE which was introduced in v1.1.
- Add possibility to set the LC_COLLATE when creating a database.
- Allow a postfix for mysql-commands.
- Use timestamp for randomizing database names to avoid collisions.
- drop-all entry point now also works, if PostgreSQL or MySQL is not installed/running.
- Added connect convenience method.
- Added is_testing property as a convenience API.
- Added exists property as a convenience API.
- Changed the protocol for using test databases: separated instantiating a Database instance from creating the database on the server. Creating Database instances is cheap now so they can be interacted with and passed around, deferring the expensive database creation on the server to the moment db.create() is called explicitly. This is also more symmetric with respect to db.drop().
- Added functionality for dropping all databases matching the testdb naming scheme which may have been left on the server by earlier test runs. Optionally also drops the template db.
- Added option to specify the name of the database for MySQL and PostgreSQL.
- Added an option to specify a template database for PostgreSQL. If it does not exist, it is created from the specified schema. It is also possible to force the creation of the template even if it exists (dropping the current template database). Whenever the schema has changed since the template db was last created, the template db is updated automatically.
- Added option to specify the encoding for the PostgreSQL database.
- Updated PostgreSQL protocol from
postgres:
topostgresql:
as the former one is deprecated in SQLAlchemy 0.6, thus requiring atleast version 0.5.6 of SQLAlchemy. - Added documentation how to develop this package further.
- Added doumentation about usage of Database prefix.
- PostgreSQL: Don't call createdb/dropdb with
--quite
but only psql.
- implemented authentication with password for mysql. Passwords for postgres are still not supported, though.
- first release