Skip to content

Commit 96ecb38

Browse files
authored
Merge pull request #473 from elazar/feature/localstack-for-sqs
Add Localstack Docker container for SQS functional tests
2 parents 8d0896f + c0e9f25 commit 96ecb38

File tree

6 files changed

+24
-6
lines changed

6 files changed

+24
-6
lines changed

Diff for: bin/run-fun-test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
set -x
44
set -e
55

6-
docker-compose run --workdir="/mqdev" --rm dev ./bin/test "$@"
6+
docker-compose run --workdir="/mqdev" --rm dev ./bin/test "$@"

Diff for: bin/test

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ waitForService beanstalkd 11300 50
3737
waitForService gearmand 4730 50
3838
waitForService kafka 9092 50
3939
waitForService mongo 27017 50
40+
waitForService localstack 4576 50
4041

4142
php pkg/job-queue/Tests/Functional/app/console doctrine:database:create --if-not-exists
4243
php pkg/job-queue/Tests/Functional/app/console doctrine:schema:update --force

Diff for: docker-compose.yml

+14-3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ services:
1414
- google-pubsub
1515
- rabbitmqssl
1616
- mongo
17+
- localstack
1718
volumes:
1819
- './:/mqdev'
1920
environment:
@@ -34,9 +35,11 @@ services:
3435
- DOCTRINE_PASSWORD=rootpass
3536
- REDIS_HOST=redis
3637
- REDIS_PORT=6379
37-
- AWS_SQS_KEY=$ENQUEUE_AWS__SQS__KEY
38-
- AWS_SQS_SECRET=$ENQUEUE_AWS__SQS__SECRET
39-
- AWS_SQS_REGION=$ENQUEUE_AWS__SQS__REGION
38+
- AWS_SQS_KEY=key
39+
- AWS_SQS_SECRET=secret
40+
- AWS_SQS_REGION=us-east-1
41+
- AWS_SQS_ENDPOINT=http://localstack:4576
42+
- AWS_SQS_VERSION=latest
4043
- BEANSTALKD_HOST=beanstalkd
4144
- BEANSTALKD_PORT=11300
4245
- BEANSTALKD_DSN=beanstalk://beanstalkd:11300
@@ -109,6 +112,14 @@ services:
109112
ports:
110113
- "27017:27017"
111114

115+
localstack:
116+
image: 'localstack/localstack:latest'
117+
ports:
118+
- '4576:4576'
119+
environment:
120+
HOSTNAME_EXTERNAL: 'localstack'
121+
SERVICES: 'sqs'
122+
112123
volumes:
113124
mysql-data:
114125
driver: local

Diff for: pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ parameters:
22
locale: 'en'
33
secret: 'ThisTokenIsNotSoSecretChangeIt'
44
env(AWS_SQS_REGION): 'us-east-1'
5+
env(AWS_SQS_VERSION): 'latest'
56
env(AWS_SQS_KEY): 'key'
67
env(AWS_SQS_SECRET): 'secret'
8+
env(AWS_SQS_ENDPOINT): 'http://localstack:4576'
79

810
framework:
911
#esi: ~
@@ -41,8 +43,9 @@ services:
4143
class: Aws\Sqs\SqsClient
4244
arguments:
4345
-
46+
endpoint: '%env(AWS_SQS_ENDPOINT)%'
4447
region: '%env(AWS_SQS_REGION)%'
45-
version: '2012-11-05'
48+
version: '%env(AWS_SQS_VERSION)%'
4649
credentials:
4750
key: '%env(AWS_SQS_KEY)%'
4851
secret: '%env(AWS_SQS_SECRET)%'

Diff for: pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php

+1
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ public function provideEnqueueConfigs()
201201
'key' => getenv('AWS_SQS_KEY'),
202202
'secret' => getenv('AWS_SQS_SECRET'),
203203
'region' => getenv('AWS_SQS_REGION'),
204+
'endpoint' => getenv('AWS_SQS_ENDPOINT'),
204205
],
205206
],
206207
]];

Diff for: pkg/test/SqsExtension.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ trait SqsExtension
1212
*/
1313
private function buildSqsContext()
1414
{
15-
if (false == getenv('AWS_SQS_KEY')) {
15+
if (false == getenv('AWS_SQS_ENDPOINT') && false == getenv('AWS_SQS_KEY')) {
1616
throw new \PHPUnit_Framework_SkippedTestError('Functional tests are not allowed in this environment');
1717
}
1818

1919
$config = [
2020
'key' => getenv('AWS_SQS_KEY'),
2121
'secret' => getenv('AWS_SQS_SECRET'),
2222
'region' => getenv('AWS_SQS_REGION'),
23+
'version' => getenv('AWS_SQS_VERSION'),
24+
'endpoint' => getenv('AWS_SQS_ENDPOINT'),
2325
'lazy' => false,
2426
];
2527

0 commit comments

Comments
 (0)