puppet 0.18.4 → 0.22.4
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 +288 -0
- data/README +2 -2
- data/Rakefile +78 -5
- data/bin/puppet +28 -36
- data/bin/puppetca +81 -38
- data/bin/puppetd +65 -62
- data/bin/puppetdoc +409 -140
- data/bin/puppetmasterd +59 -47
- data/bin/puppetrun +38 -23
- data/conf/freebsd/puppetd +26 -0
- data/conf/freebsd/puppetmasterd +26 -0
- data/conf/gentoo/conf.d/puppet +5 -0
- data/conf/gentoo/conf.d/puppetmaster +12 -0
- data/conf/gentoo/init.d/puppet +38 -0
- data/conf/gentoo/init.d/puppetmaster +50 -0
- data/conf/gentoo/puppet/fileserver.conf +12 -0
- data/conf/gentoo/puppet/puppetca.conf +29 -0
- data/conf/gentoo/puppet/puppetd.conf +29 -0
- data/conf/gentoo/puppet/puppetmasterd.conf +29 -0
- data/conf/redhat/client.init +10 -5
- data/conf/redhat/client.sysconfig +1 -1
- data/conf/redhat/fileserver.conf +2 -2
- data/conf/redhat/logrotate +1 -1
- data/conf/redhat/no-lockdir.patch +13 -0
- data/conf/redhat/puppet.spec +65 -8
- data/conf/redhat/puppetd.conf +0 -4
- data/conf/redhat/server.init +3 -6
- data/conf/solaris/pkginfo +1 -1
- data/conf/solaris/smf/svc-puppetd +2 -2
- data/conf/suse/client.init +142 -0
- data/conf/suse/puppet.spec +221 -0
- data/conf/suse/server.init +162 -0
- data/examples/code/mac_automount.pp +16 -0
- data/examples/root/bin/sleeper +3 -5
- data/examples/root/etc/init.d/sleeper +8 -2
- data/examples/root/etc/puppet/fileserver.conf +12 -2
- data/examples/root/etc/puppet/namespaceauth.conf +20 -0
- data/examples/root/etc/puppet/puppetd.conf +4 -0
- data/examples/root/etc/puppet/puppetmasterd.conf +6 -9
- data/examples/root/etc/puppet/tagmail.conf +1 -0
- data/ext/emacs/puppet-mode.el +46 -1
- data/ext/logcheck/puppet +15 -0
- data/ext/module_puppet +15 -23
- data/ext/vim/puppet.vim +4 -2
- data/install.rb +2 -1
- data/lib/puppet.rb +76 -207
- data/lib/puppet/configuration.rb +331 -0
- data/lib/puppet/daemon.rb +63 -246
- data/lib/puppet/dsl.rb +371 -0
- data/lib/puppet/element.rb +8 -26
- data/lib/puppet/error.rb +54 -0
- data/lib/puppet/event.rb +8 -243
- data/lib/puppet/{base64.rb → external/base64.rb} +0 -0
- data/lib/puppet/external/event-loop.rb +1 -0
- data/lib/puppet/{event-loop → external/event-loop}/better-definers.rb +0 -0
- data/lib/puppet/{event-loop → external/event-loop}/event-loop.rb +2 -2
- data/lib/puppet/{event-loop → external/event-loop}/signal-system.rb +1 -1
- data/lib/puppet/external/gratr.rb +33 -0
- data/lib/puppet/external/gratr/adjacency_graph.rb +257 -0
- data/lib/puppet/external/gratr/base.rb +34 -0
- data/lib/puppet/external/gratr/biconnected.rb +116 -0
- data/lib/puppet/external/gratr/chinese_postman.rb +123 -0
- data/lib/puppet/external/gratr/common.rb +73 -0
- data/lib/puppet/external/gratr/comparability.rb +92 -0
- data/lib/puppet/external/gratr/digraph.rb +116 -0
- data/lib/puppet/external/gratr/digraph_distance.rb +185 -0
- data/lib/puppet/external/gratr/dot.rb +90 -0
- data/lib/puppet/external/gratr/edge.rb +145 -0
- data/lib/puppet/external/gratr/graph.rb +303 -0
- data/lib/puppet/external/gratr/graph_api.rb +83 -0
- data/lib/puppet/external/gratr/import.rb +44 -0
- data/lib/puppet/external/gratr/labels.rb +90 -0
- data/lib/puppet/external/gratr/maximum_flow.rb +64 -0
- data/lib/puppet/external/gratr/rdot.rb +327 -0
- data/lib/puppet/external/gratr/search.rb +409 -0
- data/lib/puppet/external/gratr/strong_components.rb +127 -0
- data/lib/puppet/external/gratr/undirected_graph.rb +153 -0
- data/lib/puppet/{lock.rb → external/lock.rb} +1 -1
- data/lib/puppet/feature/base.rb +20 -0
- data/lib/puppet/feature/rails.rb +52 -0
- data/lib/puppet/metatype/attributes.rb +719 -0
- data/lib/puppet/metatype/closure.rb +111 -0
- data/lib/puppet/metatype/container.rb +94 -0
- data/lib/puppet/metatype/evaluation.rb +118 -0
- data/lib/puppet/metatype/instances.rb +261 -0
- data/lib/puppet/metatype/manager.rb +169 -0
- data/lib/puppet/metatype/metaparams.rb +409 -0
- data/lib/puppet/metatype/providers.rb +260 -0
- data/lib/puppet/metatype/relationships.rb +116 -0
- data/lib/puppet/metatype/schedules.rb +39 -0
- data/lib/puppet/metatype/tags.rb +39 -0
- data/lib/puppet/modules.rb +113 -0
- data/lib/puppet/network/authconfig.rb +168 -0
- data/lib/puppet/network/authorization.rb +84 -0
- data/lib/puppet/network/authstore.rb +293 -0
- data/lib/puppet/network/client.rb +187 -0
- data/lib/puppet/network/client/ca.rb +56 -0
- data/lib/puppet/network/client/dipper.rb +81 -0
- data/lib/puppet/network/client/file.rb +7 -0
- data/lib/puppet/network/client/logger.rb +6 -0
- data/lib/puppet/network/client/master.rb +644 -0
- data/lib/puppet/{client → network/client}/proxy.rb +3 -3
- data/lib/puppet/{client/reporter.rb → network/client/report.rb} +4 -7
- data/lib/puppet/{client/pelement.rb → network/client/resource.rb} +6 -19
- data/lib/puppet/network/client/runner.rb +13 -0
- data/lib/puppet/network/client/status.rb +5 -0
- data/lib/puppet/network/client_request.rb +32 -0
- data/lib/puppet/network/handler.rb +33 -0
- data/lib/puppet/{server → network/handler}/ca.rb +5 -6
- data/lib/puppet/network/handler/filebucket.rb +180 -0
- data/lib/puppet/{server → network/handler}/fileserver.rb +277 -219
- data/lib/puppet/{server → network/handler}/logger.rb +3 -5
- data/lib/puppet/{server → network/handler}/master.rb +42 -8
- data/lib/puppet/network/handler/report.rb +158 -0
- data/lib/puppet/network/handler/resource.rb +190 -0
- data/lib/puppet/{server → network/handler}/runner.rb +17 -18
- data/lib/puppet/network/handler/status.rb +13 -0
- data/lib/puppet/network/rights.rb +74 -0
- data/lib/puppet/network/server.rb +5 -0
- data/lib/puppet/network/server/mongrel.rb +138 -0
- data/lib/puppet/network/server/webrick.rb +153 -0
- data/lib/puppet/network/xmlrpc/client.rb +129 -0
- data/lib/puppet/network/xmlrpc/processor.rb +91 -0
- data/lib/puppet/network/xmlrpc/server.rb +20 -0
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +121 -0
- data/lib/puppet/parameter.rb +390 -346
- data/lib/puppet/parser/ast.rb +116 -147
- data/lib/puppet/parser/ast/astarray.rb +17 -33
- data/lib/puppet/parser/ast/branch.rb +2 -0
- data/lib/puppet/parser/ast/caseopt.rb +7 -12
- data/lib/puppet/parser/ast/casestatement.rb +23 -32
- data/lib/puppet/parser/ast/collection.rb +19 -80
- data/lib/puppet/parser/ast/collexpr.rb +81 -0
- data/lib/puppet/parser/ast/component.rb +160 -89
- data/lib/puppet/parser/ast/else.rb +30 -0
- data/lib/puppet/parser/ast/function.rb +9 -2
- data/lib/puppet/parser/ast/hostclass.rb +47 -131
- data/lib/puppet/parser/ast/ifstatement.rb +43 -0
- data/lib/puppet/parser/ast/leaf.rb +10 -21
- data/lib/puppet/parser/ast/node.rb +32 -79
- data/lib/puppet/parser/ast/resourcedef.rb +222 -0
- data/lib/puppet/parser/ast/{typedefaults.rb → resourcedefaults.rb} +10 -16
- data/lib/puppet/parser/ast/resourceoverride.rb +62 -0
- data/lib/puppet/parser/ast/{objectparam.rb → resourceparam.rb} +12 -6
- data/lib/puppet/parser/ast/resourceref.rb +44 -0
- data/lib/puppet/parser/ast/selector.rb +16 -8
- data/lib/puppet/parser/ast/tag.rb +3 -1
- data/lib/puppet/parser/ast/vardef.rb +8 -12
- data/lib/puppet/parser/collector.rb +181 -0
- data/lib/puppet/parser/functions.rb +191 -36
- data/lib/puppet/parser/interpreter.rb +802 -380
- data/lib/puppet/parser/lexer.rb +86 -19
- data/lib/puppet/parser/parser.rb +1123 -960
- data/lib/puppet/parser/resource.rb +353 -0
- data/lib/puppet/parser/resource/param.rb +57 -0
- data/lib/puppet/parser/resource/reference.rb +71 -0
- data/lib/puppet/parser/scope.rb +573 -1000
- data/lib/puppet/parser/templatewrapper.rb +54 -0
- data/lib/puppet/pgraph.rb +208 -0
- data/lib/puppet/propertychange.rb +143 -0
- data/lib/puppet/provider.rb +302 -0
- data/lib/puppet/provider/cron/crontab.rb +187 -0
- data/lib/puppet/provider/group/groupadd.rb +29 -0
- data/lib/puppet/provider/group/netinfo.rb +12 -0
- data/lib/puppet/provider/group/pw.rb +31 -0
- data/lib/puppet/provider/host/netinfo.rb +18 -0
- data/lib/puppet/provider/host/parsed.rb +73 -0
- data/lib/puppet/provider/mount.rb +57 -0
- data/lib/puppet/provider/mount/netinfo.rb +38 -0
- data/lib/puppet/provider/mount/parsed.rb +37 -0
- data/lib/puppet/provider/nameservice.rb +344 -0
- data/lib/puppet/provider/nameservice/netinfo.rb +210 -0
- data/lib/puppet/provider/nameservice/objectadd.rb +45 -0
- data/lib/puppet/provider/nameservice/pw.rb +22 -0
- data/lib/puppet/provider/package/apple.rb +53 -0
- data/lib/puppet/provider/package/apt.rb +119 -0
- data/lib/puppet/provider/package/aptitude.rb +30 -0
- data/lib/puppet/provider/package/aptrpm.rb +79 -0
- data/lib/puppet/provider/package/blastwave.rb +114 -0
- data/lib/puppet/provider/package/darwinport.rb +88 -0
- data/lib/puppet/provider/package/dpkg.rb +109 -0
- data/lib/puppet/provider/package/freebsd.rb +43 -0
- data/lib/puppet/provider/package/gem.rb +104 -0
- data/lib/puppet/provider/package/openbsd.rb +93 -0
- data/lib/puppet/provider/package/pkgdmg.rb +119 -0
- data/lib/puppet/provider/package/portage.rb +112 -0
- data/lib/puppet/provider/package/ports.rb +94 -0
- data/lib/puppet/provider/package/rpm.rb +125 -0
- data/lib/puppet/provider/package/rug.rb +53 -0
- data/lib/puppet/provider/package/sun.rb +168 -0
- data/lib/puppet/provider/package/sunfreeware.rb +9 -0
- data/lib/puppet/provider/package/up2date.rb +45 -0
- data/lib/puppet/provider/package/yum.rb +54 -0
- data/lib/puppet/provider/parsedfile.rb +342 -0
- data/lib/puppet/provider/port/parsed.rb +174 -0
- data/lib/puppet/provider/service/base.rb +136 -0
- data/lib/puppet/provider/service/debian.rb +32 -0
- data/lib/puppet/provider/service/gentoo.rb +49 -0
- data/lib/puppet/{type → provider}/service/init.rb +42 -40
- data/lib/puppet/provider/service/redhat.rb +59 -0
- data/lib/puppet/{type → provider}/service/smf.rb +24 -13
- data/lib/puppet/provider/sshkey/parsed.rb +36 -0
- data/lib/puppet/provider/user/netinfo.rb +106 -0
- data/lib/puppet/provider/user/pw.rb +41 -0
- data/lib/puppet/provider/user/useradd.rb +67 -0
- data/lib/puppet/provider/zone/solaris.rb +208 -0
- data/lib/puppet/rails.rb +102 -66
- data/lib/puppet/rails/database/001_add_indexes.rb +38 -0
- data/lib/puppet/rails/database/schema.rb +89 -0
- data/lib/puppet/rails/external/tagging/acts_as_taggable.rb +62 -0
- data/lib/puppet/rails/external/tagging/init.rb +5 -0
- data/lib/puppet/rails/external/tagging/tag.rb +50 -0
- data/lib/puppet/rails/external/tagging/tagging.rb +12 -0
- data/lib/puppet/rails/fact_name.rb +7 -0
- data/lib/puppet/rails/fact_value.rb +5 -0
- data/lib/puppet/rails/host.rb +95 -46
- data/lib/puppet/rails/param_name.rb +28 -0
- data/lib/puppet/rails/param_value.rb +5 -0
- data/lib/puppet/rails/puppet_class.rb +9 -0
- data/lib/puppet/rails/resource.rb +95 -0
- data/lib/puppet/rails/source_file.rb +5 -0
- data/lib/puppet/relationship.rb +63 -0
- data/lib/puppet/reports/log.rb +14 -0
- data/lib/puppet/reports/rrdgraph.rb +114 -10
- data/lib/puppet/reports/store.rb +64 -0
- data/lib/puppet/reports/tagmail.rb +144 -71
- data/lib/puppet/sslcertificates.rb +38 -5
- data/lib/puppet/sslcertificates/ca.rb +142 -37
- data/lib/puppet/sslcertificates/certificate.rb +3 -3
- data/lib/puppet/sslcertificates/inventory.rb +53 -0
- data/lib/puppet/sslcertificates/support.rb +128 -0
- data/lib/puppet/transaction.rb +568 -189
- data/lib/puppet/transaction/report.rb +14 -3
- data/lib/puppet/transportable.rb +18 -10
- data/lib/puppet/type.rb +279 -2299
- data/lib/puppet/type/component.rb +63 -63
- data/lib/puppet/type/cron.rb +294 -710
- data/lib/puppet/type/exec.rb +185 -129
- data/lib/puppet/type/group.rb +38 -89
- data/lib/puppet/type/host.rb +110 -0
- data/lib/puppet/type/mount.rb +189 -0
- data/lib/puppet/type/notify.rb +47 -0
- data/lib/puppet/type/package.rb +129 -257
- data/lib/puppet/type/parsedtype.rb +172 -297
- data/lib/puppet/type/pfile.rb +540 -319
- data/lib/puppet/type/pfile/checksum.rb +103 -76
- data/lib/puppet/type/pfile/content.rb +16 -10
- data/lib/puppet/type/pfile/ensure.rb +52 -34
- data/lib/puppet/type/pfile/group.rb +25 -18
- data/lib/puppet/type/pfile/mode.rb +7 -4
- data/lib/puppet/type/pfile/{uid.rb → owner.rb} +21 -17
- data/lib/puppet/type/pfile/source.rb +119 -124
- data/lib/puppet/type/pfile/target.rb +29 -45
- data/lib/puppet/type/pfile/type.rb +2 -2
- data/lib/puppet/type/pfilebucket.rb +18 -14
- data/lib/puppet/type/port.rb +121 -0
- data/lib/puppet/type/property.rb +530 -0
- data/lib/puppet/type/resources.rb +150 -0
- data/lib/puppet/type/schedule.rb +38 -22
- data/lib/puppet/type/service.rb +70 -326
- data/lib/puppet/type/sshkey.rb +76 -0
- data/lib/puppet/type/tidy.rb +197 -97
- data/lib/puppet/type/user.rb +107 -183
- data/lib/puppet/type/yumrepo.rb +53 -34
- data/lib/puppet/type/zone.rb +55 -208
- data/lib/puppet/util.rb +239 -201
- data/lib/puppet/util/autoload.rb +107 -0
- data/lib/puppet/util/classgen.rb +208 -0
- data/lib/puppet/{config.rb → util/config.rb} +102 -54
- data/lib/puppet/util/docs.rb +104 -0
- data/lib/puppet/util/errors.rb +55 -0
- data/lib/puppet/util/execution.rb +22 -0
- data/lib/puppet/util/feature.rb +76 -0
- data/lib/puppet/util/fileparsing.rb +380 -0
- data/lib/puppet/util/filetype.rb +300 -0
- data/lib/puppet/util/graph.rb +39 -0
- data/lib/puppet/util/inifile.rb +209 -0
- data/lib/puppet/util/loadedfile.rb +71 -0
- data/lib/puppet/util/log.rb +549 -0
- data/lib/puppet/util/logging.rb +20 -0
- data/lib/puppet/util/metaid.rb +22 -0
- data/lib/puppet/util/methodhelper.rb +37 -0
- data/lib/puppet/util/metric.rb +160 -0
- data/lib/puppet/util/package.rb +31 -0
- data/lib/puppet/util/pidlock.rb +68 -0
- data/lib/puppet/util/plist.rb +24 -0
- data/lib/puppet/util/plist/generator.rb +226 -0
- data/lib/puppet/util/plist/parser.rb +227 -0
- data/lib/puppet/util/posix.rb +87 -0
- data/lib/puppet/util/provider_features.rb +170 -0
- data/lib/puppet/util/rails/collection_merger.rb +42 -0
- data/lib/puppet/util/storage.rb +103 -0
- data/lib/puppet/util/subclass_loader.rb +83 -0
- data/lib/puppet/util/suidmanager.rb +86 -0
- data/lib/puppet/util/variables.rb +39 -0
- data/lib/puppet/util/warnings.rb +15 -0
- data/test/Rakefile +97 -0
- data/test/certmgr/ca.rb +81 -0
- data/test/certmgr/certmgr.rb +77 -50
- data/test/certmgr/inventory.rb +79 -0
- data/test/certmgr/support.rb +81 -0
- data/test/executables/filebucket.rb +49 -0
- data/test/executables/puppetbin.rb +28 -12
- data/test/executables/puppetca.rb +75 -54
- data/test/executables/puppetd.rb +10 -13
- data/test/executables/puppetmasterd.rb +12 -17
- data/test/executables/puppetmodule.rb +18 -17
- data/test/language/ast.rb +242 -798
- data/test/language/ast/casestatement.rb +104 -0
- data/test/language/ast/component.rb +133 -0
- data/test/language/ast/hostclass.rb +162 -0
- data/test/language/ast/selector.rb +62 -0
- data/test/language/ast/variable.rb +31 -0
- data/test/language/collector.rb +369 -0
- data/test/language/functions.rb +305 -18
- data/test/language/interpreter.rb +894 -125
- data/test/language/lexer.rb +98 -12
- data/test/language/node.rb +37 -53
- data/test/language/parser.rb +455 -148
- data/test/language/resource.rb +535 -0
- data/test/language/scope.rb +451 -561
- data/test/language/snippets.rb +101 -111
- data/test/language/transportable.rb +6 -8
- data/test/lib/mocha.rb +19 -0
- data/test/lib/mocha/any_instance_method.rb +35 -0
- data/test/lib/mocha/auto_verify.rb +113 -0
- data/test/lib/mocha/central.rb +35 -0
- data/test/lib/mocha/class_method.rb +62 -0
- data/test/lib/mocha/expectation.rb +295 -0
- data/test/lib/mocha/expectation_error.rb +6 -0
- data/test/lib/mocha/infinite_range.rb +27 -0
- data/test/lib/mocha/inspect.rb +37 -0
- data/test/lib/mocha/instance_method.rb +8 -0
- data/test/lib/mocha/metaclass.rb +7 -0
- data/test/lib/mocha/mock.rb +20 -0
- data/test/lib/mocha/mock_methods.rb +122 -0
- data/test/lib/mocha/object.rb +100 -0
- data/test/lib/mocha/pretty_parameters.rb +28 -0
- data/test/lib/mocha/setup_and_teardown.rb +23 -0
- data/test/lib/mocha/standalone.rb +30 -0
- data/test/lib/mocha/test_case_adapter.rb +49 -0
- data/test/lib/mocha_standalone.rb +2 -0
- data/test/lib/puppettest.rb +294 -0
- data/test/lib/puppettest/certificates.rb +61 -0
- data/test/lib/puppettest/exetest.rb +123 -0
- data/test/lib/puppettest/fakes.rb +194 -0
- data/test/lib/puppettest/fileparsing.rb +33 -0
- data/test/lib/puppettest/filetesting.rb +231 -0
- data/test/lib/puppettest/graph.rb +41 -0
- data/test/lib/puppettest/parsertesting.rb +392 -0
- data/test/lib/puppettest/railstesting.rb +56 -0
- data/test/lib/puppettest/reporttesting.rb +19 -0
- data/test/lib/puppettest/resourcetesting.rb +73 -0
- data/test/lib/puppettest/servertest.rb +72 -0
- data/test/lib/puppettest/support.rb +8 -0
- data/test/lib/puppettest/support/assertions.rb +101 -0
- data/test/lib/puppettest/support/helpers.rb +23 -0
- data/test/lib/puppettest/support/resources.rb +37 -0
- data/test/lib/puppettest/support/utils.rb +160 -0
- data/test/lib/puppettest/testcase.rb +48 -0
- data/test/lib/rake/puppet_test_loader.rb +17 -0
- data/test/lib/rake/puppet_testtask.rb +17 -0
- data/test/lib/spec.rb +8 -0
- data/test/lib/spec/callback.rb +11 -0
- data/test/lib/spec/callback/callback_container.rb +60 -0
- data/test/lib/spec/callback/extensions/module.rb +24 -0
- data/test/lib/spec/callback/extensions/object.rb +37 -0
- data/test/lib/spec/deprecated.rb +3 -0
- data/test/lib/spec/expectations.rb +59 -0
- data/test/lib/spec/expectations/differs/default.rb +62 -0
- data/test/lib/spec/expectations/errors.rb +6 -0
- data/test/lib/spec/expectations/extensions.rb +3 -0
- data/test/lib/spec/expectations/extensions/object.rb +109 -0
- data/test/lib/spec/expectations/extensions/proc.rb +57 -0
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/test/lib/spec/expectations/handler.rb +47 -0
- data/test/lib/spec/expectations/should.rb +5 -0
- data/test/lib/spec/expectations/should/base.rb +64 -0
- data/test/lib/spec/expectations/should/change.rb +69 -0
- data/test/lib/spec/expectations/should/have.rb +128 -0
- data/test/lib/spec/expectations/should/not.rb +74 -0
- data/test/lib/spec/expectations/should/should.rb +81 -0
- data/test/lib/spec/expectations/sugar.rb +47 -0
- data/test/lib/spec/matchers.rb +160 -0
- data/test/lib/spec/matchers/be.rb +161 -0
- data/test/lib/spec/matchers/be_close.rb +37 -0
- data/test/lib/spec/matchers/change.rb +120 -0
- data/test/lib/spec/matchers/eql.rb +43 -0
- data/test/lib/spec/matchers/equal.rb +43 -0
- data/test/lib/spec/matchers/has.rb +44 -0
- data/test/lib/spec/matchers/have.rb +140 -0
- data/test/lib/spec/matchers/include.rb +50 -0
- data/test/lib/spec/matchers/match.rb +41 -0
- data/test/lib/spec/matchers/raise_error.rb +100 -0
- data/test/lib/spec/matchers/respond_to.rb +35 -0
- data/test/lib/spec/matchers/satisfy.rb +47 -0
- data/test/lib/spec/matchers/throw_symbol.rb +75 -0
- data/test/lib/spec/mocks.rb +232 -0
- data/test/lib/spec/mocks/argument_expectation.rb +132 -0
- data/test/lib/spec/mocks/error_generator.rb +85 -0
- data/test/lib/spec/mocks/errors.rb +10 -0
- data/test/lib/spec/mocks/extensions/object.rb +3 -0
- data/test/lib/spec/mocks/message_expectation.rb +231 -0
- data/test/lib/spec/mocks/methods.rb +40 -0
- data/test/lib/spec/mocks/mock.rb +26 -0
- data/test/lib/spec/mocks/mock_handler.rb +166 -0
- data/test/lib/spec/mocks/order_group.rb +29 -0
- data/test/lib/spec/rake/spectask.rb +173 -0
- data/test/lib/spec/rake/verify_rcov.rb +47 -0
- data/test/lib/spec/runner.rb +132 -0
- data/test/lib/spec/runner/backtrace_tweaker.rb +55 -0
- data/test/lib/spec/runner/command_line.rb +34 -0
- data/test/lib/spec/runner/context.rb +154 -0
- data/test/lib/spec/runner/context_eval.rb +142 -0
- data/test/lib/spec/runner/context_runner.rb +55 -0
- data/test/lib/spec/runner/drb_command_line.rb +21 -0
- data/test/lib/spec/runner/execution_context.rb +17 -0
- data/test/lib/spec/runner/extensions/kernel.rb +17 -0
- data/test/lib/spec/runner/extensions/object.rb +32 -0
- data/test/lib/spec/runner/formatter.rb +5 -0
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +118 -0
- data/test/lib/spec/runner/formatter/html_formatter.rb +219 -0
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +27 -0
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +22 -0
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +23 -0
- data/test/lib/spec/runner/heckle_runner.rb +71 -0
- data/test/lib/spec/runner/heckle_runner_win.rb +10 -0
- data/test/lib/spec/runner/option_parser.rb +224 -0
- data/test/lib/spec/runner/reporter.rb +105 -0
- data/test/lib/spec/runner/spec_matcher.rb +25 -0
- data/test/lib/spec/runner/spec_parser.rb +41 -0
- data/test/lib/spec/runner/spec_should_raise_handler.rb +74 -0
- data/test/lib/spec/runner/specification.rb +114 -0
- data/test/lib/spec/translator.rb +87 -0
- data/test/lib/spec/version.rb +30 -0
- data/test/lib/stubba.rb +2 -0
- data/test/network/authconfig.rb +72 -0
- data/test/network/authorization.rb +138 -0
- data/test/network/authstore.rb +450 -0
- data/test/network/client/ca.rb +38 -0
- data/test/{client → network/client}/client.rb +107 -24
- data/test/network/client/dipper.rb +35 -0
- data/test/network/client/master.rb +627 -0
- data/test/{client/pelement.rb → network/client/resource.rb} +13 -29
- data/test/network/client_request.rb +39 -0
- data/test/network/daemon.rb +71 -0
- data/test/{server → network/handler}/bucket.rb +103 -27
- data/test/{server → network/handler}/ca.rb +14 -19
- data/test/{server → network/handler}/fileserver.rb +443 -68
- data/test/network/handler/handler.rb +64 -0
- data/test/{server → network/handler}/logger.rb +26 -26
- data/test/network/handler/master.rb +352 -0
- data/test/network/handler/report.rb +185 -0
- data/test/{server/pelement.rb → network/handler/resource.rb} +25 -38
- data/test/{server → network/handler}/runner.rb +17 -16
- data/test/network/rights.rb +38 -0
- data/test/network/server/webrick.rb +140 -0
- data/test/network/xmlrpc/client.rb +68 -0
- data/test/network/xmlrpc/processor.rb +80 -0
- data/test/network/xmlrpc/server.rb +28 -0
- data/test/network/xmlrpc/webrick_servlet.rb +26 -0
- data/test/other/dsl.rb +218 -0
- data/test/other/events.rb +22 -15
- data/test/other/overrides.rb +9 -14
- data/test/other/pgraph.rb +289 -0
- data/test/other/propertychange.rb +142 -0
- data/test/other/provider.rb +162 -0
- data/test/other/puppet.rb +63 -10
- data/test/other/relationship.rb +74 -0
- data/test/other/relationships.rb +199 -123
- data/test/other/report.rb +152 -23
- data/test/other/transactions.rb +824 -78
- data/test/puppet/conffiles.rb +16 -11
- data/test/puppet/defaults.rb +7 -10
- data/test/puppet/{error.rb → errortest.rb} +5 -8
- data/test/puppet/modules.rb +58 -0
- data/test/puppet/tc_suidmanager.rb +107 -0
- data/test/rails/host.rb +177 -0
- data/test/rails/rails.rb +27 -0
- data/test/rails/railsparameter.rb +62 -0
- data/test/rails/railsresource.rb +100 -0
- data/test/ral/manager/attributes.rb +296 -0
- data/test/ral/manager/manager.rb +55 -0
- data/test/ral/manager/provider.rb +54 -0
- data/test/ral/manager/type.rb +837 -0
- data/test/ral/providers/cron/crontab.rb +346 -0
- data/test/ral/providers/group.rb +252 -0
- data/test/ral/providers/host/netinfo.rb +58 -0
- data/test/ral/providers/host/parsed.rb +226 -0
- data/test/ral/providers/mount/netinfo.rb +80 -0
- data/test/ral/providers/mount/parsed.rb +223 -0
- data/test/ral/providers/nameservice.rb +33 -0
- data/test/ral/providers/package.rb +253 -0
- data/test/ral/providers/package/apt.rb +89 -0
- data/test/ral/providers/package/aptitude.rb +69 -0
- data/test/ral/providers/package/aptrpm.rb +89 -0
- data/test/ral/providers/package/dpkg.rb +64 -0
- data/test/ral/providers/parsedfile.rb +668 -0
- data/test/ral/providers/parsedport.rb +233 -0
- data/test/ral/providers/provider.rb +423 -0
- data/test/{types → ral/providers}/service.rb +20 -121
- data/test/ral/providers/service/base.rb +75 -0
- data/test/ral/providers/sshkey/parsed.rb +111 -0
- data/test/ral/providers/user.rb +567 -0
- data/test/ral/providers/user/useradd.rb +250 -0
- data/test/ral/types/basic.rb +90 -0
- data/test/ral/types/component.rb +113 -0
- data/test/ral/types/cron.rb +480 -0
- data/test/{types → ral/types}/exec.rb +278 -82
- data/test/ral/types/file.rb +1799 -0
- data/test/ral/types/file/target.rb +363 -0
- data/test/{types → ral/types}/filebucket.rb +15 -17
- data/test/{types → ral/types}/fileignoresource.rb +9 -15
- data/test/ral/types/filesources.rb +1046 -0
- data/test/ral/types/group.rb +169 -0
- data/test/ral/types/host.rb +155 -0
- data/test/ral/types/mount.rb +312 -0
- data/test/ral/types/package.rb +85 -0
- data/test/ral/types/parameter.rb +172 -0
- data/test/ral/types/port.rb +148 -0
- data/test/ral/types/property.rb +343 -0
- data/test/ral/types/resources.rb +221 -0
- data/test/{types → ral/types}/schedule.rb +34 -12
- data/test/ral/types/service.rb +37 -0
- data/test/{types → ral/types}/sshkey.rb +75 -65
- data/test/ral/types/tidy.rb +240 -0
- data/test/ral/types/user.rb +493 -0
- data/test/{types → ral/types}/yumrepo.rb +7 -11
- data/test/{types → ral/types}/zone.rb +45 -45
- data/test/tagging/tagging.rb +17 -26
- data/test/util/autoload.rb +130 -0
- data/test/util/classgen.rb +227 -0
- data/test/{other → util}/config.rb +373 -113
- data/test/util/execution.rb +34 -0
- data/test/util/features.rb +94 -0
- data/test/util/fileparsing.rb +677 -0
- data/test/{other → util}/filetype.rb +9 -12
- data/test/util/graph.rb +108 -0
- data/test/{other → util}/inifile.rb +24 -11
- data/test/util/loadedfile.rb +106 -0
- data/test/{other → util}/log.rb +96 -50
- data/test/{other → util}/metrics.rb +7 -17
- data/test/util/package.rb +27 -0
- data/test/util/pidlock.rb +126 -0
- data/test/util/posixtest.rb +173 -0
- data/test/util/storage.rb +123 -0
- data/test/util/subclass_loader.rb +100 -0
- data/test/util/utiltest.rb +368 -0
- metadata +449 -169
- data/examples/code/classing +0 -35
- data/examples/code/failers/badclassnoparam +0 -10
- data/examples/code/failers/badclassparam +0 -10
- data/examples/code/failers/badcompnoparam +0 -9
- data/examples/code/failers/badcompparam +0 -9
- data/examples/code/failers/badtypeparam +0 -3
- data/examples/code/failers/noobjectrvalue +0 -1
- data/examples/code/snippets/aliastest.pp +0 -16
- data/examples/code/snippets/argumentdefaults +0 -14
- data/examples/code/snippets/casestatement.pp +0 -58
- data/examples/code/snippets/classheirarchy.pp +0 -15
- data/examples/code/snippets/classincludes.pp +0 -17
- data/examples/code/snippets/classpathtest +0 -11
- data/examples/code/snippets/componentmetaparams.pp +0 -11
- data/examples/code/snippets/deepclassheirarchy.pp +0 -23
- data/examples/code/snippets/defineoverrides.pp +0 -17
- data/examples/code/snippets/dirchmod +0 -19
- data/examples/code/snippets/emptyclass.pp +0 -9
- data/examples/code/snippets/emptyexec.pp +0 -3
- data/examples/code/snippets/failmissingexecpath.pp +0 -13
- data/examples/code/snippets/falsevalues.pp +0 -3
- data/examples/code/snippets/filecreate +0 -11
- data/examples/code/snippets/implicititeration +0 -15
- data/examples/code/snippets/multipleinstances +0 -7
- data/examples/code/snippets/namevartest +0 -9
- data/examples/code/snippets/scopetest +0 -13
- data/examples/code/snippets/selectorvalues.pp +0 -42
- data/examples/code/snippets/simpledefaults +0 -5
- data/examples/code/snippets/simpleselector +0 -38
- data/examples/code/snippets/singleary.pp +0 -19
- data/examples/code/snippets/singlequote.pp +0 -11
- data/examples/code/snippets/singleselector.pp +0 -22
- data/examples/code/snippets/tag.pp +0 -9
- data/examples/code/snippets/tagged.pp +0 -35
- data/lib/puppet/client.rb +0 -177
- data/lib/puppet/client/ca.rb +0 -21
- data/lib/puppet/client/dipper.rb +0 -76
- data/lib/puppet/client/file.rb +0 -20
- data/lib/puppet/client/log.rb +0 -17
- data/lib/puppet/client/master.rb +0 -531
- data/lib/puppet/client/runner.rb +0 -17
- data/lib/puppet/client/status.rb +0 -7
- data/lib/puppet/event-loop.rb +0 -1
- data/lib/puppet/filetype.rb +0 -308
- data/lib/puppet/inifile.rb +0 -201
- data/lib/puppet/log.rb +0 -524
- data/lib/puppet/metric.rb +0 -132
- data/lib/puppet/networkclient.rb +0 -175
- data/lib/puppet/parsedfile.rb +0 -58
- data/lib/puppet/parser/ast/classdef.rb +0 -79
- data/lib/puppet/parser/ast/compdef.rb +0 -75
- data/lib/puppet/parser/ast/nodedef.rb +0 -73
- data/lib/puppet/parser/ast/objectdef.rb +0 -284
- data/lib/puppet/parser/ast/objectref.rb +0 -77
- data/lib/puppet/rails/database.rb +0 -40
- data/lib/puppet/rails/rails_object.rb +0 -42
- data/lib/puppet/rails/rails_parameter.rb +0 -5
- data/lib/puppet/server.rb +0 -196
- data/lib/puppet/server/authconfig.rb +0 -177
- data/lib/puppet/server/authstore.rb +0 -226
- data/lib/puppet/server/filebucket.rb +0 -155
- data/lib/puppet/server/pelement.rb +0 -188
- data/lib/puppet/server/report.rb +0 -184
- data/lib/puppet/server/rights.rb +0 -78
- data/lib/puppet/server/servlet.rb +0 -274
- data/lib/puppet/statechange.rb +0 -129
- data/lib/puppet/storage.rb +0 -98
- data/lib/puppet/type/nameservice.rb +0 -264
- data/lib/puppet/type/nameservice/netinfo.rb +0 -232
- data/lib/puppet/type/nameservice/objectadd.rb +0 -146
- data/lib/puppet/type/nameservice/posix.rb +0 -12
- data/lib/puppet/type/nameservice/pw.rb +0 -107
- data/lib/puppet/type/package/apple.rb +0 -41
- data/lib/puppet/type/package/apt.rb +0 -107
- data/lib/puppet/type/package/blastwave.rb +0 -136
- data/lib/puppet/type/package/darwinport.rb +0 -97
- data/lib/puppet/type/package/dpkg.rb +0 -113
- data/lib/puppet/type/package/freebsd.rb +0 -19
- data/lib/puppet/type/package/gem.rb +0 -119
- data/lib/puppet/type/package/openbsd.rb +0 -112
- data/lib/puppet/type/package/ports.rb +0 -103
- data/lib/puppet/type/package/rpm.rb +0 -121
- data/lib/puppet/type/package/sun.rb +0 -174
- data/lib/puppet/type/package/sunfreeware.rb +0 -7
- data/lib/puppet/type/package/yum.rb +0 -52
- data/lib/puppet/type/parsedtype/host.rb +0 -144
- data/lib/puppet/type/parsedtype/mount.rb +0 -271
- data/lib/puppet/type/parsedtype/port.rb +0 -261
- data/lib/puppet/type/parsedtype/sshkey.rb +0 -123
- data/lib/puppet/type/service/base.rb +0 -12
- data/lib/puppet/type/service/debian.rb +0 -46
- data/lib/puppet/type/service/redhat.rb +0 -38
- data/lib/puppet/type/state.rb +0 -393
- data/lib/puppet/type/symlink.rb +0 -186
- data/test/client/master.rb +0 -207
- data/test/language/rails.rb +0 -105
- data/test/other/parsedfile.rb +0 -58
- data/test/other/storage.rb +0 -100
- data/test/puppet/utiltest.rb +0 -299
- data/test/puppettest.rb +0 -1170
- data/test/server/authconfig.rb +0 -56
- data/test/server/authstore.rb +0 -218
- data/test/server/master.rb +0 -201
- data/test/server/report.rb +0 -93
- data/test/server/rights.rb +0 -41
- data/test/server/server.rb +0 -152
- data/test/test +0 -61
- data/test/types/basic.rb +0 -117
- data/test/types/component.rb +0 -298
- data/test/types/cron.rb +0 -718
- data/test/types/file.rb +0 -1314
- data/test/types/filesources.rb +0 -590
- data/test/types/group.rb +0 -323
- data/test/types/host.rb +0 -186
- data/test/types/mount.rb +0 -294
- data/test/types/package.rb +0 -538
- data/test/types/parameter.rb +0 -107
- data/test/types/port.rb +0 -201
- data/test/types/query.rb +0 -101
- data/test/types/state.rb +0 -92
- data/test/types/symlink.rb +0 -120
- data/test/types/tidy.rb +0 -102
- data/test/types/type.rb +0 -469
- data/test/types/user.rb +0 -563
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke A. Kanies on 2007-03-05.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require 'puppettest'
|
7
|
+
|
8
|
+
class PuppetTest::TestCase < Test::Unit::TestCase
|
9
|
+
include PuppetTest
|
10
|
+
def self.confine(hash)
|
11
|
+
@confines ||= {}
|
12
|
+
hash.each do |message, result|
|
13
|
+
@confines[message] = result
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.runnable?
|
18
|
+
@messages ||= []
|
19
|
+
return false unless @messages.empty?
|
20
|
+
return true unless defined? @confines
|
21
|
+
@confines.find_all do |message, result|
|
22
|
+
! result
|
23
|
+
end.each do |message, result|
|
24
|
+
@messages << message
|
25
|
+
end
|
26
|
+
|
27
|
+
return @messages.empty?
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.suite
|
31
|
+
# Always skip this parent class. It'd be nice if there were a
|
32
|
+
# "supported" way to do this.
|
33
|
+
if self == PuppetTest::TestCase
|
34
|
+
suite = Test::Unit::TestSuite.new(name)
|
35
|
+
return suite
|
36
|
+
elsif self.runnable?
|
37
|
+
return super
|
38
|
+
else
|
39
|
+
if defined? $console
|
40
|
+
puts "Skipping %s: %s" % [name, @messages.join(", ")]
|
41
|
+
end
|
42
|
+
suite = Test::Unit::TestSuite.new(name)
|
43
|
+
return suite
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# $Id: testcase.rb 2267 2007-03-08 06:03:36Z luke $
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
require 'test/unit/autorunner'
|
3
|
+
require 'getoptlong'
|
4
|
+
require 'puppettest'
|
5
|
+
|
6
|
+
args = PuppetTest.munge_argv
|
7
|
+
|
8
|
+
args.each { |f| require f unless f =~ /^-/ }
|
9
|
+
|
10
|
+
runner = Test::Unit::AutoRunner.new(false)
|
11
|
+
runner.process_args
|
12
|
+
|
13
|
+
unless runner.run
|
14
|
+
exit 14
|
15
|
+
end
|
16
|
+
|
17
|
+
# $Id: puppet_test_loader.rb 2377 2007-03-31 06:35:23Z luke $
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module Rake
|
4
|
+
class PuppetTestTask < Rake::TestTask
|
5
|
+
def rake_loader
|
6
|
+
if Integer(RUBY_VERSION.split(/\./)[2]) < 4
|
7
|
+
file = super
|
8
|
+
else
|
9
|
+
file = find_file('rake/puppet_test_loader') or
|
10
|
+
fail "unable to find rake test loader"
|
11
|
+
end
|
12
|
+
return file
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# $Id: puppet_testtask.rb 2057 2007-01-05 21:55:18Z luke $
|
data/test/lib/spec.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec/callback/callback_container'
|
2
|
+
require 'spec/callback/extensions/module'
|
3
|
+
require 'spec/callback/extensions/object'
|
4
|
+
|
5
|
+
# Callback is a fork of Brian Takita's "callback library" (see http://callback.rubyforge.org),
|
6
|
+
# which Brian graciously contributed to RSpec in order to avoid the dependency.
|
7
|
+
#
|
8
|
+
# RSpec uses Callback internally to create hooks to Spec::Runner events. If you're interested
|
9
|
+
# in a simple, powerful API for generating callback events, check out http://callback.rubyforge.org.
|
10
|
+
module Callback
|
11
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module Callback
|
2
|
+
class CallbackContainer
|
3
|
+
def initialize
|
4
|
+
@callback_registry = Hash.new do |hash, key|
|
5
|
+
hash[key] = Array.new
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
# Defines the callback with the key in this container.
|
10
|
+
def define(key, callback_proc=nil, &callback_block)
|
11
|
+
callback = extract_callback(callback_block, callback_proc) do
|
12
|
+
raise "You must define the callback that accepts the call method."
|
13
|
+
end
|
14
|
+
@callback_registry[key] << callback
|
15
|
+
callback
|
16
|
+
end
|
17
|
+
|
18
|
+
# Undefines the callback with the key in this container.
|
19
|
+
def undefine(key, callback_proc)
|
20
|
+
callback = extract_callback(callback_proc) do
|
21
|
+
raise "You may only undefine callbacks that use the call method."
|
22
|
+
end
|
23
|
+
@callback_registry[key].delete callback
|
24
|
+
callback
|
25
|
+
end
|
26
|
+
|
27
|
+
# Notifies the callbacks for the key. Arguments may be passed.
|
28
|
+
# An error handler may be passed in as a block. If there is an error, the block is called with
|
29
|
+
# error object as an argument.
|
30
|
+
# An array of the return values of the callbacks is returned.
|
31
|
+
def notify(key, *args, &error_handler)
|
32
|
+
@callback_registry[key].collect do |callback|
|
33
|
+
begin
|
34
|
+
callback.call(*args)
|
35
|
+
rescue Exception => e
|
36
|
+
yield(e) if error_handler
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Clears all of the callbacks in this container.
|
42
|
+
def clear
|
43
|
+
@callback_registry.clear
|
44
|
+
end
|
45
|
+
|
46
|
+
protected
|
47
|
+
def extract_callback(first_choice_callback, second_choice_callback = nil)
|
48
|
+
callback = nil
|
49
|
+
if first_choice_callback
|
50
|
+
callback = first_choice_callback
|
51
|
+
elsif second_choice_callback
|
52
|
+
callback = second_choice_callback
|
53
|
+
end
|
54
|
+
unless callback.respond_to? :call
|
55
|
+
yield
|
56
|
+
end
|
57
|
+
return callback
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Callback
|
2
|
+
module ModuleMethods
|
3
|
+
# For each event_name submitted, defines a callback event with this name.
|
4
|
+
# Client code can then register as a callback listener using object.event_name.
|
5
|
+
def callback_events(*event_names)
|
6
|
+
event_names.each do |event_name|
|
7
|
+
define_callback_event(event_name)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def define_callback_event(event_name)
|
13
|
+
module_eval <<-EOS
|
14
|
+
def #{event_name}(&block)
|
15
|
+
register_callback(:#{event_name}, &block)
|
16
|
+
end
|
17
|
+
EOS
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Module
|
23
|
+
include Callback::ModuleMethods
|
24
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Callback
|
2
|
+
module InstanceMethods
|
3
|
+
# Registers a callback for the event on the object. The callback can either be a block or a proc.
|
4
|
+
# When the callbacks are notified, the return value of the proc is passed to the caller.
|
5
|
+
def register_callback(event, callback_proc=nil, &callback_block)
|
6
|
+
callbacks.define(event, callback_proc, &callback_block)
|
7
|
+
end
|
8
|
+
|
9
|
+
# Removes the callback from the event. The callback proc must be the same
|
10
|
+
# object as the one that was passed to register_callback.
|
11
|
+
def unregister_callback(event, callback_proc)
|
12
|
+
callbacks.undefine(event, callback_proc)
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
# Notifies the callbacks registered with the event on the object. Arguments can be passed to the callbacks.
|
17
|
+
# An error handler may be passed in as a block. If there is an error, the block is called with
|
18
|
+
# error object as an argument.
|
19
|
+
# An array of the return values of the callbacks is returned.
|
20
|
+
def notify_callbacks(event, *args, &error_handler)
|
21
|
+
callbacks.notify(event, *args, &error_handler)
|
22
|
+
end
|
23
|
+
|
24
|
+
def notify_class_callbacks(event, *args, &error_handler)
|
25
|
+
self.class.send(:notify_callbacks, event, *args, &error_handler)
|
26
|
+
end
|
27
|
+
|
28
|
+
# The CallbackContainer for this object.
|
29
|
+
def callbacks
|
30
|
+
@callbacks ||= CallbackContainer.new
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class Object
|
36
|
+
include Callback::InstanceMethods
|
37
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec/deprecated'
|
2
|
+
require 'spec/matchers'
|
3
|
+
require 'spec/expectations/sugar'
|
4
|
+
require 'spec/expectations/errors'
|
5
|
+
require 'spec/expectations/extensions'
|
6
|
+
require 'spec/expectations/should'
|
7
|
+
require 'spec/expectations/handler'
|
8
|
+
|
9
|
+
module Spec
|
10
|
+
|
11
|
+
# Spec::Expectations lets you set expectations on your objects.
|
12
|
+
#
|
13
|
+
# result.should == 37
|
14
|
+
# team.should have(11).players_on_the_field
|
15
|
+
#
|
16
|
+
# == How Expectations work.
|
17
|
+
#
|
18
|
+
# Spec::Expectations adds two methods to Object:
|
19
|
+
#
|
20
|
+
# should(matcher=nil)
|
21
|
+
# should_not(matcher=nil)
|
22
|
+
#
|
23
|
+
# Both methods take an optional Expression Matcher (See Spec::Matchers).
|
24
|
+
#
|
25
|
+
# When +should+ receives an Expression Matcher, it calls <tt>matches?(self)</tt>. If
|
26
|
+
# it returns +true+, the spec passes and execution continues. If it returns
|
27
|
+
# +false+, then the spec fails with the message returned by <tt>matcher.failure_message</tt>.
|
28
|
+
#
|
29
|
+
# Similarly, when +should_not+ receives a matcher, it calls <tt>matches?(self)</tt>. If
|
30
|
+
# it returns +false+, the spec passes and execution continues. If it returns
|
31
|
+
# +true+, then the spec fails with the message returned by <tt>matcher.negative_failure_message</tt>.
|
32
|
+
#
|
33
|
+
# RSpec ships with a standard set of useful matchers, and writing your own
|
34
|
+
# matchers is quite simple. See Spec::Matchers for details.
|
35
|
+
module Expectations
|
36
|
+
class << self
|
37
|
+
attr_accessor :differ
|
38
|
+
|
39
|
+
# raises a Spec::Expectations::ExpectationNotMetError with message
|
40
|
+
#
|
41
|
+
# When a differ has been assigned and fail_with is passed
|
42
|
+
# <code>expected</code> and <code>target</code>, passes them
|
43
|
+
# to the differ to append a diff message to the failure message.
|
44
|
+
def fail_with(message, expected=nil, target=nil) # :nodoc:
|
45
|
+
if Array === message && message.length == 3
|
46
|
+
message, expected, target = message[0], message[1], message[2]
|
47
|
+
end
|
48
|
+
unless (differ.nil? || expected.nil? || target.nil?)
|
49
|
+
if expected.is_a?(String)
|
50
|
+
message << "\nDiff:" << self.differ.diff_as_string(target.to_s, expected)
|
51
|
+
elsif !target.is_a?(Proc)
|
52
|
+
message << "\nDiff:" << self.differ.diff_as_object(target, expected)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
Kernel::raise(Spec::Expectations::ExpectationNotMetError.new(message))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
begin
|
2
|
+
require 'rubygems'
|
3
|
+
require 'diff/lcs' #necessary due to loading bug on some machines - not sure why - DaC
|
4
|
+
require 'diff/lcs/hunk'
|
5
|
+
rescue LoadError ; raise "You must gem install diff-lcs to use diffing" ; end
|
6
|
+
|
7
|
+
require 'pp'
|
8
|
+
|
9
|
+
module Spec
|
10
|
+
module Expectations
|
11
|
+
module Differs
|
12
|
+
|
13
|
+
# TODO add colour support
|
14
|
+
# TODO add some rdoc
|
15
|
+
class Default
|
16
|
+
def initialize(format=:unified,context_lines=nil,colour=nil)
|
17
|
+
|
18
|
+
context_lines ||= 3
|
19
|
+
colour ||= false
|
20
|
+
|
21
|
+
@format,@context_lines,@colour = format,context_lines,colour
|
22
|
+
end
|
23
|
+
|
24
|
+
# This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
|
25
|
+
def diff_as_string(data_old, data_new)
|
26
|
+
data_old = data_old.split(/\n/).map! { |e| e.chomp }
|
27
|
+
data_new = data_new.split(/\n/).map! { |e| e.chomp }
|
28
|
+
output = ""
|
29
|
+
diffs = Diff::LCS.diff(data_old, data_new)
|
30
|
+
return output if diffs.empty?
|
31
|
+
oldhunk = hunk = nil
|
32
|
+
file_length_difference = 0
|
33
|
+
diffs.each do |piece|
|
34
|
+
begin
|
35
|
+
hunk = Diff::LCS::Hunk.new(data_old, data_new, piece, @context_lines,
|
36
|
+
file_length_difference)
|
37
|
+
file_length_difference = hunk.file_length_difference
|
38
|
+
next unless oldhunk
|
39
|
+
# Hunks may overlap, which is why we need to be careful when our
|
40
|
+
# diff includes lines of context. Otherwise, we might print
|
41
|
+
# redundant lines.
|
42
|
+
if (@context_lines > 0) and hunk.overlaps?(oldhunk)
|
43
|
+
hunk.unshift(oldhunk)
|
44
|
+
else
|
45
|
+
output << oldhunk.diff(@format)
|
46
|
+
end
|
47
|
+
ensure
|
48
|
+
oldhunk = hunk
|
49
|
+
output << "\n"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
#Handle the last remaining hunk
|
53
|
+
output << oldhunk.diff(@format) << "\n"
|
54
|
+
end
|
55
|
+
|
56
|
+
def diff_as_object(target,expected)
|
57
|
+
diff_as_string(PP.pp(target,""), PP.pp(expected,""))
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
module Spec
|
2
|
+
module Expectations
|
3
|
+
# rspec adds #should and #should_not to every Object (and,
|
4
|
+
# implicitly, every Class).
|
5
|
+
module ObjectExpectations
|
6
|
+
|
7
|
+
# :call-seq:
|
8
|
+
# should(matcher)
|
9
|
+
# should == expected
|
10
|
+
# should =~ expected
|
11
|
+
#
|
12
|
+
# receiver.should(matcher)
|
13
|
+
# => Passes if matcher.matches?(receiver)
|
14
|
+
#
|
15
|
+
# receiver.should == expected #any value
|
16
|
+
# => Passes if (receiver == expected)
|
17
|
+
#
|
18
|
+
# receiver.should =~ regexp
|
19
|
+
# => Passes if (receiver =~ regexp)
|
20
|
+
#
|
21
|
+
# See Spec::Matchers for more information about matchers
|
22
|
+
#
|
23
|
+
# == Warning
|
24
|
+
#
|
25
|
+
# NOTE that this does NOT support receiver.should != expected.
|
26
|
+
# Instead, use receiver.should_not == expected
|
27
|
+
def should(matcher=nil, &block)
|
28
|
+
return ExpectationMatcherHandler.handle_matcher(self, matcher, &block) if matcher
|
29
|
+
Should::Should.new(self)
|
30
|
+
end
|
31
|
+
|
32
|
+
# :call-seq:
|
33
|
+
# should_not(matcher)
|
34
|
+
# should_not == expected
|
35
|
+
# should_not =~ expected
|
36
|
+
#
|
37
|
+
# receiver.should_not(matcher)
|
38
|
+
# => Passes unless matcher.matches?(receiver)
|
39
|
+
#
|
40
|
+
# receiver.should_not == expected
|
41
|
+
# => Passes unless (receiver == expected)
|
42
|
+
#
|
43
|
+
# receiver.should_not =~ regexp
|
44
|
+
# => Passes unless (receiver =~ regexp)
|
45
|
+
#
|
46
|
+
# See Spec::Matchers for more information about matchers
|
47
|
+
def should_not(matcher=nil, &block)
|
48
|
+
return NegativeExpectationMatcherHandler.handle_matcher(self, matcher, &block) if matcher
|
49
|
+
should.not
|
50
|
+
end
|
51
|
+
|
52
|
+
deprecated do
|
53
|
+
# Deprecated: use should have(n).items (see Spec::Matchers)
|
54
|
+
# This will be removed in 0.9
|
55
|
+
def should_have(expected)
|
56
|
+
should.have(expected)
|
57
|
+
end
|
58
|
+
alias_method :should_have_exactly, :should_have
|
59
|
+
|
60
|
+
# Deprecated: use should have_at_least(n).items (see Spec::Matchers)
|
61
|
+
# This will be removed in 0.9
|
62
|
+
def should_have_at_least(expected)
|
63
|
+
should.have.at_least(expected)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Deprecated: use should have_at_most(n).items (see Spec::Matchers)
|
67
|
+
# This will be removed in 0.9
|
68
|
+
def should_have_at_most(expected)
|
69
|
+
should.have.at_most(expected)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Deprecated: use should include(expected) (see Spec::Matchers)
|
73
|
+
# This will be removed in 0.9
|
74
|
+
def should_include(expected)
|
75
|
+
should.include(expected)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Deprecated: use should_not include(expected) (see Spec::Matchers)
|
79
|
+
# This will be removed in 0.9
|
80
|
+
def should_not_include(expected)
|
81
|
+
should.not.include(expected)
|
82
|
+
end
|
83
|
+
|
84
|
+
# Deprecated: use should be(expected) (see Spec::Matchers)
|
85
|
+
# This will be removed in 0.9
|
86
|
+
def should_be(expected = :___no_arg)
|
87
|
+
should.be(expected)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Deprecated: use should_not be(expected) (see Spec::Matchers)
|
91
|
+
# This will be removed in 0.9
|
92
|
+
def should_not_be(expected = :___no_arg)
|
93
|
+
should_not.be(expected)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
class Object
|
101
|
+
include Spec::Expectations::ObjectExpectations
|
102
|
+
deprecated do
|
103
|
+
include Spec::Expectations::UnderscoreSugar
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
deprecated do
|
108
|
+
Object.handle_underscores_for_rspec!
|
109
|
+
end
|