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
@@ -1,29 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Mocks
|
3
|
-
class OrderGroup
|
4
|
-
def initialize error_generator
|
5
|
-
@error_generator = error_generator
|
6
|
-
@ordering = Array.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def register(expectation)
|
10
|
-
@ordering << expectation
|
11
|
-
end
|
12
|
-
|
13
|
-
def ready_for?(expectation)
|
14
|
-
return @ordering.first == expectation
|
15
|
-
end
|
16
|
-
|
17
|
-
def consume
|
18
|
-
@ordering.shift
|
19
|
-
end
|
20
|
-
|
21
|
-
def handle_order_constraint expectation
|
22
|
-
return unless @ordering.include? expectation
|
23
|
-
return consume if ready_for?(expectation)
|
24
|
-
@error_generator.raise_out_of_order_error expectation.sym
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,173 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# Define a task library for running RSpec contexts.
|
4
|
-
|
5
|
-
require 'rake'
|
6
|
-
require 'rake/tasklib'
|
7
|
-
|
8
|
-
module Spec
|
9
|
-
module Rake
|
10
|
-
|
11
|
-
# A Rake task that runs a set of RSpec contexts.
|
12
|
-
#
|
13
|
-
# Example:
|
14
|
-
#
|
15
|
-
# Spec::Rake::SpecTask.new do |t|
|
16
|
-
# t.warning = true
|
17
|
-
# t.rcov = true
|
18
|
-
# end
|
19
|
-
#
|
20
|
-
# This will create a task that can be run with:
|
21
|
-
#
|
22
|
-
# rake spec
|
23
|
-
#
|
24
|
-
class SpecTask < ::Rake::TaskLib
|
25
|
-
|
26
|
-
# Name of spec task. (default is :spec)
|
27
|
-
attr_accessor :name
|
28
|
-
|
29
|
-
# Array of directories to be added to $LOAD_PATH before running the
|
30
|
-
# specs. Defaults to ['<the absolute path to RSpec's lib directory>']
|
31
|
-
attr_accessor :libs
|
32
|
-
|
33
|
-
# If true, requests that the specs be run with the warning flag set.
|
34
|
-
# E.g. warning=true implies "ruby -w" used to run the specs. Defaults to false.
|
35
|
-
attr_accessor :warning
|
36
|
-
|
37
|
-
# Glob pattern to match spec files. (default is 'spec/**/*_spec.rb')
|
38
|
-
attr_accessor :pattern
|
39
|
-
|
40
|
-
# Array of commandline options to pass to RSpec. Defaults to [].
|
41
|
-
attr_accessor :spec_opts
|
42
|
-
|
43
|
-
# Where RSpec's output is written. Defaults to STDOUT.
|
44
|
-
attr_accessor :out
|
45
|
-
|
46
|
-
# Whether or not to use RCov (default is false)
|
47
|
-
# See http://eigenclass.org/hiki.rb?rcov
|
48
|
-
attr_accessor :rcov
|
49
|
-
|
50
|
-
# Array of commandline options to pass to RCov. Defaults to ['--exclude', 'lib\/spec,bin\/spec'].
|
51
|
-
# Ignored if rcov=false
|
52
|
-
attr_accessor :rcov_opts
|
53
|
-
|
54
|
-
# Directory where the RCov report is written. Defaults to "coverage"
|
55
|
-
# Ignored if rcov=false
|
56
|
-
attr_accessor :rcov_dir
|
57
|
-
|
58
|
-
# Array of commandline options to pass to ruby. Defaults to [].
|
59
|
-
attr_accessor :ruby_opts
|
60
|
-
|
61
|
-
# Whether or not to fail Rake when an error occurs (typically when specs fail).
|
62
|
-
# Defaults to true.
|
63
|
-
attr_accessor :fail_on_error
|
64
|
-
|
65
|
-
# A message to print to stdout when there are failures.
|
66
|
-
attr_accessor :failure_message
|
67
|
-
|
68
|
-
# Explicitly define the list of spec files to be included in a
|
69
|
-
# spec. +list+ is expected to be an array of file names (a
|
70
|
-
# FileList is acceptable). If both +pattern+ and +spec_files+ are
|
71
|
-
# used, then the list of spec files is the union of the two.
|
72
|
-
def spec_files=(list)
|
73
|
-
@spec_files = list
|
74
|
-
end
|
75
|
-
|
76
|
-
# Create a specing task.
|
77
|
-
def initialize(name=:spec)
|
78
|
-
@name = name
|
79
|
-
@libs = [File.expand_path(File.dirname(__FILE__) + '/../../../lib')]
|
80
|
-
@pattern = nil
|
81
|
-
@spec_files = nil
|
82
|
-
@spec_opts = []
|
83
|
-
@warning = false
|
84
|
-
@ruby_opts = []
|
85
|
-
@out = nil
|
86
|
-
@fail_on_error = true
|
87
|
-
@rcov = false
|
88
|
-
@rcov_opts = ['--exclude', 'lib\/spec,bin\/spec,config\/boot.rb']
|
89
|
-
@rcov_dir = "coverage"
|
90
|
-
|
91
|
-
yield self if block_given?
|
92
|
-
@pattern = 'spec/**/*_spec.rb' if @pattern.nil? && @spec_files.nil?
|
93
|
-
define
|
94
|
-
end
|
95
|
-
|
96
|
-
def define
|
97
|
-
spec_script = File.expand_path(File.dirname(__FILE__) + '/../../../bin/spec')
|
98
|
-
|
99
|
-
lib_path = @libs.join(File::PATH_SEPARATOR)
|
100
|
-
actual_name = Hash === name ? name.keys.first : name
|
101
|
-
unless ::Rake.application.last_comment
|
102
|
-
desc "Run RSpec for #{actual_name}" + (@rcov ? " using RCov" : "")
|
103
|
-
end
|
104
|
-
task @name do
|
105
|
-
RakeFileUtils.verbose(@verbose) do
|
106
|
-
ruby_opts = @ruby_opts.clone
|
107
|
-
ruby_opts.push( "-I\"#{lib_path}\"" )
|
108
|
-
ruby_opts.push( "-S rcov" ) if @rcov
|
109
|
-
ruby_opts.push( "-w" ) if @warning
|
110
|
-
|
111
|
-
redirect = @out.nil? ? "" : " > \"#{@out}\""
|
112
|
-
|
113
|
-
unless spec_file_list.empty?
|
114
|
-
# ruby [ruby_opts] -Ilib -S rcov [rcov_opts] bin/spec -- [spec_opts] examples
|
115
|
-
# or
|
116
|
-
# ruby [ruby_opts] -Ilib bin/spec [spec_opts] examples
|
117
|
-
begin
|
118
|
-
ruby(
|
119
|
-
ruby_opts.join(" ") + " " +
|
120
|
-
rcov_option_list +
|
121
|
-
(@rcov ? %[ -o "#{@rcov_dir}" ] : "") +
|
122
|
-
'"' + spec_script + '"' + " " +
|
123
|
-
(@rcov ? "-- " : "") +
|
124
|
-
spec_file_list.collect { |fn| %["#{fn}"] }.join(' ') + " " +
|
125
|
-
spec_option_list + " " +
|
126
|
-
redirect
|
127
|
-
)
|
128
|
-
rescue => e
|
129
|
-
puts @failure_message if @failure_message
|
130
|
-
raise e if @fail_on_error
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
if @rcov
|
137
|
-
desc "Remove rcov products for #{actual_name}"
|
138
|
-
task paste("clobber_", actual_name) do
|
139
|
-
rm_r @rcov_dir rescue nil
|
140
|
-
end
|
141
|
-
|
142
|
-
clobber_task = paste("clobber_", actual_name)
|
143
|
-
task :clobber => [clobber_task]
|
144
|
-
|
145
|
-
task actual_name => clobber_task
|
146
|
-
end
|
147
|
-
self
|
148
|
-
end
|
149
|
-
|
150
|
-
def rcov_option_list # :nodoc:
|
151
|
-
return "" unless @rcov
|
152
|
-
ENV['RCOVOPTS'] || @rcov_opts.join(" ") || ""
|
153
|
-
end
|
154
|
-
|
155
|
-
def spec_option_list # :nodoc:
|
156
|
-
ENV['RSPECOPTS'] || @spec_opts.join(" ") || ""
|
157
|
-
end
|
158
|
-
|
159
|
-
def spec_file_list # :nodoc:
|
160
|
-
if ENV['SPEC']
|
161
|
-
FileList[ ENV['SPEC'] ]
|
162
|
-
else
|
163
|
-
result = []
|
164
|
-
result += @spec_files.to_a if @spec_files
|
165
|
-
result += FileList[ @pattern ].to_a if @pattern
|
166
|
-
FileList[result]
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
end
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
@@ -1,47 +0,0 @@
|
|
1
|
-
module RCov
|
2
|
-
# A task that can verify that the RCov coverage doesn't
|
3
|
-
# drop below a certain threshold. It should be run after
|
4
|
-
# running Spec::Rake::SpecTask.
|
5
|
-
class VerifyTask < Rake::TaskLib
|
6
|
-
# Name of the task. Defaults to :verify_rcov
|
7
|
-
attr_accessor :name
|
8
|
-
|
9
|
-
# Path to the index.html file generated by RCov, which
|
10
|
-
# is the file containing the total coverage.
|
11
|
-
# Defaults to 'coverage/index.html'
|
12
|
-
attr_accessor :index_html
|
13
|
-
|
14
|
-
# Whether or not to output details. Defaults to true.
|
15
|
-
attr_accessor :verbose
|
16
|
-
|
17
|
-
# The threshold value (in percent) for coverage. If the
|
18
|
-
# actual coverage is not equal to this value, the task will raise an
|
19
|
-
# exception.
|
20
|
-
attr_accessor :threshold
|
21
|
-
|
22
|
-
def initialize(name=:verify_rcov)
|
23
|
-
@name = name
|
24
|
-
@index_html = 'coverage/index.html'
|
25
|
-
@verbose = true
|
26
|
-
yield self if block_given?
|
27
|
-
raise "Threshold must be set" if @threshold.nil?
|
28
|
-
define
|
29
|
-
end
|
30
|
-
|
31
|
-
def define
|
32
|
-
desc "Verify that rcov coverage is at least #{threshold}%"
|
33
|
-
task @name do
|
34
|
-
total_coverage = nil
|
35
|
-
File.open(index_html).each_line do |line|
|
36
|
-
if line =~ /<tt.*>(\d+\.\d+)%<\/tt> <\/td>/
|
37
|
-
total_coverage = eval($1)
|
38
|
-
break
|
39
|
-
end
|
40
|
-
end
|
41
|
-
puts "Coverage: #{total_coverage}% (threshold: #{threshold}%)" if verbose
|
42
|
-
raise "Coverage must be at least #{threshold}% but was #{total_coverage}%" if total_coverage < threshold
|
43
|
-
raise "Coverage has increased above the threshold of #{threshold}% to #{total_coverage}%. You should update your threshold value." if total_coverage > threshold
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
data/test/lib/spec/runner.rb
DELETED
@@ -1,132 +0,0 @@
|
|
1
|
-
require 'spec/runner/formatter'
|
2
|
-
require 'spec/runner/context'
|
3
|
-
require 'spec/runner/context_eval'
|
4
|
-
require 'spec/runner/specification'
|
5
|
-
require 'spec/runner/execution_context'
|
6
|
-
require 'spec/runner/context_runner'
|
7
|
-
require 'spec/runner/option_parser'
|
8
|
-
require 'spec/runner/command_line'
|
9
|
-
require 'spec/runner/drb_command_line'
|
10
|
-
require 'spec/runner/backtrace_tweaker'
|
11
|
-
require 'spec/runner/reporter'
|
12
|
-
require 'spec/runner/spec_matcher'
|
13
|
-
require 'spec/runner/extensions/object'
|
14
|
-
require 'spec/runner/extensions/kernel'
|
15
|
-
require 'spec/runner/spec_should_raise_handler'
|
16
|
-
require 'spec/runner/spec_parser'
|
17
|
-
|
18
|
-
module Spec
|
19
|
-
# == Contexts and Specifications
|
20
|
-
#
|
21
|
-
# Rather than expressing examples in classes, RSpec uses a custom domain specific language to express
|
22
|
-
# examples using contexts and specifications.
|
23
|
-
#
|
24
|
-
# A context is the equivalent of a fixture in xUnit-speak. It is a metaphor for the context
|
25
|
-
# in which you will run your executable example - a set of known objects in a known starting state.
|
26
|
-
#
|
27
|
-
# context "A new account" do
|
28
|
-
#
|
29
|
-
# setup do
|
30
|
-
# @account = Account.new
|
31
|
-
# end
|
32
|
-
#
|
33
|
-
# specify "should have a balance of $0" do
|
34
|
-
# @account.balance.should_eql Money.new(0, :dollars)
|
35
|
-
# end
|
36
|
-
#
|
37
|
-
# end
|
38
|
-
#
|
39
|
-
# We use the setup block to set up the context (given), and then the specify method to
|
40
|
-
# hold the example code that expresses the event (when) and the expected outcome (then).
|
41
|
-
#
|
42
|
-
# == Helper Methods
|
43
|
-
#
|
44
|
-
# A primary goal of RSpec is to keep the examples clear. We therefore prefer
|
45
|
-
# less indirection than you might see in xUnit examples and in well factored, DRY production code. We feel
|
46
|
-
# that duplication is OK if removing it makes it harder to understand an example without
|
47
|
-
# having to look elsewhere to understand its context.
|
48
|
-
#
|
49
|
-
# That said, RSpec does support some level of encapsulating common code in helper
|
50
|
-
# methods that can exist within a context or within an included module.
|
51
|
-
#
|
52
|
-
# == Setup and Teardown
|
53
|
-
#
|
54
|
-
# You can use setup, teardown, context_setup and context_teardown within a context:
|
55
|
-
#
|
56
|
-
# context "..." do
|
57
|
-
# context_setup do
|
58
|
-
# ...
|
59
|
-
# end
|
60
|
-
#
|
61
|
-
# setup do
|
62
|
-
# ...
|
63
|
-
# end
|
64
|
-
#
|
65
|
-
# specify "number one" do
|
66
|
-
# ...
|
67
|
-
# end
|
68
|
-
#
|
69
|
-
# specify "number two" do
|
70
|
-
# ...
|
71
|
-
# end
|
72
|
-
#
|
73
|
-
# teardown do
|
74
|
-
# ...
|
75
|
-
# end
|
76
|
-
#
|
77
|
-
# context_teardown do
|
78
|
-
# ...
|
79
|
-
# end
|
80
|
-
#
|
81
|
-
# end
|
82
|
-
#
|
83
|
-
# The <tt>setup</tt> block will run before each of the specs, once for each spec. Likewise,
|
84
|
-
# the <tt>teardown</tt> block will run after each of the specs.
|
85
|
-
#
|
86
|
-
# It is also possible to specify a <tt>context_setup</tt> and <tt>context_teardown</tt>
|
87
|
-
# block that will run only once for each context, respectively before the first <code>setup</code>
|
88
|
-
# and after the last <code>teardown</code>. The use of these is generally discouraged, because it
|
89
|
-
# introduces dependencies between the specs. Still, it might prove useful for very expensive operations
|
90
|
-
# if you know what you are doing.
|
91
|
-
#
|
92
|
-
# == Local helper methods
|
93
|
-
#
|
94
|
-
# You can include local helper methods by simply expressing them within a context:
|
95
|
-
#
|
96
|
-
# context "..." do
|
97
|
-
#
|
98
|
-
# specify "..." do
|
99
|
-
# helper_method
|
100
|
-
# end
|
101
|
-
#
|
102
|
-
# def helper_method
|
103
|
-
# ...
|
104
|
-
# end
|
105
|
-
#
|
106
|
-
# end
|
107
|
-
#
|
108
|
-
# == Included helper methods
|
109
|
-
#
|
110
|
-
# You can include helper methods in multiple contexts by expressing them within
|
111
|
-
# a module, and then including that module in your context:
|
112
|
-
#
|
113
|
-
# module AccountExampleHelperMethods
|
114
|
-
# def helper_method
|
115
|
-
# ...
|
116
|
-
# end
|
117
|
-
# end
|
118
|
-
#
|
119
|
-
# context "A new account" do
|
120
|
-
# include AccountExampleHelperMethods
|
121
|
-
# setup do
|
122
|
-
# @account = Account.new
|
123
|
-
# end
|
124
|
-
#
|
125
|
-
# specify "should have a balance of $0" do
|
126
|
-
# helper_method
|
127
|
-
# @account.balance.should eql(Money.new(0, :dollars))
|
128
|
-
# end
|
129
|
-
# end
|
130
|
-
module Runner
|
131
|
-
end
|
132
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Runner
|
3
|
-
class BacktraceTweaker
|
4
|
-
def clean_up_double_slashes(line)
|
5
|
-
line.gsub!('//','/')
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
class NoisyBacktraceTweaker < BacktraceTweaker
|
10
|
-
def tweak_backtrace(error, spec_name)
|
11
|
-
return if error.backtrace.nil?
|
12
|
-
error.backtrace.each do |line|
|
13
|
-
clean_up_double_slashes(line)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# Tweaks raised Exceptions to mask noisy (unneeded) parts of the backtrace
|
19
|
-
class QuietBacktraceTweaker < BacktraceTweaker
|
20
|
-
unless defined?(IGNORE_PATTERNS)
|
21
|
-
root_dir = File.expand_path(File.join(__FILE__, '..', '..', '..', '..'))
|
22
|
-
spec_files = Dir["#{root_dir}/lib/spec/*"].map do |path|
|
23
|
-
subpath = path[root_dir.length..-1]
|
24
|
-
/#{subpath}/
|
25
|
-
end
|
26
|
-
IGNORE_PATTERNS = spec_files + [
|
27
|
-
/\/lib\/ruby\//,
|
28
|
-
/bin\/spec:/,
|
29
|
-
/bin\/rcov:/,
|
30
|
-
/lib\/rspec_on_rails/,
|
31
|
-
/vendor\/rails/,
|
32
|
-
# TextMate's Ruby and RSpec plugins
|
33
|
-
/Ruby\.tmbundle\/Support\/tmruby.rb:/,
|
34
|
-
/RSpec\.tmbundle\/Support\/lib/,
|
35
|
-
/temp_textmate\./
|
36
|
-
]
|
37
|
-
end
|
38
|
-
|
39
|
-
def tweak_backtrace(error, spec_name)
|
40
|
-
return if error.backtrace.nil?
|
41
|
-
error.backtrace.collect! do |line|
|
42
|
-
clean_up_double_slashes(line)
|
43
|
-
IGNORE_PATTERNS.each do |ignore|
|
44
|
-
if line =~ ignore
|
45
|
-
line = nil
|
46
|
-
break
|
47
|
-
end
|
48
|
-
end
|
49
|
-
line
|
50
|
-
end
|
51
|
-
error.backtrace.compact!
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec/runner/option_parser'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module Runner
|
5
|
-
# Facade to run specs without having to fork a new ruby process (using `spec ...`)
|
6
|
-
class CommandLine
|
7
|
-
# Runs specs. +argv+ is the commandline args as per the spec commandline API, +err+
|
8
|
-
# and +out+ are the streams output will be written to. +exit+ tells whether or
|
9
|
-
# not a system exit should be called after the specs are run and
|
10
|
-
# +warn_if_no_files+ tells whether or not a warning (the help message)
|
11
|
-
# should be printed to +err+ in case no files are specified.
|
12
|
-
def self.run(argv, err, out, exit=true, warn_if_no_files=true)
|
13
|
-
old_context_runner = defined?($context_runner) ? $context_runner : nil
|
14
|
-
$context_runner = OptionParser.new.create_context_runner(argv, err, out, warn_if_no_files)
|
15
|
-
return if $context_runner.nil? # This is the case if we use --drb
|
16
|
-
|
17
|
-
# If ARGV is a glob, it will actually each over each one of the matching files.
|
18
|
-
argv.each do |file_or_dir|
|
19
|
-
if File.directory?(file_or_dir)
|
20
|
-
Dir["#{file_or_dir}/**/*.rb"].each do |file|
|
21
|
-
load file
|
22
|
-
end
|
23
|
-
elsif File.file?(file_or_dir)
|
24
|
-
load file_or_dir
|
25
|
-
else
|
26
|
-
raise "File or directory not found: #{file_or_dir}"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
$context_runner.run(exit)
|
30
|
-
$context_runner = old_context_runner
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|