puppet 0.24.1 → 0.24.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (266) hide show
  1. data/CHANGELOG +94 -0
  2. data/Rakefile +0 -4
  3. data/bin/puppet +18 -10
  4. data/bin/puppetd +1 -1
  5. data/bin/puppetdoc +14 -4
  6. data/bin/puppetmasterd +1 -1
  7. data/bin/puppetrun +3 -8
  8. data/bin/ralsh +12 -11
  9. data/conf/freebsd/puppetd +1 -1
  10. data/conf/freebsd/puppetmasterd +1 -1
  11. data/conf/gentoo/puppet/puppet.conf +29 -0
  12. data/conf/namespaceauth.conf +20 -0
  13. data/conf/redhat/puppet.spec +4 -1
  14. data/conf/solaris/smf/puppetd.xml +1 -1
  15. data/conf/solaris/smf/puppetmasterd.xml +1 -1
  16. data/conf/suse/puppet.spec +10 -8
  17. data/examples/root/etc/puppet/{puppetmasterd.conf → puppet.conf} +6 -3
  18. data/ext/logcheck/puppet +7 -0
  19. data/ext/puppet-test +28 -5
  20. data/lib/puppet.rb +2 -1
  21. data/lib/puppet/defaults.rb +12 -5
  22. data/lib/puppet/dsl.rb +43 -45
  23. data/lib/puppet/external/{gratr/rdot.rb → dot.rb} +0 -0
  24. data/lib/puppet/external/nagios.rb +50 -0
  25. data/lib/puppet/external/nagios/base.rb +421 -0
  26. data/lib/puppet/external/nagios/parser.rb +816 -0
  27. data/lib/puppet/file_serving/file_base.rb +16 -3
  28. data/lib/puppet/file_serving/metadata.rb +29 -11
  29. data/lib/puppet/indirector/terminus.rb +1 -0
  30. data/lib/puppet/metatype/closure.rb +4 -0
  31. data/lib/puppet/metatype/evaluation.rb +2 -17
  32. data/lib/puppet/metatype/metaparams.rb +1 -1
  33. data/lib/puppet/network.rb +3 -0
  34. data/lib/puppet/network/client.rb +4 -5
  35. data/lib/puppet/network/client/master.rb +10 -7
  36. data/lib/puppet/network/handler/fileserver.rb +22 -45
  37. data/lib/puppet/network/http_pool.rb +3 -0
  38. data/lib/puppet/network/http_server/mongrel.rb +7 -1
  39. data/lib/puppet/network/http_server/webrick.rb +4 -3
  40. data/lib/puppet/network/xmlrpc/client.rb +12 -1
  41. data/lib/puppet/node/catalog.rb +51 -40
  42. data/lib/puppet/parser/ast.rb +27 -49
  43. data/lib/puppet/parser/ast/astarray.rb +5 -24
  44. data/lib/puppet/parser/ast/caseopt.rb +4 -4
  45. data/lib/puppet/parser/ast/casestatement.rb +4 -5
  46. data/lib/puppet/parser/ast/collection.rb +3 -5
  47. data/lib/puppet/parser/ast/collexpr.rb +3 -5
  48. data/lib/puppet/parser/ast/definition.rb +148 -159
  49. data/lib/puppet/parser/ast/else.rb +2 -3
  50. data/lib/puppet/parser/ast/function.rb +3 -10
  51. data/lib/puppet/parser/ast/hostclass.rb +66 -59
  52. data/lib/puppet/parser/ast/ifstatement.rb +4 -5
  53. data/lib/puppet/parser/ast/leaf.rb +6 -6
  54. data/lib/puppet/parser/ast/node.rb +26 -58
  55. data/lib/puppet/parser/ast/resource.rb +5 -7
  56. data/lib/puppet/parser/ast/resource_defaults.rb +2 -4
  57. data/lib/puppet/parser/ast/resource_override.rb +4 -6
  58. data/lib/puppet/parser/ast/resource_reference.rb +2 -4
  59. data/lib/puppet/parser/ast/resourceparam.rb +2 -4
  60. data/lib/puppet/parser/ast/selector.rb +5 -6
  61. data/lib/puppet/parser/ast/tag.rb +2 -4
  62. data/lib/puppet/parser/ast/vardef.rb +3 -4
  63. data/lib/puppet/parser/collector.rb +5 -5
  64. data/lib/puppet/parser/{compile.rb → compiler.rb} +69 -107
  65. data/lib/puppet/parser/functions.rb +3 -3
  66. data/lib/puppet/parser/interpreter.rb +32 -23
  67. data/lib/puppet/parser/lexer.rb +391 -282
  68. data/lib/puppet/parser/parser.rb +5 -4
  69. data/lib/puppet/parser/parser_support.rb +3 -6
  70. data/lib/puppet/parser/resource.rb +24 -36
  71. data/lib/puppet/parser/resource/param.rb +1 -1
  72. data/lib/puppet/parser/resource/reference.rb +7 -3
  73. data/lib/puppet/parser/scope.rb +12 -7
  74. data/lib/puppet/parser/templatewrapper.rb +1 -1
  75. data/lib/puppet/pgraph.rb +9 -98
  76. data/lib/puppet/provider/interface/redhat.rb +65 -65
  77. data/lib/puppet/provider/mount/parsed.rb +1 -1
  78. data/lib/puppet/provider/naginator.rb +55 -0
  79. data/lib/puppet/provider/nameservice/directoryservice.rb +6 -7
  80. data/lib/puppet/provider/package/fink.rb +0 -2
  81. data/lib/puppet/provider/package/gem.rb +9 -5
  82. data/lib/puppet/provider/package/openbsd.rb +1 -1
  83. data/lib/puppet/provider/package/pkgdmg.rb +3 -8
  84. data/lib/puppet/provider/package/portage.rb +4 -4
  85. data/lib/puppet/provider/package/yumhelper.py +8 -6
  86. data/lib/puppet/provider/parsedfile.rb +7 -1
  87. data/lib/puppet/provider/service/debian.rb +2 -0
  88. data/lib/puppet/provider/service/gentoo.rb +4 -0
  89. data/lib/puppet/provider/service/init.rb +1 -1
  90. data/lib/puppet/provider/sshkey/parsed.rb +2 -0
  91. data/lib/puppet/provider/user/useradd.rb +1 -1
  92. data/lib/puppet/rails.rb +4 -0
  93. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +17 -0
  94. data/lib/puppet/rails/fact_value.rb +4 -0
  95. data/lib/puppet/rails/host.rb +1 -2
  96. data/lib/puppet/rails/param_value.rb +4 -0
  97. data/lib/puppet/rails/resource_tag.rb +4 -0
  98. data/lib/puppet/rails/source_file.rb +4 -1
  99. data/lib/puppet/relationship.rb +5 -1
  100. data/lib/puppet/reports/tagmail.rb +12 -1
  101. data/lib/puppet/resource_reference.rb +1 -1
  102. data/lib/puppet/simple_graph.rb +78 -11
  103. data/lib/puppet/sslcertificates.rb +1 -1
  104. data/lib/puppet/sslcertificates/ca.rb +3 -3
  105. data/lib/puppet/transaction.rb +7 -4
  106. data/lib/puppet/transportable.rb +1 -1
  107. data/lib/puppet/type.rb +3 -10
  108. data/lib/puppet/type/cron.rb +18 -0
  109. data/lib/puppet/type/exec.rb +18 -12
  110. data/lib/puppet/type/{pfile.rb → file.rb} +66 -84
  111. data/lib/puppet/type/file/checksum.rb +271 -0
  112. data/lib/puppet/type/{pfile → file}/content.rb +10 -15
  113. data/lib/puppet/type/{pfile → file}/ensure.rb +15 -8
  114. data/lib/puppet/type/{pfile → file}/group.rb +0 -0
  115. data/lib/puppet/type/{pfile → file}/mode.rb +0 -0
  116. data/lib/puppet/type/{pfile → file}/owner.rb +0 -0
  117. data/lib/puppet/type/{pfile → file}/source.rb +34 -48
  118. data/lib/puppet/type/{pfile → file}/target.rb +0 -0
  119. data/lib/puppet/type/{pfile → file}/type.rb +0 -0
  120. data/lib/puppet/type/{pfilebucket.rb → filebucket.rb} +0 -0
  121. data/lib/puppet/type/host.rb +13 -0
  122. data/lib/puppet/type/mailalias.rb +1 -1
  123. data/lib/puppet/type/nagios_command.rb +3 -0
  124. data/lib/puppet/type/nagios_contact.rb +3 -0
  125. data/lib/puppet/type/nagios_contactgroup.rb +3 -0
  126. data/lib/puppet/type/nagios_host.rb +3 -0
  127. data/lib/puppet/type/nagios_hostextinfo.rb +3 -0
  128. data/lib/puppet/type/nagios_hostgroup.rb +3 -0
  129. data/lib/puppet/type/nagios_hostgroupescalation.rb +3 -0
  130. data/lib/puppet/type/nagios_service.rb +3 -0
  131. data/lib/puppet/type/nagios_servicedependency.rb +3 -0
  132. data/lib/puppet/type/nagios_serviceescalation.rb +3 -0
  133. data/lib/puppet/type/nagios_serviceextinfo.rb +3 -0
  134. data/lib/puppet/type/nagios_timeperiod.rb +3 -0
  135. data/lib/puppet/type/package.rb +4 -12
  136. data/lib/puppet/type/service.rb +9 -0
  137. data/lib/puppet/type/sshkey.rb +3 -3
  138. data/lib/puppet/util/autoload.rb +5 -5
  139. data/lib/puppet/util/checksums.rb +51 -13
  140. data/lib/puppet/util/constant_inflector.rb +14 -0
  141. data/lib/puppet/util/filetype.rb +1 -1
  142. data/lib/puppet/util/graph.rb +3 -9
  143. data/lib/puppet/util/nagios_maker.rb +57 -0
  144. data/lib/puppet/util/settings.rb +19 -16
  145. data/lib/puppet/util/tagging.rb +39 -0
  146. data/test/executables/puppetbin.rb +17 -0
  147. data/test/language/ast.rb +8 -58
  148. data/test/language/ast/casestatement.rb +3 -3
  149. data/test/language/ast/resource.rb +6 -7
  150. data/test/language/ast/resource_reference.rb +12 -12
  151. data/test/language/ast/selector.rb +2 -2
  152. data/test/language/ast/variable.rb +2 -2
  153. data/test/language/functions.rb +24 -24
  154. data/test/language/parser.rb +20 -8
  155. data/test/language/resource.rb +5 -42
  156. data/test/language/scope.rb +21 -37
  157. data/test/language/snippets.rb +7 -0
  158. data/test/lib/puppettest.rb +28 -14
  159. data/test/lib/puppettest/parsertesting.rb +10 -10
  160. data/test/lib/puppettest/support/resources.rb +1 -1
  161. data/test/network/client/master.rb +10 -0
  162. data/test/network/handler/fileserver.rb +51 -49
  163. data/test/network/server/webrick.rb +1 -1
  164. data/test/other/dsl.rb +3 -4
  165. data/test/other/transactions.rb +6 -4
  166. data/test/rails/ast.rb +2 -2
  167. data/test/rails/configuration.rb +1 -1
  168. data/test/rails/railsparameter.rb +2 -0
  169. data/test/rails/railsresource.rb +1 -0
  170. data/test/ral/manager/type.rb +4 -4
  171. data/test/ral/providers/cron/crontab.rb +3 -1
  172. data/test/ral/providers/package.rb +1 -1
  173. data/test/ral/{types → type}/basic.rb +2 -2
  174. data/test/ral/{types → type}/cron.rb +0 -0
  175. data/test/ral/{types → type}/exec.rb +42 -2
  176. data/test/ral/{types → type}/file.rb +34 -79
  177. data/test/ral/{types → type}/file/target.rb +0 -0
  178. data/test/ral/{types → type}/filebucket.rb +0 -0
  179. data/test/ral/{types → type}/fileignoresource.rb +0 -0
  180. data/test/ral/{types → type}/filesources.rb +8 -27
  181. data/test/ral/{types → type}/group.rb +0 -0
  182. data/test/ral/{types → type}/host.rb +16 -0
  183. data/test/ral/{types → type}/mailalias.rb +0 -0
  184. data/test/ral/{types → type}/parameter.rb +0 -0
  185. data/test/ral/{types → type}/port.rb +0 -0
  186. data/test/ral/{types → type}/property.rb +0 -0
  187. data/test/ral/{types → type}/resources.rb +0 -0
  188. data/test/ral/{types → type}/service.rb +0 -0
  189. data/test/ral/{types → type}/sshkey.rb +0 -0
  190. data/test/ral/{types → type}/tidy.rb +1 -0
  191. data/test/ral/{types → type}/user.rb +0 -0
  192. data/test/ral/{types → type}/yumrepo.rb +0 -0
  193. data/test/ral/{types → type}/zone.rb +0 -0
  194. data/test/util/autoload.rb +24 -5
  195. metadata +60 -107
  196. data/conf/gentoo/puppet/puppetca.conf +0 -29
  197. data/conf/gentoo/puppet/puppetd.conf +0 -29
  198. data/conf/gentoo/puppet/puppetmasterd.conf +0 -29
  199. data/examples/root/etc/puppet/puppetd.conf +0 -4
  200. data/lib/puppet/external/gratr.rb +0 -33
  201. data/lib/puppet/external/gratr/adjacency_graph.rb +0 -257
  202. data/lib/puppet/external/gratr/base.rb +0 -34
  203. data/lib/puppet/external/gratr/biconnected.rb +0 -116
  204. data/lib/puppet/external/gratr/chinese_postman.rb +0 -123
  205. data/lib/puppet/external/gratr/common.rb +0 -73
  206. data/lib/puppet/external/gratr/comparability.rb +0 -92
  207. data/lib/puppet/external/gratr/digraph.rb +0 -116
  208. data/lib/puppet/external/gratr/digraph_distance.rb +0 -185
  209. data/lib/puppet/external/gratr/dot.rb +0 -90
  210. data/lib/puppet/external/gratr/edge.rb +0 -145
  211. data/lib/puppet/external/gratr/graph.rb +0 -303
  212. data/lib/puppet/external/gratr/graph_api.rb +0 -83
  213. data/lib/puppet/external/gratr/import.rb +0 -44
  214. data/lib/puppet/external/gratr/labels.rb +0 -90
  215. data/lib/puppet/external/gratr/maximum_flow.rb +0 -64
  216. data/lib/puppet/external/gratr/search.rb +0 -409
  217. data/lib/puppet/external/gratr/strong_components.rb +0 -127
  218. data/lib/puppet/external/gratr/undirected_graph.rb +0 -153
  219. data/lib/puppet/rails/external/tagging/acts_as_taggable.rb +0 -62
  220. data/lib/puppet/rails/external/tagging/init.rb +0 -5
  221. data/lib/puppet/rails/external/tagging/tag.rb +0 -50
  222. data/lib/puppet/rails/external/tagging/tagging.rb +0 -12
  223. data/lib/puppet/rails/puppet_class.rb +0 -6
  224. data/lib/puppet/reference/node_source.rb +0 -9
  225. data/lib/puppet/reference/report.rb +0 -21
  226. data/lib/puppet/type/pfile/checksum.rb +0 -326
  227. data/test/language/ast/definition.rb +0 -166
  228. data/test/language/ast/hostclass.rb +0 -184
  229. data/test/language/compile.rb +0 -569
  230. data/test/language/lexer.rb +0 -276
  231. data/test/lib/mocha.rb +0 -19
  232. data/test/lib/mocha/any_instance_method.rb +0 -35
  233. data/test/lib/mocha/auto_verify.rb +0 -113
  234. data/test/lib/mocha/central.rb +0 -35
  235. data/test/lib/mocha/class_method.rb +0 -62
  236. data/test/lib/mocha/deprecation.rb +0 -22
  237. data/test/lib/mocha/exception_raiser.rb +0 -17
  238. data/test/lib/mocha/expectation.rb +0 -378
  239. data/test/lib/mocha/expectation_error.rb +0 -6
  240. data/test/lib/mocha/infinite_range.rb +0 -25
  241. data/test/lib/mocha/inspect.rb +0 -39
  242. data/test/lib/mocha/instance_method.rb +0 -8
  243. data/test/lib/mocha/is_a.rb +0 -9
  244. data/test/lib/mocha/metaclass.rb +0 -7
  245. data/test/lib/mocha/missing_expectation.rb +0 -27
  246. data/test/lib/mocha/mock.rb +0 -207
  247. data/test/lib/mocha/multiple_yields.rb +0 -20
  248. data/test/lib/mocha/no_yields.rb +0 -11
  249. data/test/lib/mocha/object.rb +0 -110
  250. data/test/lib/mocha/parameter_matchers.rb +0 -9
  251. data/test/lib/mocha/parameter_matchers/all_of.rb +0 -39
  252. data/test/lib/mocha/parameter_matchers/any_of.rb +0 -44
  253. data/test/lib/mocha/parameter_matchers/anything.rb +0 -30
  254. data/test/lib/mocha/parameter_matchers/has_entry.rb +0 -39
  255. data/test/lib/mocha/parameter_matchers/has_key.rb +0 -39
  256. data/test/lib/mocha/parameter_matchers/has_value.rb +0 -39
  257. data/test/lib/mocha/parameter_matchers/includes.rb +0 -37
  258. data/test/lib/mocha/pretty_parameters.rb +0 -28
  259. data/test/lib/mocha/return_values.rb +0 -31
  260. data/test/lib/mocha/setup_and_teardown.rb +0 -23
  261. data/test/lib/mocha/single_return_value.rb +0 -24
  262. data/test/lib/mocha/single_yield.rb +0 -18
  263. data/test/lib/mocha/standalone.rb +0 -32
  264. data/test/lib/mocha/stub.rb +0 -18
  265. data/test/lib/mocha/test_case_adapter.rb +0 -49
  266. data/test/lib/mocha/yield_parameters.rb +0 -31
