features/step_definitions/git_steps.rb in stove-2.0.0 vs features/step_definitions/git_steps.rb in stove-3.0.0
- old
+ new
@@ -7,24 +7,61 @@
].join(' && ')
%x|#{cmd}|
end
+Given /^a GPG key exists/ do
+ gpg_home = File.join(scratch_dir, '.gnupg')
+ set_env('GNUPGHOME', gpg_home)
+ Dir.mkdir(gpg_home)
+ File.chmod(0700, gpg_home)
+ batch_path = File.join(gpg_home, 'batch')
+ File.write(batch_path, <<-EOH)
+%pubring #{File.join(gpg_home, 'keyring')}
+%secring #{File.join(gpg_home, 'keyring.sec')}
+Key-Type: DSA
+Key-Length: 832
+Subkey-Type: ELG-E
+Subkey-Length: 800
+Name-Real: Alan Smithee
+Name-Email: asmithee@example.com
+Expire-Date: 0
+%commit
+EOH
+ gpg_wrapper = File.join(gpg_home, 'gpg_wrapper')
+ File.write(gpg_wrapper, <<-EOH)
+#!/bin/sh
+gpg "--keyring=#{File.join(gpg_home, 'keyring')}" "--secret-keyring=#{File.join(gpg_home, 'keyring.sec')}" "$@"
+EOH
+ File.chmod(0755, gpg_wrapper)
+
+ cmd = [
+ "cd \"#{current_dir}\"",
+ "git config gpg.program #{gpg_wrapper}",
+ 'git config user.signingkey asmithee@example.com',
+ "gpg --quiet --batch --gen-key #{batch_path}",
+ ].join(' && ')
+
+ %x|#{cmd}|
+end
+
+
Then /^the git remote should( not)? have the commit "(.+)"$/ do |negate, message|
commits = git_commits(fake_git_remote)
if negate
expect(commits).to_not include(message)
else
expect(commits).to include(message)
end
end
-Then /^the git remote should( not)? have the tag "(.+)"$/ do |negate, tag|
+Then /^the git remote should( not)? have the( signed)? tag "(.+)"$/ do |negate, signed, tag|
tags = git_tags(fake_git_remote)
if negate
expect(tags).to_not include(tag)
else
expect(tags).to include(tag)
+ expect(git_tag_signature?(fake_git_remote, tag)).to be_truthy if signed
end
end