Skip to content

Commit

Permalink
adding acceptance tests for multiple docker-compose files
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark Wilson committed Sep 25, 2018
1 parent 840963d commit a726a5f
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 40 deletions.
64 changes: 32 additions & 32 deletions spec/acceptance/compose_v3_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require 'spec_helper_acceptance'
require 'pry'

if fact('osfamily') == 'windows'
install_dir = '/cygdrive/c/Program Files/Docker'
Expand Down Expand Up @@ -29,10 +30,10 @@ class { 'docker::compose':
it 'should have docker compose installed' do
shell('docker-compose --help', :acceptable_exit_codes => [0])
end

before(:all) do
@install = <<-code
docker_compose { '#{tmp_path}/docker-compose-v3.yml':
docker_compose { 'web':
compose_files => ['#{tmp_path}/docker-compose-v3.yml'],
ensure => present,
}
code
Expand All @@ -44,49 +45,48 @@ class { 'docker::compose':
end

it 'should find a docker container' do
shell('docker inspect tmp_compose_test_1', :acceptable_exit_codes => [0])
shell('docker inspect web_compose_test_1', :acceptable_exit_codes => [0])
end
end

context 'multi compose file override' do
context 'creating compose projects with multi compose files' do
before(:all) do
@install = <<-code
docker_compose { 'override_test':
@install = <<-pp1
docker_compose { 'web1':
compose_files => ['#{tmp_path}/docker-compose-v3.yml', '#{tmp_path}/docker-compose-override-v3.yml'],
ensure => present,
}
code
apply_manifest(@install, :catch_failures=>true)
end
pp1

it 'should be idempotent' do
apply_manifest(@install, :catch_changes=>true)
apply_manifest(@install, :catch_failures=>true)
end

it 'should find container with debian tag' do
shell('docker inspect tmp_compose_test', :acceptable_exit_codes => [0])
shell('docker inspect web1_compose_test_1 | grep debian', :acceptable_exit_codes => [0])
end
end

end

context 'Destroying compose v3 projects' do
context 'Destroying project with multiple compose files' do
before(:all) do
install = <<-code
docker_compose { '#{tmp_path}/docker-compose-v3.yml':
@install = <<-pp1
docker_compose { 'web1':
compose_files => ['#{tmp_path}/docker-compose-v3.yml', '#{tmp_path}/docker-compose-override-v3.yml'],
ensure => present,
}
code
apply_manifest(install, :catch_failures=>true)
@uninstall = <<-code
docker_compose { '#{tmp_path}/docker-compose-v3.yml':
pp1

@destroy = <<-pp2
docker_compose { 'web1':
compose_files => ['#{tmp_path}/docker-compose-v3.yml', '#{tmp_path}/docker-compose-override-v3.yml'],
ensure => absent,
}
code
apply_manifest(@uninstall, :catch_failures=>true)
pp2
apply_manifest(@install, :catch_failures=>true)
apply_manifest(@destroy, :catch_failures=>true)
end

it 'should be idempotent' do
apply_manifest(@uninstall, :catch_changes=>true)
apply_manifest(@destroy, :catch_changes=>true)
end

it 'should not find a docker container' do
Expand All @@ -98,9 +98,9 @@ class { 'docker::compose':
before(:all) do
@version = '1.21.2'
@pp = <<-code
class { 'docker::compose':
version => '#{@version}',
}
class { 'docker::compose':
version => '#{@version}',
}
code
apply_manifest(@pp, :catch_failures=>true)
end
Expand All @@ -120,10 +120,10 @@ class { 'docker::compose':
before(:all) do
@version = '1.21.2'
@pp = <<-code
class { 'docker::compose':
ensure => absent,
version => '#{@version}',
}
class { 'docker::compose':
ensure => absent,
version => '#{@version}',
}
code
apply_manifest(@pp, :catch_failures=>true)
end
Expand All @@ -145,4 +145,4 @@ class { 'docker::compose': }
apply_manifest(install_code, :catch_failures=>true)
end
end
end
end
16 changes: 8 additions & 8 deletions spec/spec_helper_acceptance.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,19 +104,19 @@ def retry_on_error_matching(max_retry_count = 3, retry_wait_interval_secs = 5, e
command: /bin/sh -c "while true; do echo hello world; sleep 1; done"
EOS
docker_compose_content_v3 = <<-EOS
version: "3"
version: "3.4"
services:
compose_test:
image: ubuntu:14.04
command: /bin/sh -c "while true; do echo hello world; sleep 1; done"
EOS
docker_compose_override_content_v3 = <<-EOS
version: "3"
docker_compose_override_v3 = <<-EOS
version: "3.4"
services:
compose_test:
image: debian: jessie
command: /bin/sh -c "while true; do echo hello world; sleep 1; done"
EOS
compose_test:
image: debian:jessie
command: /bin/sh -c "while true; do echo hello world; sleep 1; done"
EOS
docker_compose_content_v3_windows = <<-EOS
version: "3"
services:
Expand All @@ -134,7 +134,7 @@ def retry_on_error_matching(max_retry_count = 3, retry_wait_interval_secs = 5, e
create_remote_file(host, "/tmp/docker-compose-v3.yml", docker_compose_content_v3_windows)
else
create_remote_file(host, "/tmp/docker-compose-v3.yml", docker_compose_content_v3)
create_remote_file(host, "/tmp/docker-compose-override-v3.yml", docker_compose_override_content_v3)
create_remote_file(host, "/tmp/docker-compose-override-v3.yml", docker_compose_override_v3)
end

if fact_on(host, 'osfamily') == 'windows'
Expand Down

0 comments on commit a726a5f

Please sign in to comment.