Use MYSQL_* environment variables for tests
- Prevent `.htconfig.php` override when present during tests.
This commit is contained in:
commit
eaa3e4d157
|
@ -10,11 +10,9 @@ php:
|
||||||
services:
|
services:
|
||||||
- mysql
|
- mysql
|
||||||
env:
|
env:
|
||||||
- USER=travis DB=test
|
- MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USERNAME=travis MYSQL_PASSWORD= MYSQL_DATABASE=test
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- composer install
|
- composer install
|
||||||
before_script:
|
before_script:
|
||||||
- mysql -e 'CREATE DATABASE IF NOT EXISTS test;'
|
- mysql -e 'CREATE DATABASE IF NOT EXISTS test;'
|
||||||
# In order to avoid bin/worker.php warnings
|
|
||||||
- touch .htconfig.php
|
|
||||||
|
|
12
htconfig.php
12
htconfig.php
|
@ -23,17 +23,19 @@ $db_data = 'mysqldatabasename';
|
||||||
|
|
||||||
// Use environment variables for mysql if they are set beforehand
|
// Use environment variables for mysql if they are set beforehand
|
||||||
if (!empty(getenv('MYSQL_HOST'))
|
if (!empty(getenv('MYSQL_HOST'))
|
||||||
&& !empty(getenv('MYSQL_PORT'))
|
|
||||||
&& (!empty(getenv('MYSQL_USERNAME')) || !empty(getenv('MYSQL_USER')))
|
&& (!empty(getenv('MYSQL_USERNAME')) || !empty(getenv('MYSQL_USER')))
|
||||||
&& !empty(getenv('MYSQL_PASSWORD'))
|
&& !getenv('MYSQL_PASSWORD') === false
|
||||||
&& !empty(getenv('MYSQL_DATABASE'))) {
|
&& !empty(getenv('MYSQL_DATABASE'))) {
|
||||||
$db_host = getenv('MYSQL_HOST') . ':' . getenv('MYSQL_PORT');
|
$db_host = getenv('MYSQL_HOST');
|
||||||
|
if (!empty(getenv('MYSQL_PORT'))) {
|
||||||
|
$db_host .= ':' . getenv('MYSQL_PORT');
|
||||||
|
}
|
||||||
if (!empty(getenv('MYSQL_USERNAME'))) {
|
if (!empty(getenv('MYSQL_USERNAME'))) {
|
||||||
$db_user = getenv('MYSQL_USERNAME');
|
$db_user = getenv('MYSQL_USERNAME');
|
||||||
} elseif (!empty(getenv('MYSQL_USER'))) {
|
} else {
|
||||||
$db_user = getenv('MYSQL_USER');
|
$db_user = getenv('MYSQL_USER');
|
||||||
}
|
}
|
||||||
$db_pass = getenv('MYSQL_PASSWORD');
|
$db_pass = (string) getenv('MYSQL_PASSWORD');
|
||||||
$db_data = getenv('MYSQL_DATABASE');
|
$db_data = getenv('MYSQL_DATABASE');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,15 +33,13 @@ abstract class DatabaseTest extends TestCase
|
||||||
$base_config_file_path = stream_resolve_include_path($base_config_file_name);
|
$base_config_file_path = stream_resolve_include_path($base_config_file_name);
|
||||||
$config_file_path = dirname($base_config_file_path) . DIRECTORY_SEPARATOR . $config_file_name;
|
$config_file_path = dirname($base_config_file_path) . DIRECTORY_SEPARATOR . $config_file_name;
|
||||||
|
|
||||||
$config_string = file_get_contents($base_config_file_path);
|
if (!file_exists($config_file_path)) {
|
||||||
|
$config_string = file_get_contents($base_config_file_path);
|
||||||
|
|
||||||
$config_string = str_replace('die(', '// die(', $config_string);
|
$config_string = str_replace('die(', '// die(', $config_string);
|
||||||
$config_string = str_replace('your.mysqlhost.com', 'localhost', $config_string);
|
|
||||||
$config_string = str_replace('mysqlusername' , getenv('USER'), $config_string);
|
|
||||||
$config_string = str_replace('mysqlpassword' , getenv('PASS'), $config_string);
|
|
||||||
$config_string = str_replace('mysqldatabasename' , getenv('DB'), $config_string);
|
|
||||||
|
|
||||||
file_put_contents($config_file_path, $config_string);
|
file_put_contents($config_file_path, $config_string);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,7 +56,7 @@ abstract class DatabaseTest extends TestCase
|
||||||
protected function getConnection()
|
protected function getConnection()
|
||||||
{
|
{
|
||||||
if (!dba::$connected) {
|
if (!dba::$connected) {
|
||||||
dba::connect('localhost', getenv('USER'), getenv('PASS'), getenv('DB'));
|
dba::connect(getenv('MYSQL_HOST') . ':' . getenv('MYSQL_PORT'), getenv('MYSQL_USERNAME'), getenv('MYSQL_PASSWORD'), getenv('MYSQL_DATABASE'));
|
||||||
|
|
||||||
if (dba::$connected) {
|
if (dba::$connected) {
|
||||||
$app = get_app();
|
$app = get_app();
|
||||||
|
|
Loading…
Reference in a new issue