-
Notifications
You must be signed in to change notification settings - Fork 0
/
spec_helper.rb
98 lines (73 loc) · 3.42 KB
/
spec_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# encoding: utf-8
RSpec.configure do |config|
config.mock_with :rr
end
# Configure VCR, this thing alows you to record HTTP traffic so you never
# Need to connect to a server. Tests run offline just fine!
require 'vcr'
VCR.configure do |c|
#c.allow_http_connections_when_no_cassette = true
c.cassette_library_dir = 'fixtures/vcr_cassettes'
c.hook_into :webmock # or :fakeweb
end
# Mocks a cli call using ` with rr.
# Takes a block to use as rr return block
# @param [Object] mock_object The object to mock
# @param [String] command The command to mock
def mock_cli_call(mock_object, command)
# To be able to mock ` (http://blog.astrails.com/2010/7/5/how-to-mock-backticks-operator-in-your-test-specs-using-rr)
mock(mock_object).__double_definition_create__.call(:`, command) { yield }
end
def move_the_testers_personal_ssh_key_out_of_way
if File.exists?(SSH_DIRECTORY + "/id_rsa")
@pattern_to_restore_privl = File.open(SSH_DIRECTORY + "/id_rsa","r").read # this test requires some juggling of files that may already exist.
File.open(GAS_DIRECTORY + "/temp_test","w+").puts @pattern_to_restore_privl
File.delete(SSH_DIRECTORY + "/id_rsa")
end
if File.exists?(SSH_DIRECTORY + "/id_rsa.pub")
@pattern_to_restore_publ = File.open(SSH_DIRECTORY + "/id_rsa.pub","r").read # We don't want to mess things up for the tester, so we will need to save these files and then delete them
File.open(GAS_DIRECTORY + "/temp_test.pub","w+").puts @pattern_to_restore_publ
File.delete(SSH_DIRECTORY + "/id_rsa.pub")
end
end
def restore_the_testers_ssh_key
if File.exists?(GAS_DIRECTORY + "/temp_test")
@pattern_to_restore_privl = File.open(GAS_DIRECTORY + "/temp_test","r").read # this test requires some juggling of files that may already exist.
File.open(SSH_DIRECTORY + "/id_rsa","w+").puts @pattern_to_restore_privl
File.delete(GAS_DIRECTORY + "/temp_test")
end
if File.exists?(GAS_DIRECTORY + "/temp_test.pub")
@pattern_to_restore_publ = File.open(GAS_DIRECTORY + "/temp_test.pub","r").read # We don't want to mess things up for the tester, so we will need to save these files and then delete them
File.open(SSH_DIRECTORY + "/id_rsa.pub","w+").puts @pattern_to_restore_publ
File.delete(GAS_DIRECTORY + "/temp_test.pub")
end
end
def clean_out_ssh_directory
if File.exists?(SSH_DIRECTORY + "/id_rsa")
File.delete(SSH_DIRECTORY + "/id_rsa")
end
if File.exists?(SSH_DIRECTORY + "/id_rsa.pub")
File.delete(SSH_DIRECTORY + "/id_rsa.pub")
end
end
def clean_out_gas_directory(nickname)
if File.exists?(GAS_DIRECTORY + "/#{nickname}_id_rsa")
File.delete(GAS_DIRECTORY + "/#{nickname}_id_rsa")
end
if File.exists?(SSH_DIRECTORY + "/#{nickname}_id_rsa.pub")
File.delete(@ssh_dir + "/#{nickname}_id_rsa.pub")
end
end
def create_user_no_git(nickname, name, email)
Gas::Ssh.stub!(:user_wants_gas_to_handle_rsa_keys?).and_return(true)
#Gas::Ssh.stub!(:user_wants_to_use_key_already_in_ssh?).and_return(false)
Gas::Ssh.stub!(:user_wants_to_install_key_to_github?).and_return(false)
Gas.add(nickname,name,email)
Gas::Ssh.unstub!(:user_wants_gas_to_handle_rsa_keys?)
#Gas::Ssh.unstub!(:user_wants_to_use_key_already_in_ssh?)
Gas::Ssh.unstub!(:user_wants_to_install_key_to_github?)
end
# toasts ssh keys for a given nickname and removal from gas.authors
def delete_user_no_git(nickname)
Gas.delete(nickname)
end