mysqld-integration-test is a python module that creates a temporary mysqld instance to use for testing your application.
Project description
mysqld-integration-test
Overview
mysqld-integration-test is a python module that creates a temporary mysqld instance to use for testing your application. It is based on the testing.mysqld
module which has not been updated recently. You will need a working MySQL or MariaDB install. It does not have to be running, the binaries are needed.
Download and Install
To install use pip:
$ pip install mysqld-integration-test
Or clone the repo:
$ git clone https://github.com/jasondcamp/mysqld-integration-test.git
Configuration
Class arguments
The following class arguments can be overridden by passing them in, these arguments will override the config file arguments.
Argument | Description | Default |
---|---|---|
username | Username for database | root |
password | Password for database | root |
host | Host to bind | 127.0.0.1 |
port | Port to bind | random |
mysql_install_db_binary | Location of mysql_install_db | Searches paths |
mysqld_binary | Location of mysqld | Searches paths |
timeout_start | Timeout to start MySQL | 30 seconds |
timeout_stop | Timeout to stop MySQL | 30 seconds |
log_level | Log level | INFO |
config_file | Configuration file | mysqld-integration-test.cfg |
mysqld-integration-test config file
Default settings can be overridden in a config file. The default name is mysqld-integration-test.cfg
in the local directory and can be overridden by passing in the config
option to the instance creation.
Example config
database:
host: '127.0.0.1'
port: '9999'
username: 'root'
password: 'test'
mysql_install_db_binary: '/usr/local/bin/mysql_install_db'
mysqld_binary: '/usr/sbin/mysqld'
general:
log_level: 'DEBUG'
timeout_start: 30
timeout_stop: 30
Usage
import
from mysqld_integration_test import Mysqld
run
Starts up the mysql server
mysqld = Mysqld()
instance = mysqld.run()
stop
Stops the mysql server
mysqld.stop()
Example Code
#!/usr/bin/env python3
from mysqld_integration_test import Mysqld
import mysql.connector
mysqld = Mysqld(config='/some/dir/mysqld-integration-test.cfg')
instance = mysqld.run()
# Make query to database
cnx = mysql.connector.connect(user=instance.username, password=instance.password,
host=instance.host, port=instance.port)
cursor = cnx.cursor()
cursor.execute(f"SHOW databases;")
for db in cursor:
print(db[0])
cursor.close()
cnx.close()
mysqld.stop()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mysqld-integration-test-0.0.9.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d99175cd4dc99058d5efc1af45dcc91444ae91a58d54ddb312f2aae328ef6d0 |
|
MD5 | 3c3fec6ea70f0e51f250da77488d3aae |
|
BLAKE2b-256 | 7d82850dde7ff5b3b6cb8f1d207fcdd4a22de065c37a0a00f2e56561afe4c818 |
Hashes for mysqld_integration_test-0.0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbf53983404d0d4c788f2178cdbdc0e1101ddb1671393396883f88469611ad21 |
|
MD5 | b42f2926c215cec86ade48297f813b75 |
|
BLAKE2b-256 | 5425465b1458aa8162a3042bb92f3d9b086fe2de5e6b6207002c0a6140dd4450 |