@@ -1,276 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.dirname(__FILE__) + '/../lib/puppettest'
4
-
5
- require 'puppet'
6
- require 'puppet/parser/lexer'
7
- require 'puppettest'
8
-
9
- #%q{service("telnet") = \{
10
- # port => "23",
11
- # protocol => "tcp",
12
- # name => "telnet",
13
- #\}
14
- #} => [[:NAME, "service"], [:LPAREN, "("], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:RPAREN, ")"], [:EQUALS, "="], [:lbrace, "{"], [:NAME, "port"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "23"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "protocol"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "tcp"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "name"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:COMMA, ","], [:RBRACE, "}"]]
15
-
16
- class TestLexer < Test::Unit::TestCase
17
- include PuppetTest
18
- def setup
19
- super
20
- mklexer
21
- end
22
-
23
- def mklexer
24
- @lexer = Puppet::Parser::Lexer.new()
25
- end
26
-
27
- def test_simple_lex
28
- strings = {
29
- %q{\\} => [[:BACKSLASH,"\\"],[false,false]],
30
- %q{simplest scanner test} => [[:NAME,"simplest"],[:NAME,"scanner"],[:NAME,"test"],[false,false]],
31
- %q{returned scanner test
32
- } => [[:NAME,"returned"],[:NAME,"scanner"],[:NAME,"test"],[false,false]]
33
- }
34
- strings.each { |str,ary|
35
- @lexer.string = str
36
- assert_equal(
37
- ary,
38
- @lexer.fullscan()
39
- )
40
- }
41
- end
42
-
43
- def test_quoted_strings
44
- strings = {
45
- %q{a simple "scanner" test
46
- } => [[:NAME,"a"],[:NAME,"simple"],[:DQTEXT,"scanner"],[:NAME,"test"],[false,false]],
47
- %q{a simple 'single quote scanner' test
48
- } => [[:NAME,"a"],[:NAME,"simple"],[:SQTEXT,"single quote scanner"],[:NAME,"test"],[false,false]],
49
- %q{a harder 'a $b \c"'
50
- } => [[:NAME,"a"],[:NAME,"harder"],[:SQTEXT,'a $b \c"'],[false,false]],
51
- %q{a harder "scanner test"
52
- } => [[:NAME,"a"],[:NAME,"harder"],[:DQTEXT,"scanner test"],[false,false]],
53
- %q{a hardest "scanner \"test\""
54
- } => [[:NAME,"a"],[:NAME,"hardest"],[:DQTEXT,'scanner "test"'],[false,false]],
55
- %q{a hardestest "scanner \"test\"
56
- "
57
- } => [[:NAME,"a"],[:NAME,"hardestest"],[:DQTEXT,'scanner "test"
58
- '],[false,false]],
59
- %q{function("call")} => [[:NAME,"function"],[:LPAREN,"("],[:DQTEXT,'call'],[:RPAREN,")"],[false,false]]
60
- }
61
- strings.each { |str,array|
62
- @lexer.string = str
63
- assert_equal(
64
- array,
65
- @lexer.fullscan()
66
- )
67
- }
68
- end
69
-
70
- def test_errors
71
- strings = %w{
72
- ^
73
- }
74
- strings.each { |str|
75
- @lexer.string = str
76
- assert_raise(RuntimeError) {
77
- @lexer.fullscan()
78
- }
79
- }
80
- end
81
-
82
- def test_more_error
83
- assert_raise(TypeError) {
84
- @lexer.fullscan()
85
- }
86
- end
87
-
88
- def test_files
89
- textfiles() { |file|
90
- lexer = Puppet::Parser::Lexer.new()
91
- lexer.file = file
92
- assert_nothing_raised("Failed to lex %s" % file) {
93
- lexer.fullscan()
94
- }
95
- Puppet::Type.allclear
96
- }
97
- end
98
-
99
- def test_strings
100
- names = %w{this is a bunch of names}
101
- types = %w{Many Different Words A Word}
102
- words = %w{differently Cased words A a}
103
-
104
- names.each { |t|
105
- @lexer.string = t
106
- assert_equal(
107
- [[:NAME,t],[false,false]],
108
- @lexer.fullscan
109
- )
110
- }
111
- types.each { |t|
112
- @lexer.string = t
113
- assert_equal(
114
- [[:CLASSREF,t],[false,false]],
115
- @lexer.fullscan
116
- )
117
- }
118
- end
119
-
120
- def test_emptystring
121
- bit = '$var = ""'
122
-
123
- assert_nothing_raised {
124
- @lexer.string = bit
125
- }
126
-
127
- assert_nothing_raised {
128
- @lexer.fullscan
129
- }
130
- end
131
-
132
- def test_collectlexing
133
- {"@" => :AT, "<|" => :LCOLLECT, "|>" => :RCOLLECT}.each do |string, token|
134
- assert_nothing_raised {
135
- @lexer.string = string
136
- }
137
-
138
- ret = nil
139
- assert_nothing_raised {
140
- ret = @lexer.fullscan
141
- }
142
-
143
- assert_equal([[token, string],[false, false]], ret)
144
- end
145
- end
146
-
147
- def test_collectabletype
148
- string = "@type {"
149
-
150
- assert_nothing_raised {
151
- @lexer.string = string
152
- }
153
-
154
- ret = nil
155
- assert_nothing_raised {
156
- ret = @lexer.fullscan
157
- }
158
-
159
- assert_equal([[:AT, "@"], [:NAME, "type"], [:LBRACE, "{"], [false,false]],ret)
160
- end
161
-
162
- def test_namespace
163
- @lexer.string = %{class myclass}
164
-
165
- assert_nothing_raised {
166
- @lexer.fullscan
167
- }
168
-
169
- assert_equal("myclass", @lexer.namespace)
170
-
171
- assert_nothing_raised do
172
- @lexer.namepop
173
- end
174
-
175
- assert_equal("", @lexer.namespace)
176
-
177
- @lexer.string = "class base { class sub { class more"
178
-
179
- assert_nothing_raised {
180
- @lexer.fullscan
181
- }
182
-
183
- assert_equal("base::sub::more", @lexer.namespace)
184
-
185
- assert_nothing_raised do
186
- @lexer.namepop
187
- end
188
-
189
- assert_equal("base::sub", @lexer.namespace)
190
-
191
- # Now try it with some fq names
192
- mklexer
193
-
194
- @lexer.string = "class base { class sub::more {"
195
-
196
- assert_nothing_raised {
197
- @lexer.fullscan
198
- }
199
-
200
- assert_equal("base::sub::more", @lexer.namespace)
201
-
202
- assert_nothing_raised do
203
- @lexer.namepop
204
- end
205
-
206
- assert_equal("base", @lexer.namespace)
207
- end
208
-
209
- def test_indefine
210
- @lexer.string = %{define me}
211
-
212
- assert_nothing_raised {
213
- @lexer.scan { |t,s| }
214
- }
215
-
216
- assert(@lexer.indefine?, "Lexer not considered in define")
217
-
218
- # Now make sure we throw an error when trying to nest defines.
219
- assert_raise(Puppet::ParseError) do
220
- @lexer.string = %{define another}
221
- @lexer.scan { |t,s| }
222
- end
223
-
224
- assert_nothing_raised do
225
- @lexer.indefine = false
226
- end
227
-
228
- assert(! @lexer.indefine?, "Lexer still considered in define")
229
- end
230
-
231
- # Make sure the different qualified variables work.
232
- def test_variable
233
- ["$variable", "$::variable", "$qualified::variable", "$further::qualified::variable"].each do |string|
234
- @lexer.string = string
235
-
236
- assert_nothing_raised("Could not lex %s" % string) do
237
- @lexer.scan do |t, s|
238
- assert_equal(:VARIABLE, t, "did not get variable as token")
239
- assert_equal(string.sub(/^\$/, ''), s, "did not get correct string back")
240
- break
241
- end
242
- end
243
- end
244
- end
245
-
246
- # Make sure the expected stack works as it should
247
- def test_expected
248
- @lexer.string = "[a{"
249
- expected = @lexer.instance_variable_get("@expected")
250
- @lexer.scan {}
251
- assert_equal("}", @lexer.expected, "expected value is wrong")
252
-
253
- @lexer.string = "}"
254
- @lexer.scan {}
255
- assert_equal("]", @lexer.expected, "expected value is wrong after pop")
256
- end
257
-
258
- # #774
259
- def test_classref_token
260
- string = ["Foo", "::Foo","Foo::Bar","::Foo::Bar"]
261
-
262
- string.each do |foo|
263
- assert_nothing_raised {
264
- @lexer.string = foo
265
- }
266
-
267
- ret = nil
268
- assert_nothing_raised {
269
- ret = @lexer.fullscan
270
- }
271
-
272
- assert_equal([:CLASSREF, foo],ret[0], "Did not correctly tokenize '%s'" % foo)
273
- end
274
- end
275
- end
276
-
@@ -1,19 +0,0 @@
1
- require 'mocha_standalone'
2
- require 'mocha/test_case_adapter'
3
-
4
- require 'test/unit/testcase'
5
-
6
- module Test
7
-
8
- module Unit
9
-
10
- class TestCase
11
-
12
- include Mocha::Standalone
13
- include Mocha::TestCaseAdapter
14
-
15
- end
16
-
17
- end
18
-
19
- end
@@ -1,35 +0,0 @@
1
- require 'mocha/class_method'
2
-
3
- module Mocha
4
-
5
- class AnyInstanceMethod < ClassMethod
6
-
7
- def unstub
8
- remove_new_method
9
- restore_original_method
10
- stubbee.any_instance.reset_mocha
11
- end
12
-
13
- def mock
14
- stubbee.any_instance.mocha
15
- end
16
-
17
- def hide_original_method
18
- stubbee.class_eval "alias_method :#{hidden_method}, :#{method}" if stubbee.method_defined?(method)
19
- end
20
-
21
- def define_new_method
22
- stubbee.class_eval "def #{method}(*args, &block); self.class.any_instance.mocha.method_missing(:#{method}, *args, &block); end"
23
- end
24
-
25
- def remove_new_method
26
- stubbee.class_eval "remove_method :#{method}"
27
- end
28
-
29
- def restore_original_method
30
- stubbee.class_eval "alias_method :#{method}, :#{hidden_method}; remove_method :#{hidden_method}" if stubbee.method_defined?(hidden_method)
31
- end
32
-
33
- end
34
-
35
- end
@@ -1,113 +0,0 @@
1
- require 'mocha/mock'
2
-
3
- module Mocha # :nodoc:
4
-
5
- # Methods added to TestCase allowing creation of traditional mock objects.
6
- #
7
- # Mocks created this way will have their expectations automatically verified at the end of the test.
8
- #
9
- # See Mock for methods on mock objects.
10
- module AutoVerify
11
-
12
- def mocks # :nodoc:
13
- @mocks ||= []
14
- end
15
-
16
- def reset_mocks # :nodoc:
17
- @mocks = nil
18
- end
19
-
20
- # :call-seq: mock(name) -> mock object
21
- # mock(expected_methods = {}) -> mock object
22
- # mock(name, expected_methods = {}) -> mock object
23
- #
24
- # Creates a mock object.
25
- #
26
- # +name+ is a +String+ identifier for the mock object.
27
- #
28
- # +expected_methods+ is a +Hash+ with expected method name symbols as keys and corresponding return values as values.
29
- #
30
- # Note that (contrary to expectations set up by #stub) these expectations <b>must</b> be fulfilled during the test.
31
- # def test_product
32
- # product = mock('ipod_product', :manufacturer => 'ipod', :price => 100)
33
- # assert_equal 'ipod', product.manufacturer
34
- # assert_equal 100, product.price
35
- # # an error will be raised unless both Product#manufacturer and Product#price have been called
36
- # end
37
- def mock(*args)
38
- name, expectations = name_and_expectations_from_args(args)
39
- build_mock_with_expectations(:expects, expectations, name)
40
- end
41
-
42
- # :call-seq: stub(name) -> mock object
43
- # stub(stubbed_methods = {}) -> mock object
44
- # stub(name, stubbed_methods = {}) -> mock object
45
- #
46
- # Creates a mock object.
47
- #
48
- # +name+ is a +String+ identifier for the mock object.
49
- #
50
- # +stubbed_methods+ is a +Hash+ with stubbed method name symbols as keys and corresponding return values as values.
51
- #
52
- # Note that (contrary to expectations set up by #mock) these expectations <b>need not</b> be fulfilled during the test.
53
- # def test_product
54
- # product = stub('ipod_product', :manufacturer => 'ipod', :price => 100)
55
- # assert_equal 'ipod', product.manufacturer
56
- # assert_equal 100, product.price
57
- # # an error will not be raised even if Product#manufacturer and Product#price have not been called
58
- # end
59
- def stub(*args)
60
- name, expectations = name_and_expectations_from_args(args)
61
- build_mock_with_expectations(:stubs, expectations, name)
62
- end
63
-
64
- # :call-seq: stub_everything(name) -> mock object
65
- # stub_everything(stubbed_methods = {}) -> mock object
66
- # stub_everything(name, stubbed_methods = {}) -> mock object
67
- #
68
- # Creates a mock object that accepts calls to any method.
69
- #
70
- # By default it will return +nil+ for any method call.
71
- #
72
- # +name+ and +stubbed_methods+ work in the same way as for #stub.
73
- # def test_product
74
- # product = stub_everything('ipod_product', :price => 100)
75
- # assert_nil product.manufacturer
76
- # assert_nil product.any_old_method
77
- # assert_equal 100, product.price
78
- # end
79
- def stub_everything(*args)
80
- name, expectations = name_and_expectations_from_args(args)
81
- build_mock_with_expectations(:stub_everything, expectations, name)
82
- end
83
-
84
- def verify_mocks # :nodoc:
85
- mocks.each { |mock| mock.verify { yield if block_given? } }
86
- end
87
-
88
- def teardown_mocks # :nodoc:
89
- reset_mocks
90
- end
91
-
92
- def build_mock_with_expectations(expectation_type = :expects, expectations = {}, name = nil) # :nodoc:
93
- stub_everything = (expectation_type == :stub_everything)
94
- expectation_type = :stubs if expectation_type == :stub_everything
95
- mock = Mocha::Mock.new(stub_everything, name)
96
- expectations.each do |method, result|
97
- mock.__send__(expectation_type, method).returns(result)
98
- end
99
- mocks << mock
100
- mock
101
- end
102
-
103
- private
104
-
105
- def name_and_expectations_from_args(args) # :nodoc:
106
- name = args.first.is_a?(String) ? args.delete_at(0) : nil
107
- expectations = args.first || {}
108
- [name, expectations]
109
- end
110
-
111
- end
112
-
113
- end
@@ -1,35 +0,0 @@
1
- module Mocha
2
-
3
- class Central
4
-
5
- attr_accessor :stubba_methods
6
-
7
- def initialize
8
- self.stubba_methods = []
9
- end
10
-
11
- def stub(method)
12
- unless stubba_methods.include?(method)
13
- method.stub
14
- stubba_methods.push method
15
- end
16
- end
17
-
18
- def verify_all(&block)
19
- unique_mocks.each { |mock| mock.verify(&block) }
20
- end
21
-
22
- def unique_mocks
23
- stubba_methods.inject({}) { |mocks, method| mocks[method.mock.__id__] = method.mock; mocks }.values
24
- end
25
-
26
- def unstub_all
27
- while stubba_methods.size > 0
28
- method = stubba_methods.pop
29
- method.unstub
30
- end
31
- end
32
-
33
- end
34
-
35
- end