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.
- data/CHANGELOG +94 -0
- data/Rakefile +0 -4
- data/bin/puppet +18 -10
- data/bin/puppetd +1 -1
- data/bin/puppetdoc +14 -4
- data/bin/puppetmasterd +1 -1
- data/bin/puppetrun +3 -8
- data/bin/ralsh +12 -11
- data/conf/freebsd/puppetd +1 -1
- data/conf/freebsd/puppetmasterd +1 -1
- data/conf/gentoo/puppet/puppet.conf +29 -0
- data/conf/namespaceauth.conf +20 -0
- data/conf/redhat/puppet.spec +4 -1
- data/conf/solaris/smf/puppetd.xml +1 -1
- data/conf/solaris/smf/puppetmasterd.xml +1 -1
- data/conf/suse/puppet.spec +10 -8
- data/examples/root/etc/puppet/{puppetmasterd.conf → puppet.conf} +6 -3
- data/ext/logcheck/puppet +7 -0
- data/ext/puppet-test +28 -5
- data/lib/puppet.rb +2 -1
- data/lib/puppet/defaults.rb +12 -5
- data/lib/puppet/dsl.rb +43 -45
- data/lib/puppet/external/{gratr/rdot.rb → dot.rb} +0 -0
- data/lib/puppet/external/nagios.rb +50 -0
- data/lib/puppet/external/nagios/base.rb +421 -0
- data/lib/puppet/external/nagios/parser.rb +816 -0
- data/lib/puppet/file_serving/file_base.rb +16 -3
- data/lib/puppet/file_serving/metadata.rb +29 -11
- data/lib/puppet/indirector/terminus.rb +1 -0
- data/lib/puppet/metatype/closure.rb +4 -0
- data/lib/puppet/metatype/evaluation.rb +2 -17
- data/lib/puppet/metatype/metaparams.rb +1 -1
- data/lib/puppet/network.rb +3 -0
- data/lib/puppet/network/client.rb +4 -5
- data/lib/puppet/network/client/master.rb +10 -7
- data/lib/puppet/network/handler/fileserver.rb +22 -45
- data/lib/puppet/network/http_pool.rb +3 -0
- data/lib/puppet/network/http_server/mongrel.rb +7 -1
- data/lib/puppet/network/http_server/webrick.rb +4 -3
- data/lib/puppet/network/xmlrpc/client.rb +12 -1
- data/lib/puppet/node/catalog.rb +51 -40
- data/lib/puppet/parser/ast.rb +27 -49
- data/lib/puppet/parser/ast/astarray.rb +5 -24
- data/lib/puppet/parser/ast/caseopt.rb +4 -4
- data/lib/puppet/parser/ast/casestatement.rb +4 -5
- data/lib/puppet/parser/ast/collection.rb +3 -5
- data/lib/puppet/parser/ast/collexpr.rb +3 -5
- data/lib/puppet/parser/ast/definition.rb +148 -159
- data/lib/puppet/parser/ast/else.rb +2 -3
- data/lib/puppet/parser/ast/function.rb +3 -10
- data/lib/puppet/parser/ast/hostclass.rb +66 -59
- data/lib/puppet/parser/ast/ifstatement.rb +4 -5
- data/lib/puppet/parser/ast/leaf.rb +6 -6
- data/lib/puppet/parser/ast/node.rb +26 -58
- data/lib/puppet/parser/ast/resource.rb +5 -7
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -4
- data/lib/puppet/parser/ast/resource_override.rb +4 -6
- data/lib/puppet/parser/ast/resource_reference.rb +2 -4
- data/lib/puppet/parser/ast/resourceparam.rb +2 -4
- data/lib/puppet/parser/ast/selector.rb +5 -6
- data/lib/puppet/parser/ast/tag.rb +2 -4
- data/lib/puppet/parser/ast/vardef.rb +3 -4
- data/lib/puppet/parser/collector.rb +5 -5
- data/lib/puppet/parser/{compile.rb → compiler.rb} +69 -107
- data/lib/puppet/parser/functions.rb +3 -3
- data/lib/puppet/parser/interpreter.rb +32 -23
- data/lib/puppet/parser/lexer.rb +391 -282
- data/lib/puppet/parser/parser.rb +5 -4
- data/lib/puppet/parser/parser_support.rb +3 -6
- data/lib/puppet/parser/resource.rb +24 -36
- data/lib/puppet/parser/resource/param.rb +1 -1
- data/lib/puppet/parser/resource/reference.rb +7 -3
- data/lib/puppet/parser/scope.rb +12 -7
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/pgraph.rb +9 -98
- data/lib/puppet/provider/interface/redhat.rb +65 -65
- data/lib/puppet/provider/mount/parsed.rb +1 -1
- data/lib/puppet/provider/naginator.rb +55 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +6 -7
- data/lib/puppet/provider/package/fink.rb +0 -2
- data/lib/puppet/provider/package/gem.rb +9 -5
- data/lib/puppet/provider/package/openbsd.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +3 -8
- data/lib/puppet/provider/package/portage.rb +4 -4
- data/lib/puppet/provider/package/yumhelper.py +8 -6
- data/lib/puppet/provider/parsedfile.rb +7 -1
- data/lib/puppet/provider/service/debian.rb +2 -0
- data/lib/puppet/provider/service/gentoo.rb +4 -0
- data/lib/puppet/provider/service/init.rb +1 -1
- data/lib/puppet/provider/sshkey/parsed.rb +2 -0
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/rails.rb +4 -0
- data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +17 -0
- data/lib/puppet/rails/fact_value.rb +4 -0
- data/lib/puppet/rails/host.rb +1 -2
- data/lib/puppet/rails/param_value.rb +4 -0
- data/lib/puppet/rails/resource_tag.rb +4 -0
- data/lib/puppet/rails/source_file.rb +4 -1
- data/lib/puppet/relationship.rb +5 -1
- data/lib/puppet/reports/tagmail.rb +12 -1
- data/lib/puppet/resource_reference.rb +1 -1
- data/lib/puppet/simple_graph.rb +78 -11
- data/lib/puppet/sslcertificates.rb +1 -1
- data/lib/puppet/sslcertificates/ca.rb +3 -3
- data/lib/puppet/transaction.rb +7 -4
- data/lib/puppet/transportable.rb +1 -1
- data/lib/puppet/type.rb +3 -10
- data/lib/puppet/type/cron.rb +18 -0
- data/lib/puppet/type/exec.rb +18 -12
- data/lib/puppet/type/{pfile.rb → file.rb} +66 -84
- data/lib/puppet/type/file/checksum.rb +271 -0
- data/lib/puppet/type/{pfile → file}/content.rb +10 -15
- data/lib/puppet/type/{pfile → file}/ensure.rb +15 -8
- data/lib/puppet/type/{pfile → file}/group.rb +0 -0
- data/lib/puppet/type/{pfile → file}/mode.rb +0 -0
- data/lib/puppet/type/{pfile → file}/owner.rb +0 -0
- data/lib/puppet/type/{pfile → file}/source.rb +34 -48
- data/lib/puppet/type/{pfile → file}/target.rb +0 -0
- data/lib/puppet/type/{pfile → file}/type.rb +0 -0
- data/lib/puppet/type/{pfilebucket.rb → filebucket.rb} +0 -0
- data/lib/puppet/type/host.rb +13 -0
- data/lib/puppet/type/mailalias.rb +1 -1
- data/lib/puppet/type/nagios_command.rb +3 -0
- data/lib/puppet/type/nagios_contact.rb +3 -0
- data/lib/puppet/type/nagios_contactgroup.rb +3 -0
- data/lib/puppet/type/nagios_host.rb +3 -0
- data/lib/puppet/type/nagios_hostextinfo.rb +3 -0
- data/lib/puppet/type/nagios_hostgroup.rb +3 -0
- data/lib/puppet/type/nagios_hostgroupescalation.rb +3 -0
- data/lib/puppet/type/nagios_service.rb +3 -0
- data/lib/puppet/type/nagios_servicedependency.rb +3 -0
- data/lib/puppet/type/nagios_serviceescalation.rb +3 -0
- data/lib/puppet/type/nagios_serviceextinfo.rb +3 -0
- data/lib/puppet/type/nagios_timeperiod.rb +3 -0
- data/lib/puppet/type/package.rb +4 -12
- data/lib/puppet/type/service.rb +9 -0
- data/lib/puppet/type/sshkey.rb +3 -3
- data/lib/puppet/util/autoload.rb +5 -5
- data/lib/puppet/util/checksums.rb +51 -13
- data/lib/puppet/util/constant_inflector.rb +14 -0
- data/lib/puppet/util/filetype.rb +1 -1
- data/lib/puppet/util/graph.rb +3 -9
- data/lib/puppet/util/nagios_maker.rb +57 -0
- data/lib/puppet/util/settings.rb +19 -16
- data/lib/puppet/util/tagging.rb +39 -0
- data/test/executables/puppetbin.rb +17 -0
- data/test/language/ast.rb +8 -58
- data/test/language/ast/casestatement.rb +3 -3
- data/test/language/ast/resource.rb +6 -7
- data/test/language/ast/resource_reference.rb +12 -12
- data/test/language/ast/selector.rb +2 -2
- data/test/language/ast/variable.rb +2 -2
- data/test/language/functions.rb +24 -24
- data/test/language/parser.rb +20 -8
- data/test/language/resource.rb +5 -42
- data/test/language/scope.rb +21 -37
- data/test/language/snippets.rb +7 -0
- data/test/lib/puppettest.rb +28 -14
- data/test/lib/puppettest/parsertesting.rb +10 -10
- data/test/lib/puppettest/support/resources.rb +1 -1
- data/test/network/client/master.rb +10 -0
- data/test/network/handler/fileserver.rb +51 -49
- data/test/network/server/webrick.rb +1 -1
- data/test/other/dsl.rb +3 -4
- data/test/other/transactions.rb +6 -4
- data/test/rails/ast.rb +2 -2
- data/test/rails/configuration.rb +1 -1
- data/test/rails/railsparameter.rb +2 -0
- data/test/rails/railsresource.rb +1 -0
- data/test/ral/manager/type.rb +4 -4
- data/test/ral/providers/cron/crontab.rb +3 -1
- data/test/ral/providers/package.rb +1 -1
- data/test/ral/{types → type}/basic.rb +2 -2
- data/test/ral/{types → type}/cron.rb +0 -0
- data/test/ral/{types → type}/exec.rb +42 -2
- data/test/ral/{types → type}/file.rb +34 -79
- data/test/ral/{types → type}/file/target.rb +0 -0
- data/test/ral/{types → type}/filebucket.rb +0 -0
- data/test/ral/{types → type}/fileignoresource.rb +0 -0
- data/test/ral/{types → type}/filesources.rb +8 -27
- data/test/ral/{types → type}/group.rb +0 -0
- data/test/ral/{types → type}/host.rb +16 -0
- data/test/ral/{types → type}/mailalias.rb +0 -0
- data/test/ral/{types → type}/parameter.rb +0 -0
- data/test/ral/{types → type}/port.rb +0 -0
- data/test/ral/{types → type}/property.rb +0 -0
- data/test/ral/{types → type}/resources.rb +0 -0
- data/test/ral/{types → type}/service.rb +0 -0
- data/test/ral/{types → type}/sshkey.rb +0 -0
- data/test/ral/{types → type}/tidy.rb +1 -0
- data/test/ral/{types → type}/user.rb +0 -0
- data/test/ral/{types → type}/yumrepo.rb +0 -0
- data/test/ral/{types → type}/zone.rb +0 -0
- data/test/util/autoload.rb +24 -5
- metadata +60 -107
- data/conf/gentoo/puppet/puppetca.conf +0 -29
- data/conf/gentoo/puppet/puppetd.conf +0 -29
- data/conf/gentoo/puppet/puppetmasterd.conf +0 -29
- data/examples/root/etc/puppet/puppetd.conf +0 -4
- data/lib/puppet/external/gratr.rb +0 -33
- data/lib/puppet/external/gratr/adjacency_graph.rb +0 -257
- data/lib/puppet/external/gratr/base.rb +0 -34
- data/lib/puppet/external/gratr/biconnected.rb +0 -116
- data/lib/puppet/external/gratr/chinese_postman.rb +0 -123
- data/lib/puppet/external/gratr/common.rb +0 -73
- data/lib/puppet/external/gratr/comparability.rb +0 -92
- data/lib/puppet/external/gratr/digraph.rb +0 -116
- data/lib/puppet/external/gratr/digraph_distance.rb +0 -185
- data/lib/puppet/external/gratr/dot.rb +0 -90
- data/lib/puppet/external/gratr/edge.rb +0 -145
- data/lib/puppet/external/gratr/graph.rb +0 -303
- data/lib/puppet/external/gratr/graph_api.rb +0 -83
- data/lib/puppet/external/gratr/import.rb +0 -44
- data/lib/puppet/external/gratr/labels.rb +0 -90
- data/lib/puppet/external/gratr/maximum_flow.rb +0 -64
- data/lib/puppet/external/gratr/search.rb +0 -409
- data/lib/puppet/external/gratr/strong_components.rb +0 -127
- data/lib/puppet/external/gratr/undirected_graph.rb +0 -153
- data/lib/puppet/rails/external/tagging/acts_as_taggable.rb +0 -62
- data/lib/puppet/rails/external/tagging/init.rb +0 -5
- data/lib/puppet/rails/external/tagging/tag.rb +0 -50
- data/lib/puppet/rails/external/tagging/tagging.rb +0 -12
- data/lib/puppet/rails/puppet_class.rb +0 -6
- data/lib/puppet/reference/node_source.rb +0 -9
- data/lib/puppet/reference/report.rb +0 -21
- data/lib/puppet/type/pfile/checksum.rb +0 -326
- data/test/language/ast/definition.rb +0 -166
- data/test/language/ast/hostclass.rb +0 -184
- data/test/language/compile.rb +0 -569
- data/test/language/lexer.rb +0 -276
- data/test/lib/mocha.rb +0 -19
- data/test/lib/mocha/any_instance_method.rb +0 -35
- data/test/lib/mocha/auto_verify.rb +0 -113
- data/test/lib/mocha/central.rb +0 -35
- data/test/lib/mocha/class_method.rb +0 -62
- data/test/lib/mocha/deprecation.rb +0 -22
- data/test/lib/mocha/exception_raiser.rb +0 -17
- data/test/lib/mocha/expectation.rb +0 -378
- data/test/lib/mocha/expectation_error.rb +0 -6
- data/test/lib/mocha/infinite_range.rb +0 -25
- data/test/lib/mocha/inspect.rb +0 -39
- data/test/lib/mocha/instance_method.rb +0 -8
- data/test/lib/mocha/is_a.rb +0 -9
- data/test/lib/mocha/metaclass.rb +0 -7
- data/test/lib/mocha/missing_expectation.rb +0 -27
- data/test/lib/mocha/mock.rb +0 -207
- data/test/lib/mocha/multiple_yields.rb +0 -20
- data/test/lib/mocha/no_yields.rb +0 -11
- data/test/lib/mocha/object.rb +0 -110
- data/test/lib/mocha/parameter_matchers.rb +0 -9
- data/test/lib/mocha/parameter_matchers/all_of.rb +0 -39
- data/test/lib/mocha/parameter_matchers/any_of.rb +0 -44
- data/test/lib/mocha/parameter_matchers/anything.rb +0 -30
- data/test/lib/mocha/parameter_matchers/has_entry.rb +0 -39
- data/test/lib/mocha/parameter_matchers/has_key.rb +0 -39
- data/test/lib/mocha/parameter_matchers/has_value.rb +0 -39
- data/test/lib/mocha/parameter_matchers/includes.rb +0 -37
- data/test/lib/mocha/pretty_parameters.rb +0 -28
- data/test/lib/mocha/return_values.rb +0 -31
- data/test/lib/mocha/setup_and_teardown.rb +0 -23
- data/test/lib/mocha/single_return_value.rb +0 -24
- data/test/lib/mocha/single_yield.rb +0 -18
- data/test/lib/mocha/standalone.rb +0 -32
- data/test/lib/mocha/stub.rb +0 -18
- data/test/lib/mocha/test_case_adapter.rb +0 -49
- data/test/lib/mocha/yield_parameters.rb +0 -31
data/test/language/lexer.rb
DELETED
@@ -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
|
-
|
data/test/lib/mocha.rb
DELETED
@@ -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
|
data/test/lib/mocha/central.rb
DELETED
@@ -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
|