From 96d68a48d52c8fc16446fb71c699cdc4a3df1cfa Mon Sep 17 00:00:00 2001 From: elazar Date: Mon, 9 Jul 2018 23:22:34 -0500 Subject: [PATCH 1/4] Add Localstack Docker container for SQS functional tests --- .env | 5 +++++ bin/test | 1 + docker-compose.yml | 11 +++++++++++ .../Tests/Functional/App/config/custom-config.yml | 6 ++---- pkg/test/SqsExtension.php | 4 +++- 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 000000000..88b429093 --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +ENQUEUE_AWS__SQS__KEY=key +ENQUEUE_AWS__SQS__SECRET=secret +ENQUEUE_AWS__SQS__REGION=us-east-1 +ENQUEUE_AWS__SQS__ENDPOINT=http://localstack:4576 +ENQUEUE_AWS__SQS__VERSION=latest diff --git a/bin/test b/bin/test index 6607d84c9..c9de45600 100755 --- a/bin/test +++ b/bin/test @@ -37,6 +37,7 @@ waitForService beanstalkd 11300 50 waitForService gearmand 4730 50 waitForService kafka 9092 50 waitForService mongo 27017 50 +waitForService localstack 4576 50 php pkg/job-queue/Tests/Functional/app/console doctrine:database:create --if-not-exists php pkg/job-queue/Tests/Functional/app/console doctrine:schema:update --force diff --git a/docker-compose.yml b/docker-compose.yml index 77a4773a0..1713dc963 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,7 @@ services: - google-pubsub - rabbitmqssl - mongo + - localstack volumes: - './:/mqdev' environment: @@ -37,6 +38,8 @@ services: - AWS_SQS_KEY=$ENQUEUE_AWS__SQS__KEY - AWS_SQS_SECRET=$ENQUEUE_AWS__SQS__SECRET - AWS_SQS_REGION=$ENQUEUE_AWS__SQS__REGION + - AWS_SQS_ENDPOINT=$ENQUEUE_AWS__SQS__ENDPOINT + - AWS_SQS_VERSION=$ENQUEUE_AWS__SQS__VERSION - BEANSTALKD_HOST=beanstalkd - BEANSTALKD_PORT=11300 - BEANSTALKD_DSN=beanstalk://beanstalkd:11300 @@ -109,6 +112,14 @@ services: ports: - "27017:27017" + localstack: + image: 'localstack/localstack:latest' + ports: + - '4576:4576' + environment: + HOSTNAME_EXTERNAL: 'localstack' + SERVICES: 'sqs' + volumes: mysql-data: driver: local diff --git a/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml b/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml index ae7f57943..9ce55f4c4 100644 --- a/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml +++ b/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml @@ -1,9 +1,6 @@ parameters: locale: 'en' secret: 'ThisTokenIsNotSoSecretChangeIt' - env(AWS_SQS_REGION): 'us-east-1' - env(AWS_SQS_KEY): 'key' - env(AWS_SQS_SECRET): 'secret' framework: #esi: ~ @@ -41,8 +38,9 @@ services: class: Aws\Sqs\SqsClient arguments: - + endpoint: '%env(AWS_SQS_ENDPOINT)%' region: '%env(AWS_SQS_REGION)%' - version: '2012-11-05' + version: '%env(AWS_SQS_VERSION)%' credentials: key: '%env(AWS_SQS_KEY)%' secret: '%env(AWS_SQS_SECRET)%' diff --git a/pkg/test/SqsExtension.php b/pkg/test/SqsExtension.php index 4446c3346..dacb1836f 100644 --- a/pkg/test/SqsExtension.php +++ b/pkg/test/SqsExtension.php @@ -12,7 +12,7 @@ trait SqsExtension */ private function buildSqsContext() { - if (false == getenv('AWS_SQS_KEY')) { + if (false == getenv('AWS_SQS_ENDPOINT') && false == getenv('AWS_SQS_KEY')) { throw new \PHPUnit_Framework_SkippedTestError('Functional tests are not allowed in this environment'); } @@ -20,6 +20,8 @@ private function buildSqsContext() 'key' => getenv('AWS_SQS_KEY'), 'secret' => getenv('AWS_SQS_SECRET'), 'region' => getenv('AWS_SQS_REGION'), + 'version' => getenv('AWS_SQS_VERSION'), + 'endpoint' => getenv('AWS_SQS_ENDPOINT'), 'lazy' => false, ]; From 642a6e94f4dc51aa54873e5af4341d37f258574f Mon Sep 17 00:00:00 2001 From: elazar Date: Tue, 10 Jul 2018 07:50:33 -0500 Subject: [PATCH 2/4] Try to pull .env into Travis --- .env | 5 ----- bin/run-fun-test.sh | 2 +- docker-compose.yml | 10 +++++----- 3 files changed, 6 insertions(+), 11 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 88b429093..000000000 --- a/.env +++ /dev/null @@ -1,5 +0,0 @@ -ENQUEUE_AWS__SQS__KEY=key -ENQUEUE_AWS__SQS__SECRET=secret -ENQUEUE_AWS__SQS__REGION=us-east-1 -ENQUEUE_AWS__SQS__ENDPOINT=http://localstack:4576 -ENQUEUE_AWS__SQS__VERSION=latest diff --git a/bin/run-fun-test.sh b/bin/run-fun-test.sh index 626741366..120ef3ffe 100755 --- a/bin/run-fun-test.sh +++ b/bin/run-fun-test.sh @@ -3,4 +3,4 @@ set -x set -e -docker-compose run --workdir="/mqdev" --rm dev ./bin/test "$@" \ No newline at end of file +docker-compose run --workdir="/mqdev" --rm dev ./bin/test "$@" diff --git a/docker-compose.yml b/docker-compose.yml index 1713dc963..02d8dd1bc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,11 +35,11 @@ services: - DOCTRINE_PASSWORD=rootpass - REDIS_HOST=redis - REDIS_PORT=6379 - - AWS_SQS_KEY=$ENQUEUE_AWS__SQS__KEY - - AWS_SQS_SECRET=$ENQUEUE_AWS__SQS__SECRET - - AWS_SQS_REGION=$ENQUEUE_AWS__SQS__REGION - - AWS_SQS_ENDPOINT=$ENQUEUE_AWS__SQS__ENDPOINT - - AWS_SQS_VERSION=$ENQUEUE_AWS__SQS__VERSION + - AWS_SQS_KEY=key + - AWS_SQS_SECRET=secret + - AWS_SQS_REGION=us-east-1 + - AWS_SQS_ENDPOINT=http://localstack:4576 + - AWS_SQS_VERSION=latest - BEANSTALKD_HOST=beanstalkd - BEANSTALKD_PORT=11300 - BEANSTALKD_DSN=beanstalk://beanstalkd:11300 From c4d7d27534a1a185b9047e1145bc19d60f2f5a59 Mon Sep 17 00:00:00 2001 From: elazar Date: Fri, 13 Jul 2018 10:22:14 -0500 Subject: [PATCH 3/4] Re-add env vars to functional test config --- .../Tests/Functional/App/config/custom-config.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml b/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml index 9ce55f4c4..5407f8496 100644 --- a/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml +++ b/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml @@ -1,6 +1,11 @@ parameters: locale: 'en' secret: 'ThisTokenIsNotSoSecretChangeIt' + env(AWS_SQS_REGION): 'us-east-1' + env(AWS_SQS_VERSION): 'latest' + env(AWS_SQS_KEY): 'key' + env(AWS_SQS_SECRET): 'secret' + env(AWS_SQS_ENDPOINT): 'http://localstack:4576' framework: #esi: ~ From ffede8d52d052ad48277aef596b11d4f254893f6 Mon Sep 17 00:00:00 2001 From: elazar Date: Fri, 13 Jul 2018 11:46:26 -0500 Subject: [PATCH 4/4] Add SQS endpoint spec to functional test --- pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php b/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php index 2b53b16c2..5fc37c506 100644 --- a/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php +++ b/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php @@ -201,6 +201,7 @@ public function provideEnqueueConfigs() 'key' => getenv('AWS_SQS_KEY'), 'secret' => getenv('AWS_SQS_SECRET'), 'region' => getenv('AWS_SQS_REGION'), + 'endpoint' => getenv('AWS_SQS_ENDPOINT'), ], ], ]];