aws-int-test-rspec-helper 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 18cfb8f5bdd33b5ecfaa572e2afef3a4918fa37f
4
+ data.tar.gz: bfee8357072e8c882915e3ae0e262b9498b3eac8
5
+ SHA512:
6
+ metadata.gz: a938fa30a7e6cd510b4393a41e5e694166bb3471b5141befe6522c484a55d2fb3344da0022e236766619a14ff326751df9233cb2c87798d3454a20ed96138f65
7
+ data.tar.gz: 9189c28207c04103d2ef45f8f044be601ff205c000bb20552144afe9305e056ec355a41fa340e6b5d4df7c1d61ba9c831a6c0d5ffeb662ef5294f62ab39a8db1
@@ -0,0 +1,56 @@
1
+ require 'aws-sdk'
2
+ require 'cfndsl'
3
+ require 'rspec'
4
+
5
+ module AwsIntTestRspecHelper
6
+
7
+ def cleanup(cloudformation_stack_name)
8
+ Aws::CloudFormation::Client.new.delete_stack(stack_name: cloudformation_stack_name)
9
+ end
10
+
11
+ def stack(stack_name:,
12
+ path_to_stack:,
13
+ bindings: nil)
14
+
15
+ full_stack_name = "#{stack_name}#{Time.now.to_i}"
16
+
17
+ extras = []
18
+ unless bindings.nil?
19
+ temp_file = Tempfile.new('cfnstackfortesting')
20
+ temp_file.write bindings.to_yaml
21
+ temp_file.close
22
+
23
+ extras << [:yaml,File.expand_path(temp_file)]
24
+ end
25
+
26
+ verbose = false
27
+ model = CfnDsl::eval_file_with_extras(File.expand_path(path_to_stack),
28
+ extras,
29
+ verbose)
30
+
31
+ resource = Aws::CloudFormation::Resource.new
32
+ created_stack = resource.create_stack(stack_name: full_stack_name,
33
+ template_body: model.to_json,
34
+ disable_rollback: true,
35
+ capabilities: %w{CAPABILITY_IAM})
36
+
37
+ #need to provide more details to the waiter - or deal with more stack outcomes?
38
+ created_stack.wait_until(max_attempts:100, delay:15) {|stack| stack.stack_status == 'CREATE_COMPLETE' }
39
+
40
+ @stack_outputs = created_stack.outputs.inject({}) do |hash, output|
41
+ hash[output.output_key] = output.output_value
42
+ hash
43
+ end
44
+
45
+ full_stack_name
46
+ end
47
+
48
+
49
+ def stack_outputs
50
+ @stack_outputs
51
+ end
52
+ end
53
+
54
+ RSpec.configure do |c|
55
+ c.include AwsIntTestRspecHelper
56
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aws-int-test-rspec-helper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - someguy
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: aws-sdk
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 2.2.17
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.2.17
27
+ - !ruby/object:Gem::Dependency
28
+ name: cfndsl
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.4.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.4.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 3.4.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 3.4.0
55
+ description: RSpec helper to make integration testing in AWS a small bit more convenient
56
+ email:
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - lib/aws-int-test-rspec-helper.rb
62
+ homepage:
63
+ licenses: []
64
+ metadata: {}
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ requirements: []
80
+ rubyforge_project:
81
+ rubygems_version: 2.5.1
82
+ signing_key:
83
+ specification_version: 4
84
+ summary: aws-int-test-rspec-helper
85
+ test_files: []