dockerspec 0.2.0 → 0.3.0

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.
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