diff options
author | John Duarte <john.duarte@puppetlabs.com> | 2014-05-19 11:53:54 -0700 |
---|---|---|
committer | John Duarte <john.duarte@puppetlabs.com> | 2014-05-19 11:53:54 -0700 |
commit | d6b22213f2cea9b58d5e2fa48f4fea2227c184ef (patch) | |
tree | 95bf2b79f6f3c15189726f256028d88deff04bc5 /spec/acceptance/git_clone_protocols_spec.rb | |
parent | 97e8b02b1d803d59f02a8fea1b86750694b5d538 (diff) | |
download | puppet-vcsrepo-d6b22213f2cea9b58d5e2fa48f4fea2227c184ef.tar.gz puppet-vcsrepo-d6b22213f2cea9b58d5e2fa48f4fea2227c184ef.tar.bz2 |
Move protocol tests to beaker suite
The protocol tests are more closely aligned with the rest of the beaker test
suite. The beaker tests have received more vetting, so the setup and teardown
process should be less prone to failure on repeated execution.
Diffstat (limited to 'spec/acceptance/git_clone_protocols_spec.rb')
-rw-r--r-- | spec/acceptance/git_clone_protocols_spec.rb | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/spec/acceptance/git_clone_protocols_spec.rb b/spec/acceptance/git_clone_protocols_spec.rb deleted file mode 100644 index 4d9129e..0000000 --- a/spec/acceptance/git_clone_protocols_spec.rb +++ /dev/null @@ -1,230 +0,0 @@ -require 'spec_helper_acceptance' - -hosts.each do |host| - - describe 'clones a repo with git' do - tmpdir = host.tmpdir('vcsrepo') - - before(:all) do - # {{{ setup - apply_manifest_on(host, "user{'testuser': ensure => present, managehome => true }") - apply_manifest_on(host, "user{'vagrant': ensure => present, }") - # install git - install_package(host, 'git') - install_package(host, 'git-daemon') - # create ssh keys - on(host, 'mkdir -p /home/testuser/.ssh') - on(host, 'ssh-keygen -q -t rsa -f /root/.ssh/id_rsa -N ""') - - # copy public key to authorized_keys - on(host, 'cat /root/.ssh/id_rsa.pub >> /home/testuser/.ssh/authorized_keys') - on(host, 'echo -e "Host *\n\tStrictHostKeyChecking no\n" >> /home/testuser/.ssh/config') - on(host, 'echo -e "Host *\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config') - on(host, 'chown -R testuser:testuser /home/testuser/.ssh') - on(host, 'chown -R root:root /root/.ssh') - - # create git repo - my_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) - scp_to(host, "#{my_root}/acceptance/files/create_git_repo.sh", tmpdir) - on(host, "cd #{tmpdir} && ./create_git_repo.sh") - - # copy ssl keys - scp_to(host, "#{my_root}/acceptance/files/server.crt", tmpdir) - scp_to(host, "#{my_root}/acceptance/files/server.key", tmpdir) - # }}} - end - - after(:all) do - # {{{ teardown - apply_manifest_on(host, "user{'testuser': ensure => absent, managehome => true }") - apply_manifest_on(host, "file{'/root/.ssh/id_rsa': ensure => absent, force => true }") - apply_manifest_on(host, "file{'/root/.ssh/id_rsa.pub': ensure => absent, force => true }") - # }}} - end - - - #--------------- TESTS ----------------------# - - context 'using local protocol (file URL)' do - before(:all) do - apply_manifest_on(host, "file {'#{tmpdir}/testrepo': ensure => directory, purge => true, recurse => true, recurselimit => 1, force => true; }") - end - - it 'should have HEAD pointing to master' do - pp = <<-EOS - vcsrepo { "#{tmpdir}/testrepo": - ensure => present, - provider => git, - source => "file://#{tmpdir}/testrepo.git", - } - EOS - - # Run it twice and test for idempotency - apply_manifest_on(host, pp, :catch_failures => true) - apply_manifest_on(host, pp, :catch_changes => true) - end - - describe file("#{tmpdir}/testrepo/.git/HEAD") do - it { should contain 'ref: refs/heads/master' } - end - - end - - context 'using local protocol (file path)' do - before(:all) do - apply_manifest_on(host, "file {'#{tmpdir}/testrepo': ensure => directory, purge => true, recurse => true, recurselimit => 1, force => true; }") - end - - it 'should have HEAD pointing to master' do - pp = <<-EOS - vcsrepo { "#{tmpdir}/testrepo": - ensure => present, - provider => git, - source => "#{tmpdir}/testrepo.git", - } - EOS - - # Run it twice and test for idempotency - apply_manifest_on(host, pp, :catch_failures => true) - apply_manifest_on(host, pp, :catch_changes => true) - end - - describe file("#{tmpdir}/testrepo/.git/HEAD") do - it { should contain 'ref: refs/heads/master' } - end - - end - - context 'using git protocol' do - before(:all) do - apply_manifest_on(host, "file {'#{tmpdir}/testrepo': ensure => directory, purge => true, recurse => true, recurselimit => 1, force => true; }") - on(host, "nohup git daemon --detach --base-path=/#{tmpdir}") - end - - it 'should have HEAD pointing to master' do - pp = <<-EOS - vcsrepo { "#{tmpdir}/testrepo": - ensure => present, - provider => git, - source => "git://#{host}/testrepo.git", - } - EOS - - # Run it twice and test for idempotency - apply_manifest_on(host, pp, :catch_failures => true) - apply_manifest_on(host, pp, :catch_changes => true) - end - describe file("#{tmpdir}/testrepo/.git/HEAD") do - it { should contain 'ref: refs/heads/master' } - end - - after(:all) do - on(host, 'pkill -9 git') - end - end - - context 'using http protocol' do - before(:all) do - apply_manifest_on(host, "file {'#{tmpdir}/testrepo': ensure => directory, purge => true, recurse => true, recurselimit => 1, force => true; }") - daemon =<<-EOF - require 'webrick' - server = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => "#{tmpdir}") - WEBrick::Daemon.start - server.start - EOF - create_remote_file(host, '/tmp/daemon.rb', daemon) - on(host, "ruby /tmp/daemon.rb") - end - - it 'should have HEAD pointing to master' do - pp = <<-EOS - vcsrepo { "#{tmpdir}/testrepo": - ensure => present, - provider => git, - source => "http://#{host}:8000/testrepo.git", - } - EOS - - # Run it twice and test for idempotency - apply_manifest_on(host, pp, :catch_failures => true) - apply_manifest_on(host, pp, :catch_changes => true) - end - describe file("#{tmpdir}/testrepo/.git/HEAD") do - it { should contain 'ref: refs/heads/master' } - end - - after(:all) do - on(host, 'pkill -9 ruby') - end - end - - context 'using https protocol' do - before(:all) do - apply_manifest_on(host, "file {'#{tmpdir}/testrepo': ensure => directory, purge => true, recurse => true, recurselimit => 1, force => true; }") - daemon =<<-EOF - require 'webrick' - require 'webrick/https' - server = WEBrick::HTTPServer.new( - :Port => 8443, - :DocumentRoot => "#{tmpdir}", - :SSLEnable => true, - :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE, - :SSLCertificate => OpenSSL::X509::Certificate.new( File.open("#{tmpdir}/server.crt").read), - :SSLPrivateKey => OpenSSL::PKey::RSA.new( File.open("#{tmpdir}/server.key").read), - :SSLCertName => [ [ "CN",WEBrick::Utils::getservername ] ]) - WEBrick::Daemon.start - server.start - EOF - create_remote_file(host, '/tmp/daemon.rb', daemon) - on(host, "ruby /tmp/daemon.rb") - end - - it 'should have HEAD pointing to master' do - # howto whitelist ssl cert - pp = <<-EOS - vcsrepo { "#{tmpdir}/testrepo": - ensure => present, - provider => git, - source => "https://#{host}:8443/testrepo.git", - } - EOS - - # Run it twice and test for idempotency - apply_manifest_on(host, pp, :catch_failures => true) - apply_manifest_on(host, pp, :catch_changes => true) - end - - describe file("#{tmpdir}/testrepo/.git/HEAD") do - it { should contain 'ref: refs/heads/master' } - end - - after(:all) do - on(host, 'pkill -9 ruby') - end - end - - context 'using ssh protocol' do - before(:all) do - apply_manifest_on(host, "file {'#{tmpdir}/testrepo': ensure => directory, purge => true, recurse => true, recurselimit => 1, force => true; }") - end - it 'should have HEAD pointing to master' do - pp = <<-EOS - vcsrepo { "#{tmpdir}/testrepo": - ensure => present, - provider => git, - source => "ssh://root@#{host}#{tmpdir}/testrepo.git", - } - EOS - - # Run it twice and test for idempotency - apply_manifest_on(host, pp, :catch_failures => true) - apply_manifest_on(host, pp, :catch_changes => true) - end - - describe file("#{tmpdir}/testrepo/.git/HEAD") do - it { should contain 'ref: refs/heads/master' } - end - end - - end -end |