Skip to content

Commit dfcc8b2

Browse files
authored
Merge pull request #89 from wp-cli/use-behat-db-consts-in-prepare-tests-script
2 parents 7b9e5b7 + f13393f commit dfcc8b2

File tree

2 files changed

+54
-15
lines changed

2 files changed

+54
-15
lines changed

bin/install-package-tests

Lines changed: 52 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,58 @@
11
#!/bin/sh
22

3-
set -ex
3+
# Database credentials can be provided via environment variables:
4+
# - WP_CLI_TEST_DBHOST is the host to use and can include a port, i.e "127.0.0.1:33060" (defaults to "localhost")
5+
# - WP_CLI_TEST_DBUSER is the user that has permission to administer databases and users (defaults to "root").
6+
# - WP_CLI_TEST_DBPASS is the password to use for the above user (defaults to an empty password).
7+
8+
HOST=localhost
9+
PORT=""
10+
HOST_STRING=''
11+
if [ -n "$WP_CLI_TEST_DBHOST" ]; then
12+
case ${WP_CLI_TEST_DBHOST##*[]]} in
13+
(*:*) HOST=${WP_CLI_TEST_DBHOST%:*} PORT=${WP_CLI_TEST_DBHOST##*:};;
14+
(*) HOST=$WP_CLI_TEST_DBHOST;;
15+
esac
16+
HOST_STRING="-h$HOST"
17+
if [ -n "$PORT" ]; then
18+
HOST_STRING="$HOST_STRING -P$PORT --protocol=tcp"
19+
fi
20+
fi
21+
22+
USER=root
23+
if [ -n "$WP_CLI_TEST_DBUSER" ]; then
24+
USER="$WP_CLI_TEST_DBUSER"
25+
fi
426

527
PASSWORD_STRING=""
6-
if [ -z "DB_PASSWORD" ]; then
7-
PASSWORD_STRING="-p${DB_PASSWORD}"
8-
fi;
9-
10-
# Prepare the database for running the tests
11-
install_db() {
12-
mysql -e 'CREATE DATABASE IF NOT EXISTS wp_cli_test;' -uroot "$PASSWORD_STRING"
13-
mysql -e 'CREATE USER "wp_cli_test"@"localhost" IDENTIFIED BY "password1"' -uroot "$PASSWORD_STRING"
14-
mysql -e 'GRANT ALL PRIVILEGES ON wp_cli_test.* TO "wp_cli_test"@"localhost"' -uroot "$PASSWORD_STRING"
15-
mysql -e 'GRANT ALL PRIVILEGES ON wp_cli_test_scaffold.* TO "wp_cli_test"@"localhost"' -uroot "$PASSWORD_STRING"
28+
if [ -n "$WP_CLI_TEST_DBPASS" ]; then
29+
PASSWORD_STRING="-p$WP_CLI_TEST_DBPASS"
30+
fi
31+
32+
# Prepare the database for running the tests with a MySQL version 8.0 or higher.
33+
install_db_8_0_plus() {
34+
mysql -e "CREATE DATABASE IF NOT EXISTS wp_cli_test;" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
35+
mysql -e "CREATE USER IF NOT EXISTS wp_cli_test@$HOST IDENTIFIED BY 'password1'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
36+
mysql -e "GRANT ALL PRIVILEGES ON wp_cli_test.* TO wp_cli_test@$HOST" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
37+
mysql -e "GRANT ALL PRIVILEGES ON wp_cli_test_scaffold.* TO wp_cli_test@$HOST" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
1638
}
1739

18-
install_db
40+
# Prepare the database for running the tests with a MySQL version lower than 8.0.
41+
install_db_lower_than_8_0() {
42+
mysql -e "CREATE DATABASE IF NOT EXISTS wp_cli_test;" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
43+
mysql -e "GRANT ALL ON wp_cli_test.* TO wp_cli_test@$HOST IDENTIFIED BY 'password1'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
44+
mysql -e "GRANT ALL ON wp_cli_test_scaffold.* TO wp_cli_test@$HOST IDENTIFIED BY 'password1'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
45+
}
46+
47+
set -ex
48+
49+
VERSION_STRING=$(mysql -e "SELECT VERSION()" --skip-column-names $HOST_STRING -u"$USER" "$PASSWORD_STRING")
50+
VERSION=$(echo "$VERSION_STRING" | grep -o '^[^-]*')
51+
MAJOR=$(echo "$VERSION" | cut -d. -f1)
52+
MINOR=$(echo "$VERSION" | cut -d. -f2)
53+
54+
if [ "$MAJOR" -ge 8 ]; then
55+
install_db_8_0_plus
56+
else
57+
install_db_lower_than_8_0
58+
fi

composer.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"behat/behat": "^2.5",
1414
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || ^0.5 || ^0.6.2 || ^0.7",
1515
"php-parallel-lint/php-console-highlighter": "^0.5",
16-
"php-parallel-lint/php-parallel-lint": "^1.0",
16+
"php-parallel-lint/php-parallel-lint": "^1",
1717
"phpcompatibility/php-compatibility": "^9",
1818
"phpunit/phpunit": ">=4.8 <7",
1919
"wp-cli/config-command": "^1 || ^2",
@@ -23,8 +23,7 @@
2323
"wp-coding-standards/wpcs": "^2.1"
2424
},
2525
"require-dev": {
26-
"roave/security-advisories": "dev-master",
27-
"wp-cli/regenerate-readme": "^2"
26+
"roave/security-advisories": "dev-master"
2827
},
2928
"config": {
3029
"platform": {

0 commit comments

Comments
 (0)