dockerspec 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/LICENSE +1 -1
  4. data/README.md +190 -24
  5. data/Rakefile +60 -6
  6. data/TODO.md +3 -2
  7. data/lib/dockerspec.rb +1 -2
  8. data/lib/dockerspec/builder.rb +13 -6
  9. data/lib/dockerspec/builder/config_helpers.rb +8 -3
  10. data/lib/dockerspec/builder/logger/ci.rb +2 -2
  11. data/lib/dockerspec/builder/matchers.rb +32 -51
  12. data/lib/dockerspec/configuration.rb +188 -0
  13. data/lib/dockerspec/docker_exception_parser.rb +2 -2
  14. data/lib/dockerspec/engine/base.rb +156 -0
  15. data/lib/dockerspec/engine/infrataster.rb +87 -0
  16. data/lib/dockerspec/engine/specinfra.rb +130 -0
  17. data/lib/dockerspec/engine/specinfra/backend.rb +163 -0
  18. data/lib/dockerspec/{serverspec/specinfra_hack.rb → engine/specinfra/backend_hack.rb} +17 -3
  19. data/lib/dockerspec/engine_list.rb +150 -0
  20. data/lib/dockerspec/exceptions.rb +13 -0
  21. data/lib/dockerspec/helper/multiple_sources_description.rb +3 -3
  22. data/lib/dockerspec/helper/rspec_example_helpers.rb +86 -6
  23. data/lib/dockerspec/infrataster.rb +26 -0
  24. data/lib/dockerspec/rspec.rb +21 -0
  25. data/lib/dockerspec/{rspec_configuration.rb → rspec/configuration.rb} +1 -1
  26. data/lib/dockerspec/rspec/resources.rb +602 -0
  27. data/lib/dockerspec/rspec/resources/its_container.rb +110 -0
  28. data/lib/dockerspec/{rspec_settings.rb → rspec/settings.rb} +5 -1
  29. data/lib/dockerspec/runner.rb +2 -357
  30. data/lib/dockerspec/runner/base.rb +367 -0
  31. data/lib/dockerspec/runner/compose.rb +322 -0
  32. data/lib/dockerspec/runner/docker.rb +302 -0
  33. data/lib/dockerspec/runner/serverspec.rb +21 -0
  34. data/lib/dockerspec/runner/serverspec/base.rb +185 -0
  35. data/lib/dockerspec/runner/serverspec/compose.rb +106 -0
  36. data/lib/dockerspec/runner/serverspec/docker.rb +116 -0
  37. data/lib/dockerspec/runner/serverspec/rspec.rb +20 -0
  38. data/lib/dockerspec/{serverspec/rspec_settings.rb → runner/serverspec/rspec/settings.rb} +1 -1
  39. data/lib/dockerspec/serverspec.rb +12 -2
  40. data/lib/dockerspec/version.rb +1 -1
  41. data/spec/spec_helper.rb +6 -2
  42. metadata +84 -15
  43. data/lib/dockerspec/rspec_assertions.rb +0 -54
  44. data/lib/dockerspec/rspec_resources.rb +0 -203
  45. data/lib/dockerspec/serverspec/rspec_resources.rb +0 -179
  46. data/lib/dockerspec/serverspec/runner.rb +0 -305
  47. data/lib/dockerspec/serverspec/specinfra_backend.rb +0 -128
@@ -1,128 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Author:: Xabier de Zuazo (<xabier@zuazo.org>)
4
- # Copyright:: Copyright (c) 2015 Xabier de Zuazo
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require 'specinfra/backend/base'
21
- require 'dockerspec/serverspec/specinfra_hack'
22
-
23
- module Dockerspec
24
- module Serverspec
25
- #
26
- # A class to handle the underlying Specinfra backend.
27
- #
28
- # This class saves Specinfra instance in internally and then it is able
29
- # to recover it from there and setup the running environment accordingly.
30
- #
31
- # This class uses a small hack in the Specinfra class to reset its internal
32
- # singleton instance.
33
- #
34
- class SpecinfraBackend
35
- #
36
- # The SpecinfraBackend constructor.
37
- #
38
- # @param backend [Symbol, Specinfra::Backend::Base, Class] The backend
39
- # can be the backend name as a symbol, a Specinfra backend object or
40
- # a Specinfra backend class.
41
- #
42
- # @api public
43
- #
44
- def initialize(backend)
45
- @backend = backend
46
- end
47
-
48
- #
49
- # Saves the Specinfra backend instance reference internally.
50
- #
51
- # @return void
52
- #
53
- # @api public
54
- #
55
- def save
56
- @saved_backend_instance = backend_instance
57
- end
58
-
59
- #
60
- # Restores the Specinfra backend instance.
61
- #
62
- # @return void
63
- #
64
- # @api public
65
- #
66
- def restore
67
- instance_set(@saved_backend_instance)
68
- end
69
-
70
- #
71
- # Resets the Specinfra backend.
72
- #
73
- # @return void
74
- #
75
- # @api public
76
- #
77
- def reset
78
- instance_set(nil)
79
- end
80
-
81
- protected
82
-
83
- #
84
- # Sets the Specinfra backend.
85
- #
86
- # Used by {.load}.
87
- #
88
- # @param instance [Specinfra::Backend::Base] The Specinfra backend
89
- # object.
90
- #
91
- # @return void
92
- #
93
- # @api private
94
- #
95
- def instance_set(instance)
96
- backend_class.instance_set(instance)
97
- end
98
-
99
- #
100
- # Returns the current Specinfra backend object.
101
- #
102
- # @return [Specinfra::Backend::Base] The Specinfra backend object.
103
- #
104
- # @api private
105
- #
106
- def backend_instance
107
- backend_class.instance
108
- end
109
-
110
- #
111
- # Returns the current Specinfra backend class.
112
- #
113
- # @return [Class] The Specinfra backend class.
114
- #
115
- # @api private
116
- #
117
- def backend_class
118
- @backend_class ||= begin
119
- if Class == @backend.class && @backend <= Specinfra::Backend::Base
120
- return @backend
121
- end
122
- return @backend.class if @backend.is_a?(Specinfra::Backend::Base)
123
- Specinfra::Backend.const_get("#{@backend.to_s.to_camel_case}")
124
- end
125
- end
126
- end
127
- end
128
- end