puppet 0.23.2 → 0.24.0
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 +112 -1
- data/README +1 -1
- data/Rakefile +1 -2
- data/bin/filebucket +2 -3
- data/bin/puppet +55 -39
- data/bin/puppetca +20 -11
- data/bin/puppetd +30 -31
- data/bin/puppetdoc +27 -28
- data/bin/puppetmasterd +24 -42
- data/bin/puppetrun +3 -4
- data/bin/ralsh +5 -7
- data/conf/redhat/puppet.spec +4 -1
- data/conf/solaris/smf/svc-puppetd +1 -1
- data/conf/solaris/smf/svc-puppetmasterd +1 -1
- data/examples/code/allatonce +1 -1
- data/examples/code/assignments +1 -1
- data/examples/code/components +1 -1
- data/examples/code/file.bl +1 -1
- data/examples/code/filedefaults +1 -1
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/head +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/modules/sample-module.pp +10 -0
- data/examples/code/modules/sample-module/README.txt +17 -0
- data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
- data/examples/code/modules/sample-module/manifests/init.pp +12 -0
- data/examples/code/modules/sample-module/templates/sample.erb +5 -0
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +1 -1
- data/examples/code/selectors +1 -1
- data/examples/code/simpletests +1 -1
- data/examples/root/etc/init.d/sleeper +1 -1
- data/examples/root/etc/puppet/fileserver.conf +1 -1
- data/ext/ldap/puppet.schema +1 -1
- data/ext/module_puppet +30 -21
- data/ext/puppet-test +3 -3
- data/ext/vim/filetype.vim +1 -1
- data/install.rb +1 -2
- data/lib/puppet.rb +20 -19
- data/lib/puppet/checksum.rb +57 -0
- data/lib/puppet/config_stores/rest.rb +1 -1
- data/lib/puppet/daemon.rb +0 -1
- data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
- data/lib/puppet/dsl.rb +22 -116
- data/lib/puppet/error.rb +0 -9
- data/lib/puppet/event.rb +0 -1
- data/lib/puppet/external/gratr/rdot.rb +0 -1
- data/lib/puppet/external/lock.rb +0 -1
- data/lib/puppet/feature/base.rb +3 -2
- data/lib/puppet/feature/rails.rb +0 -1
- data/lib/puppet/file_serving.rb +7 -0
- data/lib/puppet/file_serving/configuration.rb +129 -0
- data/lib/puppet/file_serving/configuration/parser.rb +124 -0
- data/lib/puppet/file_serving/content.rb +34 -0
- data/lib/puppet/file_serving/file_base.rb +63 -0
- data/lib/puppet/file_serving/fileset.rb +138 -0
- data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
- data/lib/puppet/file_serving/metadata.rb +69 -0
- data/lib/puppet/file_serving/mount.rb +186 -0
- data/lib/puppet/file_serving/terminus_helper.rb +19 -0
- data/lib/puppet/indirector.rb +68 -0
- data/lib/puppet/indirector/catalog/compiler.rb +173 -0
- data/lib/puppet/indirector/catalog/yaml.rb +24 -0
- data/lib/puppet/indirector/checksum/file.rb +33 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/direct_file_server.rb +27 -0
- data/lib/puppet/indirector/exec.rb +57 -0
- data/lib/puppet/indirector/facts/facter.rb +65 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/yaml.rb +7 -0
- data/lib/puppet/indirector/file.rb +54 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_content/file.rb +11 -0
- data/lib/puppet/indirector/file_content/file_server.rb +11 -0
- data/lib/puppet/indirector/file_content/modules.rb +11 -0
- data/lib/puppet/indirector/file_content/rest.rb +12 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +26 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
- data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
- data/lib/puppet/indirector/file_server.rb +56 -0
- data/lib/puppet/indirector/indirection.rb +237 -0
- data/lib/puppet/indirector/ldap.rb +90 -0
- data/lib/puppet/indirector/memory.rb +21 -0
- data/lib/puppet/indirector/module_files.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +52 -0
- data/lib/puppet/indirector/node/ldap.rb +120 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/plain.rb +19 -0
- data/lib/puppet/indirector/node/rest.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/processor.rb +50 -0
- data/lib/puppet/indirector/rest.rb +8 -0
- data/lib/puppet/indirector/ssl_rsa.rb +5 -0
- data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
- data/lib/puppet/indirector/terminus.rb +178 -0
- data/lib/puppet/indirector/yaml.rb +57 -0
- data/lib/puppet/metatype/attributes.rb +3 -3
- data/lib/puppet/metatype/closure.rb +0 -66
- data/lib/puppet/metatype/container.rb +0 -9
- data/lib/puppet/metatype/evaluation.rb +10 -2
- data/lib/puppet/metatype/instances.rb +16 -30
- data/lib/puppet/metatype/manager.rb +1 -2
- data/lib/puppet/metatype/metaparams.rb +27 -21
- data/lib/puppet/metatype/providers.rb +3 -2
- data/lib/puppet/metatype/relationships.rb +1 -2
- data/lib/puppet/metatype/schedules.rb +0 -1
- data/lib/puppet/metatype/tags.rb +0 -1
- data/lib/puppet/module.rb +60 -32
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +0 -1
- data/lib/puppet/network/authstore.rb +0 -1
- data/lib/puppet/network/client.rb +13 -4
- data/lib/puppet/network/client/ca.rb +4 -5
- data/lib/puppet/network/client/dipper.rb +0 -1
- data/lib/puppet/network/client/file.rb +0 -1
- data/lib/puppet/network/client/master.rb +127 -235
- data/lib/puppet/network/client/proxy.rb +0 -1
- data/lib/puppet/network/client/report.rb +0 -1
- data/lib/puppet/network/client/resource.rb +0 -1
- data/lib/puppet/network/client/runner.rb +0 -1
- data/lib/puppet/network/client/status.rb +0 -1
- data/lib/puppet/network/client_request.rb +0 -1
- data/lib/puppet/network/handler.rb +5 -2
- data/lib/puppet/network/handler/ca.rb +1 -2
- data/lib/puppet/network/handler/configuration.rb +184 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -2
- data/lib/puppet/network/handler/fileserver.rb +279 -107
- data/lib/puppet/network/handler/master.rb +57 -152
- data/lib/puppet/network/handler/report.rb +6 -65
- data/lib/puppet/network/handler/resource.rb +5 -13
- data/lib/puppet/network/handler/runner.rb +3 -4
- data/lib/puppet/network/handler/status.rb +0 -1
- data/lib/puppet/network/http.rb +13 -0
- data/lib/puppet/network/http/handler.rb +109 -0
- data/lib/puppet/network/http/mongrel.rb +54 -0
- data/lib/puppet/network/http/mongrel/rest.rb +37 -0
- data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
- data/lib/puppet/network/http/webrick.rb +51 -0
- data/lib/puppet/network/http/webrick/rest.rb +41 -0
- data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
- data/lib/puppet/network/http_server.rb +3 -0
- data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
- data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
- data/lib/puppet/network/rest_controller.rb +2 -0
- data/lib/puppet/network/rights.rb +0 -1
- data/lib/puppet/network/server.rb +63 -3
- data/lib/puppet/network/xmlrpc/client.rb +90 -23
- data/lib/puppet/network/xmlrpc/processor.rb +0 -1
- data/lib/puppet/network/xmlrpc/server.rb +0 -1
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
- data/lib/puppet/node.rb +165 -0
- data/lib/puppet/node/catalog.rb +480 -0
- data/lib/puppet/node/environment.rb +46 -0
- data/lib/puppet/node/facts.rb +36 -0
- data/lib/puppet/parameter.rb +34 -28
- data/lib/puppet/parser/ast.rb +0 -1
- data/lib/puppet/parser/ast/astarray.rb +30 -53
- data/lib/puppet/parser/ast/branch.rb +0 -10
- data/lib/puppet/parser/ast/caseopt.rb +0 -11
- data/lib/puppet/parser/ast/casestatement.rb +0 -12
- data/lib/puppet/parser/ast/collection.rb +1 -3
- data/lib/puppet/parser/ast/collexpr.rb +0 -2
- data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
- data/lib/puppet/parser/ast/else.rb +0 -10
- data/lib/puppet/parser/ast/function.rb +0 -2
- data/lib/puppet/parser/ast/hostclass.rb +21 -19
- data/lib/puppet/parser/ast/ifstatement.rb +0 -13
- data/lib/puppet/parser/ast/leaf.rb +0 -8
- data/lib/puppet/parser/ast/node.rb +13 -10
- data/lib/puppet/parser/ast/resource.rb +75 -0
- data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
- data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
- data/lib/puppet/parser/ast/resource_reference.rb +66 -0
- data/lib/puppet/parser/ast/resourceparam.rb +0 -14
- data/lib/puppet/parser/ast/selector.rb +0 -10
- data/lib/puppet/parser/ast/tag.rb +0 -2
- data/lib/puppet/parser/ast/vardef.rb +0 -14
- data/lib/puppet/parser/collector.rb +83 -101
- data/lib/puppet/parser/compile.rb +509 -0
- data/lib/puppet/parser/functions.rb +10 -10
- data/lib/puppet/parser/interpreter.rb +44 -662
- data/lib/puppet/parser/lexer.rb +1 -3
- data/lib/puppet/parser/parser.rb +674 -701
- data/lib/puppet/parser/parser_support.rb +33 -24
- data/lib/puppet/parser/resource.rb +219 -162
- data/lib/puppet/parser/resource/param.rb +1 -2
- data/lib/puppet/parser/resource/reference.rb +24 -16
- data/lib/puppet/parser/scope.rb +48 -459
- data/lib/puppet/parser/templatewrapper.rb +4 -5
- data/lib/puppet/pgraph.rb +10 -13
- data/lib/puppet/property.rb +25 -41
- data/lib/puppet/propertychange.rb +0 -2
- data/lib/puppet/provider.rb +15 -11
- data/lib/puppet/provider/cron/crontab.rb +6 -7
- data/lib/puppet/provider/group/groupadd.rb +0 -1
- data/lib/puppet/provider/group/netinfo.rb +0 -1
- data/lib/puppet/provider/group/pw.rb +0 -1
- data/lib/puppet/provider/host/netinfo.rb +0 -1
- data/lib/puppet/provider/host/parsed.rb +0 -1
- data/lib/puppet/provider/interface/redhat.rb +90 -91
- data/lib/puppet/provider/interface/sunos.rb +98 -81
- data/lib/puppet/provider/mailalias/aliases.rb +0 -1
- data/lib/puppet/provider/maillist/mailman.rb +2 -3
- data/lib/puppet/provider/mount.rb +10 -9
- data/lib/puppet/provider/mount/netinfo.rb +0 -1
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/nameservice.rb +0 -1
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
- data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
- data/lib/puppet/provider/nameservice/pw.rb +0 -1
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -1
- data/lib/puppet/provider/package/apple.rb +0 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -1
- data/lib/puppet/provider/package/aptrpm.rb +0 -1
- data/lib/puppet/provider/package/blastwave.rb +0 -1
- data/lib/puppet/provider/package/darwinport.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +9 -1
- data/lib/puppet/provider/package/fink.rb +0 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -1
- data/lib/puppet/provider/package/gem.rb +0 -1
- data/lib/puppet/provider/package/openbsd.rb +1 -2
- data/lib/puppet/provider/package/pkgdmg.rb +14 -15
- data/lib/puppet/provider/package/portage.rb +6 -7
- data/lib/puppet/provider/package/ports.rb +1 -4
- data/lib/puppet/provider/package/rpm.rb +31 -45
- data/lib/puppet/provider/package/sun.rb +0 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -1
- data/lib/puppet/provider/package/up2date.rb +0 -1
- data/lib/puppet/provider/package/urpmi.rb +0 -1
- data/lib/puppet/provider/package/yum.rb +45 -14
- data/lib/puppet/provider/package/yumhelper.py +37 -0
- data/lib/puppet/provider/parsedfile.rb +2 -3
- data/lib/puppet/provider/port/parsed.rb +0 -1
- data/lib/puppet/provider/service/base.rb +4 -1
- data/lib/puppet/provider/service/debian.rb +5 -2
- data/lib/puppet/provider/service/freebsd.rb +51 -0
- data/lib/puppet/provider/service/init.rb +16 -40
- data/lib/puppet/provider/service/redhat.rb +1 -6
- data/lib/puppet/provider/service/smf.rb +0 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -1
- data/lib/puppet/provider/user/netinfo.rb +0 -1
- data/lib/puppet/provider/user/pw.rb +0 -1
- data/lib/puppet/provider/user/useradd.rb +0 -1
- data/lib/puppet/provider/zone/solaris.rb +0 -1
- data/lib/puppet/rails.rb +35 -30
- data/lib/puppet/rails/database/schema.rb +0 -1
- data/lib/puppet/rails/host.rb +6 -15
- data/lib/puppet/rails/param_name.rb +1 -2
- data/lib/puppet/rails/param_value.rb +0 -1
- data/lib/puppet/rails/puppet_class.rb +0 -1
- data/lib/puppet/rails/resource.rb +3 -5
- data/lib/puppet/reference/configuration.rb +12 -6
- data/lib/puppet/reference/indirection.rb +34 -0
- data/lib/puppet/reference/node_source.rb +9 -0
- data/lib/puppet/relationship.rb +10 -8
- data/lib/puppet/reports.rb +51 -0
- data/lib/puppet/reports/log.rb +2 -3
- data/lib/puppet/reports/rrdgraph.rb +2 -5
- data/lib/puppet/reports/store.rb +6 -7
- data/lib/puppet/reports/tagmail.rb +2 -3
- data/lib/puppet/resource_reference.rb +79 -0
- data/lib/puppet/simple_graph.rb +251 -0
- data/lib/puppet/sslcertificates.rb +19 -15
- data/lib/puppet/sslcertificates/ca.rb +56 -15
- data/lib/puppet/sslcertificates/certificate.rb +0 -1
- data/lib/puppet/sslcertificates/inventory.rb +2 -6
- data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
- data/lib/puppet/sslcertificates/support.rb +4 -5
- data/lib/puppet/transaction.rb +93 -96
- data/lib/puppet/transaction/report.rb +5 -1
- data/lib/puppet/transportable.rb +79 -125
- data/lib/puppet/type.rb +44 -10
- data/lib/puppet/type/component.rb +25 -110
- data/lib/puppet/type/cron.rb +1 -2
- data/lib/puppet/type/exec.rb +19 -13
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/host.rb +0 -1
- data/lib/puppet/type/interface.rb +6 -3
- data/lib/puppet/type/k5login.rb +87 -0
- data/lib/puppet/type/mailalias.rb +0 -1
- data/lib/puppet/type/maillist.rb +0 -1
- data/lib/puppet/type/mount.rb +7 -13
- data/lib/puppet/type/notify.rb +0 -1
- data/lib/puppet/type/package.rb +7 -63
- data/lib/puppet/type/pfile.rb +25 -32
- data/lib/puppet/type/pfile/checksum.rb +0 -1
- data/lib/puppet/type/pfile/content.rb +18 -3
- data/lib/puppet/type/pfile/ensure.rb +5 -6
- data/lib/puppet/type/pfile/group.rb +4 -1
- data/lib/puppet/type/pfile/mode.rb +0 -1
- data/lib/puppet/type/pfile/owner.rb +6 -9
- data/lib/puppet/type/pfile/source.rb +28 -11
- data/lib/puppet/type/pfile/target.rb +2 -1
- data/lib/puppet/type/pfile/type.rb +0 -1
- data/lib/puppet/type/pfilebucket.rb +0 -1
- data/lib/puppet/type/port.rb +0 -1
- data/lib/puppet/type/resources.rb +0 -1
- data/lib/puppet/type/schedule.rb +17 -15
- data/lib/puppet/type/service.rb +23 -159
- data/lib/puppet/type/sshkey.rb +0 -1
- data/lib/puppet/type/tidy.rb +15 -7
- data/lib/puppet/type/user.rb +0 -1
- data/lib/puppet/type/zone.rb +0 -1
- data/lib/puppet/util.rb +1 -2
- data/lib/puppet/util/autoload.rb +21 -23
- data/lib/puppet/util/checksums.rb +37 -0
- data/lib/puppet/util/classgen.rb +0 -1
- data/lib/puppet/util/diff.rb +71 -0
- data/lib/puppet/util/docs.rb +8 -2
- data/lib/puppet/util/errors.rb +0 -1
- data/lib/puppet/util/execution.rb +0 -1
- data/lib/puppet/util/fact_store.rb +0 -1
- data/lib/puppet/util/feature.rb +31 -22
- data/lib/puppet/util/fileparsing.rb +3 -2
- data/lib/puppet/util/filetype.rb +30 -12
- data/lib/puppet/util/graph.rb +0 -1
- data/lib/puppet/util/inifile.rb +0 -1
- data/lib/puppet/util/instance_loader.rb +11 -4
- data/lib/puppet/util/loadedfile.rb +0 -1
- data/lib/puppet/util/log.rb +0 -1
- data/lib/puppet/util/log_paths.rb +0 -1
- data/lib/puppet/util/logging.rb +0 -1
- data/lib/puppet/util/metaid.rb +0 -1
- data/lib/puppet/util/methodhelper.rb +0 -2
- data/lib/puppet/util/metric.rb +1 -2
- data/lib/puppet/util/plist.rb +0 -1
- data/lib/puppet/util/plist/generator.rb +0 -1
- data/lib/puppet/util/plist/parser.rb +0 -1
- data/lib/puppet/util/posix.rb +7 -1
- data/lib/puppet/util/provider_features.rb +11 -12
- data/lib/puppet/util/rails/collection_merger.rb +0 -1
- data/lib/puppet/util/reference.rb +2 -3
- data/lib/puppet/util/{config.rb → settings.rb} +424 -300
- data/lib/puppet/util/storage.rb +1 -3
- data/lib/puppet/util/subclass_loader.rb +0 -1
- data/lib/puppet/util/suidmanager.rb +25 -42
- data/lib/puppet/util/uri_helper.rb +22 -0
- data/lib/puppet/util/variables.rb +0 -1
- data/lib/puppet/util/warnings.rb +0 -1
- data/test/Rakefile +1 -1
- data/test/certmgr/ca.rb +8 -2
- data/test/certmgr/certmgr.rb +14 -6
- data/test/certmgr/inventory.rb +18 -30
- data/test/certmgr/support.rb +3 -2
- data/test/executables/filebucket.rb +1 -2
- data/test/executables/puppetbin.rb +1 -2
- data/test/executables/puppetca.rb +7 -2
- data/test/executables/puppetd.rb +23 -29
- data/test/executables/puppetmasterd.rb +1 -2
- data/test/executables/puppetmodule.rb +1 -2
- data/test/language/ast.rb +24 -29
- data/test/language/ast/casestatement.rb +1 -2
- data/test/language/ast/definition.rb +166 -0
- data/test/language/ast/hostclass.rb +50 -29
- data/test/language/ast/resource.rb +59 -0
- data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
- data/test/language/ast/selector.rb +1 -2
- data/test/language/ast/variable.rb +1 -2
- data/test/language/compile.rb +569 -0
- data/test/language/functions.rb +57 -76
- data/test/language/lexer.rb +20 -3
- data/test/language/parser.rb +45 -33
- data/test/language/resource.rb +275 -308
- data/test/language/scope.rb +135 -410
- data/test/language/snippets.rb +19 -41
- data/test/language/transportable.rb +8 -29
- data/test/lib/mocha/auto_verify.rb +6 -6
- data/test/lib/mocha/deprecation.rb +22 -0
- data/test/lib/mocha/exception_raiser.rb +17 -0
- data/test/lib/mocha/expectation.rb +167 -84
- data/test/lib/mocha/infinite_range.rb +4 -6
- data/test/lib/mocha/inspect.rb +3 -1
- data/test/lib/mocha/is_a.rb +9 -0
- data/test/lib/mocha/missing_expectation.rb +27 -0
- data/test/lib/mocha/mock.rb +192 -5
- data/test/lib/mocha/multiple_yields.rb +20 -0
- data/test/lib/mocha/no_yields.rb +11 -0
- data/test/lib/mocha/object.rb +11 -1
- data/test/lib/mocha/parameter_matchers.rb +9 -0
- data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
- data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
- data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
- data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
- data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
- data/test/lib/mocha/return_values.rb +31 -0
- data/test/lib/mocha/single_return_value.rb +24 -0
- data/test/lib/mocha/single_yield.rb +18 -0
- data/test/lib/mocha/standalone.rb +2 -0
- data/test/lib/mocha/stub.rb +18 -0
- data/test/lib/mocha/test_case_adapter.rb +3 -3
- data/test/lib/mocha/yield_parameters.rb +31 -0
- data/test/lib/puppettest.rb +38 -20
- data/test/lib/puppettest/certificates.rb +0 -1
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +0 -1
- data/test/lib/puppettest/fileparsing.rb +8 -15
- data/test/lib/puppettest/filetesting.rb +0 -1
- data/test/lib/puppettest/parsertesting.rb +37 -23
- data/test/lib/puppettest/railstesting.rb +3 -6
- data/test/lib/puppettest/reporttesting.rb +0 -1
- data/test/lib/puppettest/resourcetesting.rb +6 -34
- data/test/lib/puppettest/runnable_test.rb +30 -0
- data/test/lib/puppettest/servertest.rb +2 -3
- data/test/lib/puppettest/support/assertions.rb +13 -41
- data/test/lib/puppettest/support/collection.rb +0 -1
- data/test/lib/puppettest/support/helpers.rb +0 -1
- data/test/lib/puppettest/support/resources.rb +17 -17
- data/test/lib/puppettest/support/utils.rb +45 -27
- data/test/lib/puppettest/testcase.rb +2 -21
- data/test/lib/rake/puppet_test_loader.rb +0 -1
- data/test/lib/rake/puppet_testtask.rb +0 -1
- data/test/network/authconfig.rb +1 -2
- data/test/network/authorization.rb +1 -2
- data/test/network/authstore.rb +1 -2
- data/test/network/client/ca.rb +12 -7
- data/test/network/client/client.rb +17 -22
- data/test/network/client/dipper.rb +1 -2
- data/test/network/client/master.rb +70 -184
- data/test/network/client/resource.rb +9 -2
- data/test/network/client_request.rb +1 -2
- data/test/network/daemon.rb +1 -2
- data/test/network/handler/bucket.rb +2 -31
- data/test/network/handler/ca.rb +9 -3
- data/test/network/handler/configuration.rb +160 -0
- data/test/network/handler/fileserver.rb +24 -5
- data/test/network/handler/handler.rb +1 -2
- data/test/network/handler/master.rb +38 -243
- data/test/network/handler/report.rb +2 -104
- data/test/network/handler/resource.rb +5 -3
- data/test/network/handler/runner.rb +22 -60
- data/test/network/rights.rb +1 -2
- data/test/network/server/mongrel_test.rb +2 -3
- data/test/network/server/webrick.rb +17 -11
- data/test/network/xmlrpc/client.rb +27 -12
- data/test/network/xmlrpc/processor.rb +3 -4
- data/test/network/xmlrpc/server.rb +1 -2
- data/test/network/xmlrpc/webrick_servlet.rb +8 -2
- data/test/other/dsl.rb +2 -4
- data/test/other/events.rb +14 -56
- data/test/other/overrides.rb +3 -6
- data/test/other/propertychange.rb +1 -2
- data/test/other/provider.rb +1 -2
- data/test/other/puppet.rb +1 -2
- data/test/other/relationships.rb +15 -17
- data/test/other/report.rb +14 -20
- data/test/other/transactions.rb +109 -192
- data/test/puppet/conffiles.rb +3 -5
- data/test/puppet/defaults.rb +1 -28
- data/test/puppet/errortest.rb +1 -2
- data/test/puppet/tc_suidmanager.rb +77 -63
- data/test/rails/ast.rb +4 -4
- data/test/rails/configuration.rb +71 -0
- data/test/rails/host.rb +19 -30
- data/test/rails/rails.rb +1 -2
- data/test/rails/railsparameter.rb +3 -4
- data/test/rails/railsresource.rb +6 -5
- data/test/ral/manager/attributes.rb +1 -2
- data/test/ral/manager/instances.rb +3 -3
- data/test/ral/manager/manager.rb +1 -2
- data/test/ral/manager/provider.rb +1 -2
- data/test/ral/manager/type.rb +89 -93
- data/test/ral/providers/cron/crontab.rb +9 -11
- data/test/ral/providers/group.rb +1 -2
- data/test/ral/providers/host/netinfo.rb +1 -2
- data/test/ral/providers/host/parsed.rb +1 -2
- data/test/ral/providers/mailalias/aliases.rb +1 -2
- data/test/ral/providers/mount/netinfo.rb +1 -2
- data/test/ral/providers/nameservice.rb +1 -2
- data/test/ral/providers/package.rb +5 -4
- data/test/ral/providers/package/apt.rb +0 -1
- data/test/ral/providers/package/aptrpm.rb +0 -1
- data/test/ral/providers/parsedfile.rb +1 -2
- data/test/ral/providers/port/parsed.rb +1 -2
- data/test/ral/providers/provider.rb +10 -5
- data/test/ral/providers/service/base.rb +1 -2
- data/test/ral/providers/service/debian.rb +58 -0
- data/test/ral/providers/sshkey/parsed.rb +1 -2
- data/test/ral/providers/user.rb +3 -2
- data/test/ral/providers/user/useradd.rb +0 -1
- data/test/ral/types/basic.rb +4 -9
- data/test/ral/types/cron.rb +6 -12
- data/test/ral/types/exec.rb +6 -7
- data/test/ral/types/file.rb +35 -14
- data/test/ral/types/file/target.rb +6 -5
- data/test/ral/types/filebucket.rb +3 -2
- data/test/ral/types/fileignoresource.rb +10 -42
- data/test/ral/types/filesources.rb +21 -60
- data/test/ral/types/group.rb +3 -3
- data/test/ral/types/host.rb +6 -3
- data/test/ral/types/mailalias.rb +1 -2
- data/test/ral/types/parameter.rb +5 -3
- data/test/ral/types/port.rb +1 -2
- data/test/ral/types/property.rb +3 -3
- data/test/ral/types/resources.rb +1 -2
- data/test/ral/types/service.rb +5 -3
- data/test/ral/types/sshkey.rb +5 -3
- data/test/ral/types/tidy.rb +63 -3
- data/test/ral/types/user.rb +10 -11
- data/test/ral/types/yumrepo.rb +1 -1
- data/test/ral/types/zone.rb +1 -2
- data/test/util/autoload.rb +23 -27
- data/test/util/classgen.rb +1 -2
- data/test/util/execution.rb +1 -2
- data/test/util/features.rb +1 -3
- data/test/util/fileparsing.rb +11 -3
- data/test/util/filetype.rb +1 -2
- data/test/util/inifile.rb +1 -1
- data/test/util/instance_loader.rb +5 -6
- data/test/util/loadedfile.rb +1 -2
- data/test/util/log.rb +1 -2
- data/test/util/metrics.rb +1 -2
- data/test/util/package.rb +1 -2
- data/test/util/posixtest.rb +1 -2
- data/test/util/{config.rb → settings.rb} +123 -265
- data/test/util/storage.rb +1 -2
- data/test/util/subclass_loader.rb +1 -2
- data/test/util/utiltest.rb +1 -111
- metadata +130 -112
- data/ext/tools/passwd2puppet +0 -45
- data/lib/puppet/fact_stores/yaml.rb +0 -42
- data/lib/puppet/network/handler/facts.rb +0 -70
- data/lib/puppet/parser/ast/resourcedef.rb +0 -222
- data/lib/puppet/parser/ast/resourceref.rb +0 -58
- data/test/language/ast/component.rb +0 -142
- data/test/language/collector.rb +0 -179
- data/test/language/interpreter.rb +0 -804
- data/test/language/node.rb +0 -126
- data/test/lib/mocha/mock_methods.rb +0 -122
- data/test/lib/puppettest/graph.rb +0 -41
- data/test/lib/spec.rb +0 -8
- data/test/lib/spec/callback.rb +0 -11
- data/test/lib/spec/callback/callback_container.rb +0 -60
- data/test/lib/spec/callback/extensions/module.rb +0 -24
- data/test/lib/spec/callback/extensions/object.rb +0 -37
- data/test/lib/spec/deprecated.rb +0 -3
- data/test/lib/spec/expectations.rb +0 -59
- data/test/lib/spec/expectations/differs/default.rb +0 -62
- data/test/lib/spec/expectations/errors.rb +0 -6
- data/test/lib/spec/expectations/extensions.rb +0 -3
- data/test/lib/spec/expectations/extensions/object.rb +0 -109
- data/test/lib/spec/expectations/extensions/proc.rb +0 -57
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/test/lib/spec/expectations/handler.rb +0 -47
- data/test/lib/spec/expectations/should.rb +0 -5
- data/test/lib/spec/expectations/should/base.rb +0 -64
- data/test/lib/spec/expectations/should/change.rb +0 -69
- data/test/lib/spec/expectations/should/have.rb +0 -128
- data/test/lib/spec/expectations/should/not.rb +0 -74
- data/test/lib/spec/expectations/should/should.rb +0 -81
- data/test/lib/spec/expectations/sugar.rb +0 -47
- data/test/lib/spec/matchers.rb +0 -160
- data/test/lib/spec/matchers/be.rb +0 -161
- data/test/lib/spec/matchers/be_close.rb +0 -37
- data/test/lib/spec/matchers/change.rb +0 -120
- data/test/lib/spec/matchers/eql.rb +0 -43
- data/test/lib/spec/matchers/equal.rb +0 -43
- data/test/lib/spec/matchers/has.rb +0 -44
- data/test/lib/spec/matchers/have.rb +0 -140
- data/test/lib/spec/matchers/include.rb +0 -50
- data/test/lib/spec/matchers/match.rb +0 -41
- data/test/lib/spec/matchers/raise_error.rb +0 -100
- data/test/lib/spec/matchers/respond_to.rb +0 -35
- data/test/lib/spec/matchers/satisfy.rb +0 -47
- data/test/lib/spec/matchers/throw_symbol.rb +0 -75
- data/test/lib/spec/mocks.rb +0 -232
- data/test/lib/spec/mocks/argument_expectation.rb +0 -132
- data/test/lib/spec/mocks/error_generator.rb +0 -85
- data/test/lib/spec/mocks/errors.rb +0 -10
- data/test/lib/spec/mocks/extensions/object.rb +0 -3
- data/test/lib/spec/mocks/message_expectation.rb +0 -231
- data/test/lib/spec/mocks/methods.rb +0 -40
- data/test/lib/spec/mocks/mock.rb +0 -26
- data/test/lib/spec/mocks/mock_handler.rb +0 -166
- data/test/lib/spec/mocks/order_group.rb +0 -29
- data/test/lib/spec/rake/spectask.rb +0 -173
- data/test/lib/spec/rake/verify_rcov.rb +0 -47
- data/test/lib/spec/runner.rb +0 -132
- data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
- data/test/lib/spec/runner/command_line.rb +0 -34
- data/test/lib/spec/runner/context.rb +0 -154
- data/test/lib/spec/runner/context_eval.rb +0 -142
- data/test/lib/spec/runner/context_runner.rb +0 -55
- data/test/lib/spec/runner/drb_command_line.rb +0 -21
- data/test/lib/spec/runner/execution_context.rb +0 -17
- data/test/lib/spec/runner/extensions/kernel.rb +0 -17
- data/test/lib/spec/runner/extensions/object.rb +0 -32
- data/test/lib/spec/runner/formatter.rb +0 -5
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
- data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
- data/test/lib/spec/runner/heckle_runner.rb +0 -71
- data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
- data/test/lib/spec/runner/option_parser.rb +0 -224
- data/test/lib/spec/runner/reporter.rb +0 -105
- data/test/lib/spec/runner/spec_matcher.rb +0 -25
- data/test/lib/spec/runner/spec_parser.rb +0 -41
- data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
- data/test/lib/spec/runner/specification.rb +0 -114
- data/test/lib/spec/translator.rb +0 -87
- data/test/lib/spec/version.rb +0 -30
- data/test/network/handler/facts.rb +0 -112
- data/test/other/pgraph.rb +0 -290
- data/test/other/relationship.rb +0 -74
- data/test/puppet/modules.rb +0 -59
- data/test/rails/collection.rb +0 -247
- data/test/rails/interpreter.rb +0 -91
- data/test/ral/providers/mount/parsed.rb +0 -251
- data/test/ral/providers/service.rb +0 -235
- data/test/ral/types/component.rb +0 -113
- data/test/ral/types/interface.rb +0 -40
- data/test/ral/types/mount.rb +0 -362
- data/test/ral/types/package.rb +0 -154
- data/test/ral/types/schedule.rb +0 -357
- data/test/tagging/tagging.rb +0 -170
- data/test/util/fact_store.rb +0 -67
- data/test/util/graph.rb +0 -108
data/test/language/snippets.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppet'
|
6
6
|
require 'puppet/parser/interpreter'
|
@@ -11,7 +11,6 @@ require 'puppettest'
|
|
11
11
|
|
12
12
|
class TestSnippets < Test::Unit::TestCase
|
13
13
|
include PuppetTest
|
14
|
-
include ObjectSpace
|
15
14
|
|
16
15
|
def setup
|
17
16
|
super
|
@@ -198,12 +197,12 @@ class TestSnippets < Test::Unit::TestCase
|
|
198
197
|
def snippet_classpathtest
|
199
198
|
path = "/tmp/classtest"
|
200
199
|
|
201
|
-
file = @file
|
200
|
+
file = @catalog.resource(:file, path)
|
202
201
|
assert(file, "did not create file %s" % path)
|
203
202
|
|
204
203
|
assert_nothing_raised {
|
205
204
|
assert_equal(
|
206
|
-
"//testing/
|
205
|
+
"//testing/Mytype[componentname]/File[/tmp/classtest]",
|
207
206
|
file.path)
|
208
207
|
}
|
209
208
|
end
|
@@ -272,14 +271,6 @@ class TestSnippets < Test::Unit::TestCase
|
|
272
271
|
assert_mode_equal(0755, file)
|
273
272
|
end
|
274
273
|
|
275
|
-
def snippet_failmissingexecpath
|
276
|
-
file = "/tmp/exectesting1"
|
277
|
-
execfile = "/tmp/execdisttesting"
|
278
|
-
assert_file(file)
|
279
|
-
|
280
|
-
assert_nil(Puppet::Type.type(:exec)["exectest"], "invalid exec was created")
|
281
|
-
end
|
282
|
-
|
283
274
|
def snippet_selectorvalues
|
284
275
|
nums = %w{1 2 3 4 5}
|
285
276
|
files = nums.collect { |n|
|
@@ -458,35 +449,25 @@ class TestSnippets < Test::Unit::TestCase
|
|
458
449
|
#eval("alias %s %s" % [testname, mname])
|
459
450
|
testname = ("test_" + mname).intern
|
460
451
|
self.send(:define_method, testname) {
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
:Master => server,
|
468
|
-
:Cache => false
|
469
|
-
)
|
470
|
-
|
471
|
-
assert(client.local)
|
472
|
-
assert_nothing_raised {
|
473
|
-
client.getconfig()
|
452
|
+
Puppet[:manifest] = snippet(file)
|
453
|
+
facts = {
|
454
|
+
"hostname" => "testhost",
|
455
|
+
"domain" => "domain.com",
|
456
|
+
"ipaddress" => "127.0.0.1",
|
457
|
+
"fqdn" => "testhost.domain.com"
|
474
458
|
}
|
475
459
|
|
476
|
-
|
477
|
-
|
478
|
-
:Cache => false
|
479
|
-
)
|
460
|
+
node = Puppet::Node.new("testhost")
|
461
|
+
node.merge(facts)
|
480
462
|
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
463
|
+
catalog = nil
|
464
|
+
assert_nothing_raised("Could not compile catalog") {
|
465
|
+
catalog = Puppet::Node::Catalog.find(node)
|
466
|
+
}
|
467
|
+
|
468
|
+
assert_nothing_raised("Could not convert catalog") {
|
469
|
+
catalog = catalog.to_ral
|
486
470
|
}
|
487
|
-
#assert_nothing_raised {
|
488
|
-
# trans = client.apply()
|
489
|
-
#}
|
490
471
|
|
491
472
|
Puppet::Type.eachtype { |type|
|
492
473
|
type.each { |obj|
|
@@ -498,15 +479,12 @@ class TestSnippets < Test::Unit::TestCase
|
|
498
479
|
assert(obj.name)
|
499
480
|
}
|
500
481
|
}
|
482
|
+
@catalog = catalog
|
501
483
|
assert_nothing_raised {
|
502
484
|
self.send(mname)
|
503
485
|
}
|
504
|
-
|
505
|
-
client.clear
|
506
486
|
}
|
507
487
|
mname = mname.intern
|
508
488
|
end
|
509
489
|
}
|
510
490
|
end
|
511
|
-
|
512
|
-
# $Id: snippets.rb 2463 2007-05-04 23:09:34Z luke $
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppet'
|
6
6
|
require 'puppet/transportable'
|
@@ -47,37 +47,17 @@ class TestTransportable < Test::Unit::TestCase
|
|
47
47
|
assert(newobj.type, "Bucket has no type")
|
48
48
|
end
|
49
49
|
|
50
|
-
# Verify that we correctly strip out collectable objects, since they should
|
51
|
-
# not be sent to the client.
|
52
|
-
def test_collectstrip
|
53
|
-
top = mk_transtree do |object, depth, width|
|
54
|
-
if width % 2 == 1
|
55
|
-
object.collectable = true
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
assert(top.flatten.find_all { |o| o.collectable }.length > 0,
|
60
|
-
"Could not find any collectable objects")
|
61
|
-
|
62
|
-
# Now strip out the collectable objects
|
63
|
-
top.collectstrip!
|
64
|
-
|
65
|
-
# And make sure they're actually gone
|
66
|
-
assert_equal(0, top.flatten.find_all { |o| o.collectable }.length,
|
67
|
-
"Still found collectable objects")
|
68
|
-
end
|
69
|
-
|
70
50
|
# Make sure our 'delve' command is working
|
71
51
|
def test_delve
|
72
52
|
top = mk_transtree do |object, depth, width|
|
73
53
|
if width % 2 == 1
|
74
|
-
object.
|
54
|
+
object.file = :funtest
|
75
55
|
end
|
76
56
|
end
|
77
57
|
|
78
58
|
objects = []
|
79
59
|
buckets = []
|
80
|
-
|
60
|
+
found = []
|
81
61
|
|
82
62
|
count = 0
|
83
63
|
assert_nothing_raised {
|
@@ -87,8 +67,8 @@ class TestTransportable < Test::Unit::TestCase
|
|
87
67
|
buckets << object
|
88
68
|
else
|
89
69
|
objects << object
|
90
|
-
if object.
|
91
|
-
|
70
|
+
if object.file == :funtest
|
71
|
+
found << object
|
92
72
|
end
|
93
73
|
end
|
94
74
|
end
|
@@ -98,10 +78,9 @@ class TestTransportable < Test::Unit::TestCase
|
|
98
78
|
assert(objects.include?(obj), "Missing obj %s[%s]" % [obj.type, obj.name])
|
99
79
|
end
|
100
80
|
|
101
|
-
assert_equal(
|
102
|
-
top.flatten.find_all { |o| o.
|
103
|
-
"Found incorrect number of
|
81
|
+
assert_equal(found.length,
|
82
|
+
top.flatten.find_all { |o| o.file == :funtest }.length,
|
83
|
+
"Found incorrect number of objects")
|
104
84
|
end
|
105
85
|
end
|
106
86
|
|
107
|
-
# $Id: transportable.rb 1793 2006-10-16 22:01:40Z luke $
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'mocha/mock'
|
2
2
|
|
3
|
-
|
4
|
-
#
|
5
|
-
# Mocks created this way will have their expectations automatically verified at the end of the test.
|
6
|
-
#
|
7
|
-
# See Mocha::MockMethods for methods on mock objects.
|
8
|
-
module Mocha
|
3
|
+
module Mocha # :nodoc:
|
9
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
10
|
module AutoVerify
|
11
11
|
|
12
12
|
def mocks # :nodoc:
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Mocha
|
2
|
+
|
3
|
+
class Deprecation
|
4
|
+
|
5
|
+
class << self
|
6
|
+
|
7
|
+
attr_accessor :mode, :messages
|
8
|
+
|
9
|
+
def warning(message)
|
10
|
+
@messages << message
|
11
|
+
$stderr.puts "Mocha deprecation warning: #{message}" unless mode == :disabled
|
12
|
+
$stderr.puts caller.join("\n ") if mode == :debug
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
self.mode = :enabled
|
18
|
+
self.messages = []
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Mocha # :nodoc:
|
2
|
+
|
3
|
+
class ExceptionRaiser # :nodoc:
|
4
|
+
|
5
|
+
def initialize(exception, message)
|
6
|
+
@exception, @message = exception, message
|
7
|
+
end
|
8
|
+
|
9
|
+
def evaluate
|
10
|
+
raise @exception, @exception.to_s if @exception == Interrupt
|
11
|
+
raise @exception, @message if @message
|
12
|
+
raise @exception
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -1,21 +1,18 @@
|
|
1
1
|
require 'mocha/infinite_range'
|
2
2
|
require 'mocha/pretty_parameters'
|
3
3
|
require 'mocha/expectation_error'
|
4
|
+
require 'mocha/return_values'
|
5
|
+
require 'mocha/exception_raiser'
|
6
|
+
require 'mocha/yield_parameters'
|
7
|
+
require 'mocha/is_a'
|
4
8
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
module Mocha
|
12
|
-
# Methods on expectations returned from Mocha::MockMethods#expects and Mocha::MockMethods#stubs
|
9
|
+
module Mocha # :nodoc:
|
10
|
+
|
11
|
+
# Methods on expectations returned from Mock#expects, Mock#stubs, Object#expects and Object#stubs.
|
13
12
|
class Expectation
|
14
13
|
|
15
14
|
# :stopdoc:
|
16
15
|
|
17
|
-
class InvalidExpectation < Exception; end
|
18
|
-
|
19
16
|
class AlwaysEqual
|
20
17
|
def ==(other)
|
21
18
|
true
|
@@ -26,23 +23,26 @@ module Mocha
|
|
26
23
|
|
27
24
|
def initialize(mock, method_name, backtrace = nil)
|
28
25
|
@mock, @method_name = mock, method_name
|
29
|
-
@
|
26
|
+
@expected_count = 1
|
30
27
|
@parameters, @parameter_block = AlwaysEqual.new, nil
|
31
|
-
@
|
28
|
+
@invoked_count, @return_values = 0, ReturnValues.new
|
32
29
|
@backtrace = backtrace || caller
|
33
|
-
@
|
30
|
+
@yield_parameters = YieldParameters.new
|
34
31
|
end
|
35
32
|
|
36
|
-
def yield?
|
37
|
-
@yield
|
38
|
-
end
|
39
|
-
|
40
33
|
def match?(method_name, *arguments)
|
34
|
+
return false unless @method_name == method_name
|
41
35
|
if @parameter_block then
|
42
|
-
@parameter_block.call(*arguments)
|
36
|
+
return false unless @parameter_block.call(*arguments)
|
37
|
+
else
|
38
|
+
return false unless (@parameters == arguments)
|
39
|
+
end
|
40
|
+
if @expected_count.is_a?(Range) then
|
41
|
+
return false unless @invoked_count < @expected_count.last
|
43
42
|
else
|
44
|
-
|
43
|
+
return false unless @invoked_count < @expected_count
|
45
44
|
end
|
45
|
+
return true
|
46
46
|
end
|
47
47
|
|
48
48
|
# :startdoc:
|
@@ -54,34 +54,63 @@ module Mocha
|
|
54
54
|
# +range+ can be specified as an exact integer or as a range of integers
|
55
55
|
# object = mock()
|
56
56
|
# object.expects(:expected_method).times(3)
|
57
|
-
# 3.times { object.expected_method }
|
57
|
+
# 3.times { object.expected_method }
|
58
|
+
# # => verify succeeds
|
58
59
|
#
|
59
60
|
# object = mock()
|
60
61
|
# object.expects(:expected_method).times(3)
|
61
|
-
# 2.times { object.expected_method }
|
62
|
+
# 2.times { object.expected_method }
|
63
|
+
# # => verify fails
|
62
64
|
#
|
63
65
|
# object = mock()
|
64
66
|
# object.expects(:expected_method).times(2..4)
|
65
|
-
# 3.times { object.expected_method }
|
67
|
+
# 3.times { object.expected_method }
|
68
|
+
# # => verify succeeds
|
66
69
|
#
|
67
70
|
# object = mock()
|
68
71
|
# object.expects(:expected_method).times(2..4)
|
69
|
-
# object.expected_method
|
72
|
+
# object.expected_method
|
73
|
+
# # => verify fails
|
70
74
|
def times(range)
|
71
|
-
@
|
75
|
+
@expected_count = range
|
76
|
+
self
|
77
|
+
end
|
78
|
+
|
79
|
+
# :call-seq: once() -> expectation
|
80
|
+
#
|
81
|
+
# Modifies expectation so that the expected method must be called exactly once.
|
82
|
+
# Note that this is the default behaviour for an expectation, but you may wish to use it for clarity/emphasis.
|
83
|
+
# object = mock()
|
84
|
+
# object.expects(:expected_method).once
|
85
|
+
# object.expected_method
|
86
|
+
# # => verify succeeds
|
87
|
+
#
|
88
|
+
# object = mock()
|
89
|
+
# object.expects(:expected_method).once
|
90
|
+
# object.expected_method
|
91
|
+
# object.expected_method
|
92
|
+
# # => verify fails
|
93
|
+
#
|
94
|
+
# object = mock()
|
95
|
+
# object.expects(:expected_method).once
|
96
|
+
# # => verify fails
|
97
|
+
def once()
|
98
|
+
times(1)
|
72
99
|
self
|
73
100
|
end
|
74
101
|
|
75
|
-
# :call-seq: never -> expectation
|
102
|
+
# :call-seq: never() -> expectation
|
76
103
|
#
|
77
104
|
# Modifies expectation so that the expected method must never be called.
|
78
105
|
# object = mock()
|
79
106
|
# object.expects(:expected_method).never
|
80
|
-
# object.expected_method
|
107
|
+
# object.expected_method
|
108
|
+
# # => verify fails
|
81
109
|
#
|
82
110
|
# object = mock()
|
83
111
|
# object.expects(:expected_method).never
|
84
|
-
# object.expected_method
|
112
|
+
# object.expected_method
|
113
|
+
# # => verify succeeds
|
85
114
|
def never
|
86
115
|
times(0)
|
87
116
|
self
|
@@ -92,11 +121,13 @@ module Mocha
|
|
92
121
|
# Modifies expectation so that the expected method must be called at least a +minimum_number_of_times+.
|
93
122
|
# object = mock()
|
94
123
|
# object.expects(:expected_method).at_least(2)
|
95
|
-
# 3.times { object.expected_method }
|
124
|
+
# 3.times { object.expected_method }
|
125
|
+
# # => verify succeeds
|
96
126
|
#
|
97
127
|
# object = mock()
|
98
128
|
# object.expects(:expected_method).at_least(2)
|
99
|
-
# object.expected_method
|
129
|
+
# object.expected_method
|
130
|
+
# # => verify fails
|
100
131
|
def at_least(minimum_number_of_times)
|
101
132
|
times(Range.at_least(minimum_number_of_times))
|
102
133
|
self
|
@@ -107,7 +138,8 @@ module Mocha
|
|
107
138
|
# Modifies expectation so that the expected method must be called at least once.
|
108
139
|
# object = mock()
|
109
140
|
# object.expects(:expected_method).at_least_once
|
110
|
-
# object.expected_method
|
141
|
+
# object.expected_method
|
142
|
+
# # => verify succeeds
|
111
143
|
#
|
112
144
|
# object = mock()
|
113
145
|
# object.expects(:expected_method).at_least_once
|
@@ -122,11 +154,13 @@ module Mocha
|
|
122
154
|
# Modifies expectation so that the expected method must be called at most a +maximum_number_of_times+.
|
123
155
|
# object = mock()
|
124
156
|
# object.expects(:expected_method).at_most(2)
|
125
|
-
# 2.times { object.expected_method }
|
157
|
+
# 2.times { object.expected_method }
|
158
|
+
# # => verify succeeds
|
126
159
|
#
|
127
160
|
# object = mock()
|
128
161
|
# object.expects(:expected_method).at_most(2)
|
129
|
-
# 3.times { object.expected_method }
|
162
|
+
# 3.times { object.expected_method }
|
163
|
+
# # => verify fails
|
130
164
|
def at_most(maximum_number_of_times)
|
131
165
|
times(Range.at_most(maximum_number_of_times))
|
132
166
|
self
|
@@ -137,11 +171,13 @@ module Mocha
|
|
137
171
|
# Modifies expectation so that the expected method must be called at most once.
|
138
172
|
# object = mock()
|
139
173
|
# object.expects(:expected_method).at_most_once
|
140
|
-
# object.expected_method
|
174
|
+
# object.expected_method
|
175
|
+
# # => verify succeeds
|
141
176
|
#
|
142
177
|
# object = mock()
|
143
178
|
# object.expects(:expected_method).at_most_once
|
144
|
-
# 2.times { object.expected_method }
|
179
|
+
# 2.times { object.expected_method }
|
180
|
+
# # => verify fails
|
145
181
|
def at_most_once()
|
146
182
|
at_most(1)
|
147
183
|
self
|
@@ -152,20 +188,26 @@ module Mocha
|
|
152
188
|
# Modifies expectation so that the expected method must be called with specified +arguments+.
|
153
189
|
# object = mock()
|
154
190
|
# object.expects(:expected_method).with(:param1, :param2)
|
155
|
-
# object.expected_method(:param1, :param2)
|
191
|
+
# object.expected_method(:param1, :param2)
|
192
|
+
# # => verify succeeds
|
156
193
|
#
|
157
194
|
# object = mock()
|
158
195
|
# object.expects(:expected_method).with(:param1, :param2)
|
159
|
-
# object.expected_method(:param3)
|
196
|
+
# object.expected_method(:param3)
|
197
|
+
# # => verify fails
|
198
|
+
# May be used with parameter matchers in Mocha::ParameterMatchers.
|
199
|
+
#
|
160
200
|
# If a +parameter_block+ is given, the block is called with the parameters passed to the expected method.
|
161
201
|
# The expectation is matched if the block evaluates to +true+.
|
162
202
|
# object = mock()
|
163
203
|
# object.expects(:expected_method).with() { |value| value % 4 == 0 }
|
164
|
-
# object.expected_method(16)
|
204
|
+
# object.expected_method(16)
|
205
|
+
# # => verify succeeds
|
165
206
|
#
|
166
207
|
# object = mock()
|
167
208
|
# object.expects(:expected_method).with() { |value| value % 4 == 0 }
|
168
|
-
# object.expected_method(17)
|
209
|
+
# object.expected_method(17)
|
210
|
+
# # => verify fails
|
169
211
|
def with(*arguments, ¶meter_block)
|
170
212
|
@parameters, @parameter_block = arguments, parameter_block
|
171
213
|
class << @parameters; def to_s; join(', '); end; end
|
@@ -180,12 +222,42 @@ module Mocha
|
|
180
222
|
# yielded_value = nil
|
181
223
|
# object.expected_method { |value| yielded_value = value }
|
182
224
|
# yielded_value # => 'result'
|
225
|
+
# May be called multiple times on the same expectation for consecutive invocations. Also see Expectation#then.
|
226
|
+
# object = mock()
|
227
|
+
# object.stubs(:expected_method).yields(1).then.yields(2)
|
228
|
+
# yielded_values_from_first_invocation = []
|
229
|
+
# yielded_values_from_second_invocation = []
|
230
|
+
# object.expected_method { |value| yielded_values_from_first_invocation << value } # first invocation
|
231
|
+
# object.expected_method { |value| yielded_values_from_second_invocation << value } # second invocation
|
232
|
+
# yielded_values_from_first_invocation # => [1]
|
233
|
+
# yielded_values_from_second_invocation # => [2]
|
183
234
|
def yields(*parameters)
|
184
|
-
@
|
185
|
-
@parameters_to_yield = parameters
|
235
|
+
@yield_parameters.add(*parameters)
|
186
236
|
self
|
187
237
|
end
|
188
|
-
|
238
|
+
|
239
|
+
# :call-seq: multiple_yields(*parameter_groups) -> expectation
|
240
|
+
#
|
241
|
+
# Modifies expectation so that when the expected method is called, it yields multiple times per invocation with the specified +parameter_groups+.
|
242
|
+
# object = mock()
|
243
|
+
# object.expects(:expected_method).multiple_yields(['result_1', 'result_2'], ['result_3'])
|
244
|
+
# yielded_values = []
|
245
|
+
# object.expected_method { |*values| yielded_values << values }
|
246
|
+
# yielded_values # => [['result_1', 'result_2'], ['result_3]]
|
247
|
+
# May be called multiple times on the same expectation for consecutive invocations. Also see Expectation#then.
|
248
|
+
# object = mock()
|
249
|
+
# object.stubs(:expected_method).multiple_yields([1, 2], [3]).then.multiple_yields([4], [5, 6])
|
250
|
+
# yielded_values_from_first_invocation = []
|
251
|
+
# yielded_values_from_second_invocation = []
|
252
|
+
# object.expected_method { |*values| yielded_values_from_first_invocation << values } # first invocation
|
253
|
+
# object.expected_method { |*values| yielded_values_from_second_invocation << values } # second invocation
|
254
|
+
# yielded_values_from_first_invocation # => [[1, 2], [3]]
|
255
|
+
# yielded_values_from_second_invocation # => [[4], [5, 6]]
|
256
|
+
def multiple_yields(*parameter_groups)
|
257
|
+
@yield_parameters.multiple_add(*parameter_groups)
|
258
|
+
self
|
259
|
+
end
|
260
|
+
|
189
261
|
# :call-seq: returns(value) -> expectation
|
190
262
|
# :call-seq: returns(*values) -> expectation
|
191
263
|
#
|
@@ -199,13 +271,30 @@ module Mocha
|
|
199
271
|
# object.stubs(:stubbed_method).returns(1, 2)
|
200
272
|
# object.stubbed_method # => 1
|
201
273
|
# object.stubbed_method # => 2
|
202
|
-
#
|
274
|
+
# May be called multiple times on the same expectation. Also see Expectation#then.
|
275
|
+
# object = mock()
|
276
|
+
# object.stubs(:expected_method).returns(1, 2).then.returns(3)
|
277
|
+
# object.expected_method # => 1
|
278
|
+
# object.expected_method # => 2
|
279
|
+
# object.expected_method # => 3
|
280
|
+
# May be called in conjunction with Expectation#raises on the same expectation.
|
281
|
+
# object = mock()
|
282
|
+
# object.stubs(:expected_method).returns(1, 2).then.raises(Exception)
|
283
|
+
# object.expected_method # => 1
|
284
|
+
# object.expected_method # => 2
|
285
|
+
# object.expected_method # => raises exception of class Exception1
|
286
|
+
# If +value+ is a +Proc+, then the expected method will return the result of calling <tt>Proc#call</tt>.
|
287
|
+
#
|
288
|
+
# This usage is _deprecated_.
|
289
|
+
# Use explicit multiple return values and/or multiple expectations instead.
|
290
|
+
#
|
291
|
+
# A +Proc+ instance will be treated the same as any other value in a future release.
|
203
292
|
# object = mock()
|
204
293
|
# object.stubs(:stubbed_method).returns(lambda { rand(100) })
|
205
294
|
# object.stubbed_method # => 41
|
206
295
|
# object.stubbed_method # => 77
|
207
296
|
def returns(*values)
|
208
|
-
@
|
297
|
+
@return_values += ReturnValues.build(*values)
|
209
298
|
self
|
210
299
|
end
|
211
300
|
|
@@ -215,23 +304,51 @@ module Mocha
|
|
215
304
|
# object = mock()
|
216
305
|
# object.expects(:expected_method).raises(Exception, 'message')
|
217
306
|
# object.expected_method # => raises exception of class Exception and with message 'message'
|
307
|
+
# May be called multiple times on the same expectation. Also see Expectation#then.
|
308
|
+
# object = mock()
|
309
|
+
# object.stubs(:expected_method).raises(Exception1).then.raises(Exception2)
|
310
|
+
# object.expected_method # => raises exception of class Exception1
|
311
|
+
# object.expected_method # => raises exception of class Exception2
|
312
|
+
# May be called in conjunction with Expectation#returns on the same expectation.
|
313
|
+
# object = mock()
|
314
|
+
# object.stubs(:expected_method).raises(Exception).then.returns(2, 3)
|
315
|
+
# object.expected_method # => raises exception of class Exception1
|
316
|
+
# object.expected_method # => 2
|
317
|
+
# object.expected_method # => 3
|
218
318
|
def raises(exception = RuntimeError, message = nil)
|
219
|
-
@
|
319
|
+
@return_values += ReturnValues.new(ExceptionRaiser.new(exception, message))
|
220
320
|
self
|
221
321
|
end
|
222
322
|
|
323
|
+
# :call-seq: then() -> expectation
|
324
|
+
#
|
325
|
+
# Syntactic sugar to improve readability. Has no effect on state of the expectation.
|
326
|
+
# object = mock()
|
327
|
+
# object.stubs(:expected_method).returns(1, 2).then.raises(Exception).then.returns(4)
|
328
|
+
# object.expected_method # => 1
|
329
|
+
# object.expected_method # => 2
|
330
|
+
# object.expected_method # => raises exception of class Exception
|
331
|
+
# object.expected_method # => 4
|
332
|
+
def then
|
333
|
+
self
|
334
|
+
end
|
335
|
+
|
223
336
|
# :stopdoc:
|
224
337
|
|
225
338
|
def invoke
|
226
|
-
@
|
227
|
-
|
228
|
-
|
339
|
+
@invoked_count += 1
|
340
|
+
if block_given? then
|
341
|
+
@yield_parameters.next_invocation.each do |yield_parameters|
|
342
|
+
yield(*yield_parameters)
|
343
|
+
end
|
344
|
+
end
|
345
|
+
@return_values.next
|
229
346
|
end
|
230
347
|
|
231
348
|
def verify
|
232
349
|
yield(self) if block_given?
|
233
|
-
unless (@
|
234
|
-
error = ExpectationError.new(error_message(@
|
350
|
+
unless (@expected_count === @invoked_count) then
|
351
|
+
error = ExpectationError.new(error_message(@expected_count, @invoked_count))
|
235
352
|
error.set_backtrace(filtered_backtrace)
|
236
353
|
raise error
|
237
354
|
end
|
@@ -251,45 +368,11 @@ module Mocha
|
|
251
368
|
end
|
252
369
|
|
253
370
|
def error_message(expected_count, actual_count)
|
254
|
-
"#{@mock.mocha_inspect}.#{method_signature} - expected calls: #{expected_count}, actual calls: #{actual_count}"
|
371
|
+
"#{@mock.mocha_inspect}.#{method_signature} - expected calls: #{expected_count.mocha_inspect}, actual calls: #{actual_count}"
|
255
372
|
end
|
256
373
|
|
257
374
|
# :startdoc:
|
258
375
|
|
259
376
|
end
|
260
377
|
|
261
|
-
# :stopdoc:
|
262
|
-
|
263
|
-
class Stub < Expectation
|
264
|
-
|
265
|
-
def verify
|
266
|
-
true
|
267
|
-
end
|
268
|
-
|
269
|
-
end
|
270
|
-
|
271
|
-
class MissingExpectation < Expectation
|
272
|
-
|
273
|
-
def initialize(mock, method_name)
|
274
|
-
super
|
275
|
-
@invoked = true
|
276
|
-
end
|
277
|
-
|
278
|
-
def verify
|
279
|
-
msg = error_message(0, 1)
|
280
|
-
similar_expectations_list = similar_expectations.collect { |expectation| expectation.method_signature }.join("\n")
|
281
|
-
msg << "\nSimilar expectations:\n#{similar_expectations_list}" unless similar_expectations.empty?
|
282
|
-
error = ExpectationError.new(msg)
|
283
|
-
error.set_backtrace(filtered_backtrace)
|
284
|
-
raise error if @invoked
|
285
|
-
end
|
286
|
-
|
287
|
-
def similar_expectations
|
288
|
-
@mock.expectations.select { |expectation| expectation.method_name == self.method_name }
|
289
|
-
end
|
290
|
-
|
291
|
-
end
|
292
|
-
|
293
|
-
# :startdoc:
|
294
|
-
|
295
378
|
end
|