puppet 0.24.6 → 0.24.7
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 +115 -0
- data/Rakefile +43 -14
- data/bin/puppetca +6 -5
- data/bin/puppetdoc +109 -15
- data/bin/ralsh +3 -1
- data/conf/redhat/puppet.spec +74 -48
- data/examples/mcx_dock_absent.pp +4 -0
- data/examples/mcx_dock_default.pp +118 -0
- data/examples/mcx_dock_full.pp +125 -0
- data/examples/mcx_dock_invalid.pp +9 -0
- data/examples/mcx_nogroup.pp +118 -0
- data/examples/mcx_notexists_absent.pp +4 -0
- data/ext/emacs/puppet-mode.el +1 -1
- data/lib/puppet.rb +1 -1
- data/lib/puppet/external/nagios/base.rb +114 -71
- data/lib/puppet/feature/base.rb +6 -0
- data/lib/puppet/indirector/yaml.rb +12 -3
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/network/client/master.rb +1 -1
- data/lib/puppet/network/xmlrpc/client.rb +3 -1
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +15 -0
- data/lib/puppet/parser/ast/astarray.rb +1 -2
- data/lib/puppet/parser/ast/casestatement.rb +2 -0
- data/lib/puppet/parser/ast/collection.rb +2 -0
- data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
- data/lib/puppet/parser/ast/definition.rb +2 -0
- data/lib/puppet/parser/ast/else.rb +3 -0
- data/lib/puppet/parser/ast/function.rb +19 -12
- data/lib/puppet/parser/ast/hostclass.rb +9 -1
- data/lib/puppet/parser/ast/ifstatement.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +3 -0
- data/lib/puppet/parser/ast/resource.rb +3 -0
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
- data/lib/puppet/parser/ast/resource_override.rb +3 -0
- data/lib/puppet/parser/ast/vardef.rb +3 -0
- data/lib/puppet/parser/functions.rb +14 -0
- data/lib/puppet/parser/functions/inline_template.rb +21 -0
- data/lib/puppet/parser/functions/template.rb +3 -2
- data/lib/puppet/parser/lexer.rb +56 -7
- data/lib/puppet/parser/parser.rb +114 -98
- data/lib/puppet/parser/parser_support.rb +24 -4
- data/lib/puppet/parser/resource/reference.rb +4 -3
- data/lib/puppet/parser/templatewrapper.rb +30 -22
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/list.rb +7 -2
- data/lib/puppet/property/ordered_list.rb +22 -0
- data/lib/puppet/provider/augeas/augeas.rb +189 -0
- data/lib/puppet/provider/computer/computer.rb +22 -0
- data/lib/puppet/provider/confine.rb +4 -1
- data/lib/puppet/provider/confine/variable.rb +13 -2
- data/lib/puppet/provider/confine_collection.rb +4 -1
- data/lib/puppet/provider/confiner.rb +1 -1
- data/lib/puppet/provider/group/directoryservice.rb +6 -3
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/group/ldap.rb +11 -9
- data/lib/puppet/provider/group/netinfo.rb +8 -4
- data/lib/puppet/provider/group/pw.rb +5 -1
- data/lib/puppet/provider/host/netinfo.rb +5 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
- data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
- data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -3
- data/lib/puppet/provider/package/apt.rb +6 -0
- data/lib/puppet/provider/package/rpm.rb +2 -0
- data/lib/puppet/provider/package/yum.rb +5 -1
- data/lib/puppet/provider/package/yumhelper.py +9 -0
- data/lib/puppet/provider/service/base.rb +9 -6
- data/lib/puppet/provider/service/daemontools.rb +25 -15
- data/lib/puppet/provider/service/debian.rb +6 -2
- data/lib/puppet/provider/service/freebsd.rb +5 -2
- data/lib/puppet/provider/service/gentoo.rb +6 -3
- data/lib/puppet/provider/service/init.rb +31 -21
- data/lib/puppet/provider/service/launchd.rb +195 -0
- data/lib/puppet/provider/service/redhat.rb +5 -2
- data/lib/puppet/provider/service/runit.rb +30 -20
- data/lib/puppet/provider/service/smf.rb +7 -4
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/netinfo.rb +9 -3
- data/lib/puppet/provider/user/user_role_add.rb +43 -6
- data/lib/puppet/provider/zfs/solaris.rb +45 -0
- data/lib/puppet/provider/zone/solaris.rb +8 -4
- data/lib/puppet/provider/zpool/solaris.rb +116 -0
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
- data/lib/puppet/rails/database/schema.rb +1 -0
- data/lib/puppet/rails/host.rb +4 -0
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +15 -6
- data/lib/puppet/transaction/change.rb +3 -5
- data/lib/puppet/transportable.rb +1 -0
- data/lib/puppet/type/augeas.rb +155 -0
- data/lib/puppet/type/computer.rb +62 -0
- data/lib/puppet/type/exec.rb +2 -1
- data/lib/puppet/type/file.rb +1 -1
- data/lib/puppet/type/file/ensure.rb +8 -5
- data/lib/puppet/type/file/mode.rb +0 -14
- data/lib/puppet/type/file/owner.rb +32 -64
- data/lib/puppet/type/file/selcontext.rb +3 -8
- data/lib/puppet/type/group.rb +27 -45
- data/lib/puppet/type/k5login.rb +1 -1
- data/lib/puppet/type/macauthorization.rb +141 -0
- data/lib/puppet/type/mcx.rb +115 -0
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/nagios_hostdependency.rb +3 -0
- data/lib/puppet/type/ssh_authorized_key.rb +16 -0
- data/lib/puppet/type/tidy.rb +43 -14
- data/lib/puppet/type/user.rb +25 -1
- data/lib/puppet/type/zfs.rb +51 -0
- data/lib/puppet/type/zone.rb +8 -0
- data/lib/puppet/type/zpool.rb +93 -0
- data/lib/puppet/util.rb +17 -38
- data/lib/puppet/util/file_locking.rb +44 -0
- data/lib/puppet/util/filetype.rb +3 -3
- data/lib/puppet/util/log.rb +1 -16
- data/lib/puppet/util/metric.rb +0 -5
- data/lib/puppet/util/rdoc.rb +85 -0
- data/lib/puppet/util/rdoc/code_objects.rb +219 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
- data/lib/puppet/util/rdoc/parser.rb +437 -0
- data/lib/puppet/util/selinux.rb +135 -63
- data/lib/puppet/util/settings.rb +136 -126
- data/lib/puppet/util/storage.rb +4 -2
- data/spec/Rakefile +91 -0
- data/spec/integration/checksum.rb +47 -0
- data/spec/integration/defaults.rb +47 -0
- data/spec/integration/file_serving/configuration.rb +43 -0
- data/spec/integration/file_serving/content.rb +18 -0
- data/spec/integration/file_serving/metadata.rb +18 -0
- data/spec/integration/indirector/direct_file_server.rb +80 -0
- data/spec/integration/indirector/file_content/file_server.rb +18 -0
- data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
- data/spec/integration/indirector/module_files.rb +57 -0
- data/spec/integration/indirector/node/ldap.rb +15 -0
- data/spec/integration/indirector/rest.rb +464 -0
- data/spec/integration/network/server/mongrel.rb +48 -0
- data/spec/integration/network/server/webrick.rb +48 -0
- data/spec/integration/node.rb +93 -0
- data/spec/integration/node/catalog.rb +54 -0
- data/spec/integration/node/facts.rb +45 -0
- data/spec/integration/provider/package.rb +26 -0
- data/spec/integration/provider/service/init.rb +32 -0
- data/spec/integration/reference/providers.rb +17 -0
- data/spec/integration/reports.rb +14 -0
- data/spec/integration/transaction/report.rb +26 -0
- data/spec/integration/type/package.rb +22 -0
- data/spec/integration/util/file_locking.rb +36 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
- data/spec/monkey_patches/alias_should_to_must.rb +5 -0
- data/spec/shared_behaviours/file_server_terminus.rb +42 -0
- data/spec/shared_behaviours/file_serving.rb +64 -0
- data/spec/shared_behaviours/memory_terminus.rb +32 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/unit/executables/client/certhandler.rb +122 -0
- data/spec/unit/file_serving/configuration.rb +224 -0
- data/spec/unit/file_serving/configuration/parser.rb +135 -0
- data/spec/unit/file_serving/content.rb +71 -0
- data/spec/unit/file_serving/file_base.rb +124 -0
- data/spec/unit/file_serving/fileset.rb +239 -0
- data/spec/unit/file_serving/indirection_hooks.rb +124 -0
- data/spec/unit/file_serving/metadata.rb +187 -0
- data/spec/unit/file_serving/mount.rb +143 -0
- data/spec/unit/file_serving/terminus_helper.rb +76 -0
- data/spec/unit/indirector.rb +152 -0
- data/spec/unit/indirector/catalog/compiler.rb +156 -0
- data/spec/unit/indirector/catalog/yaml.rb +25 -0
- data/spec/unit/indirector/checksum/file.rb +139 -0
- data/spec/unit/indirector/code.rb +33 -0
- data/spec/unit/indirector/direct_file_server.rb +89 -0
- data/spec/unit/indirector/envelope.rb +47 -0
- data/spec/unit/indirector/exec.rb +51 -0
- data/spec/unit/indirector/facts/facter.rb +76 -0
- data/spec/unit/indirector/facts/yaml.rb +26 -0
- data/spec/unit/indirector/file.rb +154 -0
- data/spec/unit/indirector/file_content/file.rb +18 -0
- data/spec/unit/indirector/file_content/file_server.rb +18 -0
- data/spec/unit/indirector/file_content/modules.rb +18 -0
- data/spec/unit/indirector/file_content/rest.rb +11 -0
- data/spec/unit/indirector/file_metadata/file.rb +52 -0
- data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
- data/spec/unit/indirector/file_metadata/modules.rb +42 -0
- data/spec/unit/indirector/file_metadata/rest.rb +9 -0
- data/spec/unit/indirector/file_server.rb +184 -0
- data/spec/unit/indirector/indirection.rb +731 -0
- data/spec/unit/indirector/ldap.rb +143 -0
- data/spec/unit/indirector/memory.rb +29 -0
- data/spec/unit/indirector/module_files.rb +259 -0
- data/spec/unit/indirector/node/exec.rb +69 -0
- data/spec/unit/indirector/node/ldap.rb +424 -0
- data/spec/unit/indirector/node/memory.rb +19 -0
- data/spec/unit/indirector/node/plain.rb +19 -0
- data/spec/unit/indirector/node/rest.rb +13 -0
- data/spec/unit/indirector/node/yaml.rb +25 -0
- data/spec/unit/indirector/plain.rb +29 -0
- data/spec/unit/indirector/report/processor.rb +81 -0
- data/spec/unit/indirector/request.rb +87 -0
- data/spec/unit/indirector/rest.rb +372 -0
- data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
- data/spec/unit/indirector/terminus.rb +245 -0
- data/spec/unit/indirector/yaml.rb +145 -0
- data/spec/unit/module.rb +247 -0
- data/spec/unit/network/client.rb +45 -0
- data/spec/unit/network/client/master.rb +442 -0
- data/spec/unit/network/handler/fileserver.rb +179 -0
- data/spec/unit/network/http.rb +35 -0
- data/spec/unit/network/http/mongrel.rb +117 -0
- data/spec/unit/network/http/mongrel/rest.rb +377 -0
- data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
- data/spec/unit/network/http/webrick.rb +127 -0
- data/spec/unit/network/http/webrick/rest.rb +323 -0
- data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
- data/spec/unit/network/http_pool.rb +238 -0
- data/spec/unit/network/server.rb +316 -0
- data/spec/unit/network/xmlrpc/client.rb +13 -0
- data/spec/unit/node.rb +167 -0
- data/spec/unit/node/catalog.rb +864 -0
- data/spec/unit/node/environment.rb +37 -0
- data/spec/unit/node/facts.rb +44 -0
- data/spec/unit/other/checksum.rb +92 -0
- data/spec/unit/other/pgraph.rb +210 -0
- data/spec/unit/other/transaction.rb +33 -0
- data/spec/unit/other/transbucket.rb +172 -0
- data/spec/unit/other/transobject.rb +92 -0
- data/spec/unit/parameter.rb +24 -0
- data/spec/unit/parser/ast.rb +37 -0
- data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
- data/spec/unit/parser/ast/astarray.rb +66 -0
- data/spec/unit/parser/ast/boolean_operator.rb +53 -0
- data/spec/unit/parser/ast/collexpr.rb +92 -0
- data/spec/unit/parser/ast/comparison_operator.rb +92 -0
- data/spec/unit/parser/ast/definition.rb +195 -0
- data/spec/unit/parser/ast/function.rb +77 -0
- data/spec/unit/parser/ast/hostclass.rb +148 -0
- data/spec/unit/parser/ast/minus.rb +36 -0
- data/spec/unit/parser/ast/node.rb +125 -0
- data/spec/unit/parser/ast/nop.rb +20 -0
- data/spec/unit/parser/ast/not.rb +30 -0
- data/spec/unit/parser/ast/resource_override.rb +51 -0
- data/spec/unit/parser/ast/resource_reference.rb +63 -0
- data/spec/unit/parser/ast/vardef.rb +47 -0
- data/spec/unit/parser/collector.rb +426 -0
- data/spec/unit/parser/compiler.rb +561 -0
- data/spec/unit/parser/functions.rb +83 -0
- data/spec/unit/parser/functions/inline_template.rb +59 -0
- data/spec/unit/parser/functions/template.rb +62 -0
- data/spec/unit/parser/interpreter.rb +138 -0
- data/spec/unit/parser/lexer.rb +646 -0
- data/spec/unit/parser/parser.rb +228 -0
- data/spec/unit/parser/resource.rb +336 -0
- data/spec/unit/parser/resource/reference.rb +95 -0
- data/spec/unit/parser/scope.rb +87 -0
- data/spec/unit/parser/templatewrapper.rb +129 -0
- data/spec/unit/property.rb +35 -0
- data/spec/unit/property/keyvalue.rb +168 -0
- data/spec/unit/property/list.rb +156 -0
- data/spec/unit/property/ordered_list.rb +64 -0
- data/spec/unit/provider/augeas/augeas.rb +238 -0
- data/spec/unit/provider/confine.rb +78 -0
- data/spec/unit/provider/confine/exists.rb +81 -0
- data/spec/unit/provider/confine/false.rb +53 -0
- data/spec/unit/provider/confine/feature.rb +60 -0
- data/spec/unit/provider/confine/true.rb +53 -0
- data/spec/unit/provider/confine/variable.rb +107 -0
- data/spec/unit/provider/confine_collection.rb +134 -0
- data/spec/unit/provider/confiner.rb +63 -0
- data/spec/unit/provider/group/groupadd.rb +31 -0
- data/spec/unit/provider/group/ldap.rb +105 -0
- data/spec/unit/provider/ldap.rb +248 -0
- data/spec/unit/provider/macauthorization.rb +147 -0
- data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
- data/spec/unit/provider/mount.rb +130 -0
- data/spec/unit/provider/mount/parsed.rb +185 -0
- data/spec/unit/provider/package/apt.rb +138 -0
- data/spec/unit/provider/package/dpkg.rb +163 -0
- data/spec/unit/provider/package/gem.rb +87 -0
- data/spec/unit/provider/package/hpux.rb +52 -0
- data/spec/unit/provider/selboolean.rb +37 -0
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule.rb +66 -0
- data/spec/unit/provider/service/daemontools.rb +124 -0
- data/spec/unit/provider/service/launchd.rb +134 -0
- data/spec/unit/provider/service/runit.rb +117 -0
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
- data/spec/unit/provider/user/hpux.rb +25 -0
- data/spec/unit/provider/user/ldap.rb +279 -0
- data/spec/unit/provider/user/user_role_add.rb +249 -0
- data/spec/unit/provider/user/useradd.rb +115 -0
- data/spec/unit/provider/zfs/solaris.rb +87 -0
- data/spec/unit/provider/zone/solaris.rb +42 -0
- data/spec/unit/provider/zpool/solaris.rb +179 -0
- data/spec/unit/rails.rb +125 -0
- data/spec/unit/relationship.rb +149 -0
- data/spec/unit/reports.rb +61 -0
- data/spec/unit/resource_reference.rb +73 -0
- data/spec/unit/simple_graph.rb +280 -0
- data/spec/unit/transaction/change.rb +187 -0
- data/spec/unit/transaction/event.rb +25 -0
- data/spec/unit/transaction/report.rb +40 -0
- data/spec/unit/type.rb +64 -0
- data/spec/unit/type/augeas.rb +113 -0
- data/spec/unit/type/computer.rb +82 -0
- data/spec/unit/type/exec.rb +91 -0
- data/spec/unit/type/file.rb +155 -0
- data/spec/unit/type/file/ensure.rb +21 -0
- data/spec/unit/type/file/group.rb +118 -0
- data/spec/unit/type/file/owner.rb +132 -0
- data/spec/unit/type/file/selinux.rb +82 -0
- data/spec/unit/type/group.rb +40 -0
- data/spec/unit/type/macauthorization.rb +78 -0
- data/spec/unit/type/mcx.rb +108 -0
- data/spec/unit/type/mount.rb +219 -0
- data/spec/unit/type/nagios.rb +63 -0
- data/spec/unit/type/noop_metaparam.rb +38 -0
- data/spec/unit/type/package.rb +246 -0
- data/spec/unit/type/resources.rb +27 -0
- data/spec/unit/type/schedule.rb +339 -0
- data/spec/unit/type/selboolean.rb +47 -0
- data/spec/unit/type/selmodule.rb +18 -0
- data/spec/unit/type/service.rb +254 -0
- data/spec/unit/type/ssh_authorized_key.rb +106 -0
- data/spec/unit/type/tidy.rb +68 -0
- data/spec/unit/type/user.rb +260 -0
- data/spec/unit/type/zfs.rb +45 -0
- data/spec/unit/type/zone.rb +20 -0
- data/spec/unit/type/zpool.rb +110 -0
- data/spec/unit/util/checksums.rb +99 -0
- data/spec/unit/util/constant_inflector.rb +70 -0
- data/spec/unit/util/file_locking.rb +115 -0
- data/spec/unit/util/ldap/connection.rb +169 -0
- data/spec/unit/util/ldap/generator.rb +54 -0
- data/spec/unit/util/ldap/manager.rb +654 -0
- data/spec/unit/util/loadedfile.rb +65 -0
- data/spec/unit/util/log.rb +107 -0
- data/spec/unit/util/metric.rb +95 -0
- data/spec/unit/util/nagios_maker.rb +128 -0
- data/spec/unit/util/posix.rb +256 -0
- data/spec/unit/util/resource_template.rb +58 -0
- data/spec/unit/util/selinux.rb +219 -0
- data/spec/unit/util/settings.rb +847 -0
- data/spec/unit/util/storage.rb +248 -0
- data/spec/unit/util/tagging.rb +92 -0
- data/spec/unit/util/uri_helper.rb +41 -0
- data/spec/unit/util/user_attr.rb +47 -0
- data/spec/unit/util/warnings.rb +35 -0
- data/test/certmgr/support.rb +0 -6
- data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
- data/test/data/snippets/multilinecomments.pp +6 -0
- data/test/data/snippets/multipleclass.pp +9 -0
- data/test/language/functions.rb +11 -1
- data/test/language/snippets.rb +16 -0
- data/test/lib/puppettest/runnable_test.rb +1 -1
- data/test/network/handler/fileserver.rb +5 -0
- data/test/other/report.rb +0 -4
- data/test/ral/type/resources.rb +2 -19
- data/test/util/settings.rb +4 -4
- data/test/util/storage.rb +0 -24
- data/test/util/utiltest.rb +0 -33
- metadata +319 -26
- data/conf/debian/README.source +0 -2
- data/conf/debian/TODO.Debian +0 -1
- data/conf/debian/changelog +0 -257
- data/conf/debian/compat +0 -1
- data/conf/debian/control +0 -45
- data/conf/debian/copyright +0 -17
- data/conf/debian/docs +0 -1
- data/conf/debian/fileserver.conf +0 -12
- data/conf/debian/puppet.NEWS +0 -63
- data/conf/debian/puppet.conf +0 -8
- data/conf/debian/puppet.dirs +0 -7
- data/conf/debian/puppet.files +0 -6
- data/conf/debian/puppet.init +0 -64
- data/conf/debian/puppet.logrotate +0 -11
- data/conf/debian/puppet.postinst +0 -9
- data/conf/debian/puppet.postrm +0 -21
- data/conf/debian/puppet.preinst +0 -25
- data/conf/debian/puppetmaster.files +0 -4
- data/conf/debian/puppetmaster.init +0 -58
- data/conf/debian/rules +0 -115
- data/conf/debian/watch +0 -2
- data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -0,0 +1,76 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2007-10-22.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/file_serving/terminus_helper'
|
9
|
+
|
10
|
+
describe Puppet::FileServing::TerminusHelper do
|
11
|
+
before do
|
12
|
+
@helper = Object.new
|
13
|
+
@helper.extend(Puppet::FileServing::TerminusHelper)
|
14
|
+
|
15
|
+
@model = mock 'model'
|
16
|
+
@helper.stubs(:model).returns(@model)
|
17
|
+
|
18
|
+
@request = stub 'request', :key => "url", :options => {}
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should use a fileset to find paths" do
|
22
|
+
fileset = mock 'fileset', :files => []
|
23
|
+
Puppet::FileServing::Fileset.expects(:new).with("/my/file", {}).returns(fileset)
|
24
|
+
@helper.path2instances(@request, "/my/file")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should pass :recurse, :ignore, and :links settings on to the fileset if present" do
|
28
|
+
fileset = mock 'fileset', :files => []
|
29
|
+
Puppet::FileServing::Fileset.expects(:new).with("/my/file", :links => :a, :ignore => :b, :recurse => :c).returns(fileset)
|
30
|
+
@request.stubs(:options).returns(:links => :a, :ignore => :b, :recurse => :c)
|
31
|
+
@helper.path2instances(@request, "/my/file")
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "when creating instances" do
|
35
|
+
before do
|
36
|
+
@request.stubs(:key).returns "puppet://host/mount/dir"
|
37
|
+
|
38
|
+
@fileset = mock 'fileset', :files => %w{one two}
|
39
|
+
Puppet::FileServing::Fileset.expects(:new).returns(@fileset)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should create an instance of the model for each path returned by the fileset" do
|
43
|
+
@model.expects(:new).returns(:one)
|
44
|
+
@model.expects(:new).returns(:two)
|
45
|
+
@helper.path2instances(@request, "/my/file").length.should == 2
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should set each instance's key to be the original key plus the file-specific path" do
|
49
|
+
@model.expects(:new).with { |key, options| key == @request.key + "/one" }.returns(:one)
|
50
|
+
@model.expects(:new).with { |key, options| key == @request.key + "/two" }.returns(:two)
|
51
|
+
@helper.path2instances(@request, "/my/file")
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should set each returned instance's path to the original path" do
|
55
|
+
@model.expects(:new).with { |key, options| options[:path] == "/my/file" }.returns(:one)
|
56
|
+
@model.expects(:new).with { |key, options| options[:path] == "/my/file" }.returns(:two)
|
57
|
+
@helper.path2instances(@request, "/my/file")
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should set each returned instance's relative path to the file-specific path" do
|
61
|
+
@model.expects(:new).with { |key, options| options[:relative_path] == "one" }.returns(:one)
|
62
|
+
@model.expects(:new).with { |key, options| options[:relative_path] == "two" }.returns(:two)
|
63
|
+
@helper.path2instances(@request, "/my/file")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should set the links value on each instance if one is provided" do
|
67
|
+
one = mock 'one', :links= => :manage
|
68
|
+
two = mock 'two', :links= => :manage
|
69
|
+
@model.expects(:new).returns(one)
|
70
|
+
@model.expects(:new).returns(two)
|
71
|
+
|
72
|
+
@request.options[:links] = :manage
|
73
|
+
@helper.path2instances(@request, "/my/file")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
4
|
+
|
5
|
+
require 'puppet/defaults'
|
6
|
+
require 'puppet/indirector'
|
7
|
+
|
8
|
+
describe Puppet::Indirector, " when available to a model" do
|
9
|
+
before do
|
10
|
+
@thingie = Class.new do
|
11
|
+
extend Puppet::Indirector
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should provide a way for the model to register an indirection under a name" do
|
16
|
+
@thingie.should respond_to(:indirects)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe Puppet::Indirector, "when registering an indirection" do
|
21
|
+
before do
|
22
|
+
@thingie = Class.new do
|
23
|
+
extend Puppet::Indirector
|
24
|
+
attr_reader :name
|
25
|
+
def initialize(name)
|
26
|
+
@name = name
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should require a name when registering a model" do
|
32
|
+
Proc.new {@thingie.send(:indirects) }.should raise_error(ArgumentError)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should create an indirection instance to manage each indirecting model" do
|
36
|
+
@indirection = @thingie.indirects(:test)
|
37
|
+
@indirection.should be_instance_of(Puppet::Indirector::Indirection)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should not allow a model to register under multiple names" do
|
41
|
+
# Keep track of the indirection instance so we can delete it on cleanup
|
42
|
+
@indirection = @thingie.indirects :first
|
43
|
+
Proc.new { @thingie.indirects :second }.should raise_error(ArgumentError)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should make the indirection available via an accessor" do
|
47
|
+
@indirection = @thingie.indirects :first
|
48
|
+
@thingie.indirection.should equal(@indirection)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should pass any provided options to the indirection during initialization" do
|
52
|
+
klass = mock 'terminus class'
|
53
|
+
Puppet::Indirector::Indirection.expects(:new).with(@thingie, :first, {:some => :options})
|
54
|
+
@indirection = @thingie.indirects :first, :some => :options
|
55
|
+
end
|
56
|
+
|
57
|
+
after do
|
58
|
+
@indirection.delete if @indirection
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "Delegated Indirection Method", :shared => true do
|
63
|
+
it "should delegate to the indirection" do
|
64
|
+
@indirection.expects(@method)
|
65
|
+
@thingie.send(@method, "me")
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should pass all of the passed arguments directly to the indirection instance" do
|
69
|
+
@indirection.expects(@method).with("me", :one => :two)
|
70
|
+
@thingie.send(@method, "me", :one => :two)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should return the results of the delegation as its result" do
|
74
|
+
request = mock 'request'
|
75
|
+
@indirection.expects(@method).returns "yay"
|
76
|
+
@thingie.send(@method, "me").should == "yay"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe Puppet::Indirector, "when redirecting a model" do
|
81
|
+
before do
|
82
|
+
@thingie = Class.new do
|
83
|
+
extend Puppet::Indirector
|
84
|
+
attr_reader :name
|
85
|
+
def initialize(name)
|
86
|
+
@name = name
|
87
|
+
end
|
88
|
+
end
|
89
|
+
@indirection = @thingie.send(:indirects, :test)
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should include the Envelope module in the model" do
|
93
|
+
@thingie.ancestors.should be_include(Puppet::Indirector::Envelope)
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "when finding instances via the model" do
|
97
|
+
before { @method = :find }
|
98
|
+
it_should_behave_like "Delegated Indirection Method"
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "when destroying instances via the model" do
|
102
|
+
before { @method = :destroy }
|
103
|
+
it_should_behave_like "Delegated Indirection Method"
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "when searching for instances via the model" do
|
107
|
+
before { @method = :search }
|
108
|
+
it_should_behave_like "Delegated Indirection Method"
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "when expiring instances via the model" do
|
112
|
+
before { @method = :expire }
|
113
|
+
it_should_behave_like "Delegated Indirection Method"
|
114
|
+
end
|
115
|
+
|
116
|
+
# This is an instance method, so it behaves a bit differently.
|
117
|
+
describe "when saving instances via the model" do
|
118
|
+
before do
|
119
|
+
@instance = @thingie.new("me")
|
120
|
+
end
|
121
|
+
|
122
|
+
it "should delegate to the indirection" do
|
123
|
+
@indirection.expects(:save)
|
124
|
+
@instance.save
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should pass the instance and all arguments to the indirection's :save method" do
|
128
|
+
@indirection.expects(:save).with(@instance, :one => :two)
|
129
|
+
@instance.save :one => :two
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should return the results of the delegation as its result" do
|
133
|
+
request = mock 'request'
|
134
|
+
@indirection.expects(:save).returns "yay"
|
135
|
+
@instance.save.should == "yay"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should give the model the ability to set the indirection terminus class" do
|
140
|
+
@indirection.expects(:terminus_class=).with(:myterm)
|
141
|
+
@thingie.terminus_class = :myterm
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should give the model the ability to set the indirection cache class" do
|
145
|
+
@indirection.expects(:cache_class=).with(:mycache)
|
146
|
+
@thingie.cache_class = :mycache
|
147
|
+
end
|
148
|
+
|
149
|
+
after do
|
150
|
+
@indirection.delete
|
151
|
+
end
|
152
|
+
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2007-9-23.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/indirector/catalog/compiler'
|
9
|
+
|
10
|
+
describe Puppet::Node::Catalog::Compiler do
|
11
|
+
before do
|
12
|
+
Puppet.expects(:version).returns(1)
|
13
|
+
Facter.expects(:value).with('fqdn').returns("my.server.com")
|
14
|
+
Facter.expects(:value).with('ipaddress').returns("my.ip.address")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should gather data about itself" do
|
18
|
+
Puppet::Node::Catalog::Compiler.new
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should cache the server metadata and reuse it" do
|
22
|
+
compiler = Puppet::Node::Catalog::Compiler.new
|
23
|
+
node1 = stub 'node1', :merge => nil
|
24
|
+
node2 = stub 'node2', :merge => nil
|
25
|
+
compiler.stubs(:compile)
|
26
|
+
Puppet::Node.stubs(:find).with('node1').returns(node1)
|
27
|
+
Puppet::Node.stubs(:find).with('node2').returns(node2)
|
28
|
+
|
29
|
+
compiler.find(stub('request', :key => 'node1', :options => {}))
|
30
|
+
compiler.find(stub('node2request', :key => 'node2', :options => {}))
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should provide a method for determining if the catalog is networked" do
|
34
|
+
compiler = Puppet::Node::Catalog::Compiler.new
|
35
|
+
compiler.should respond_to(:networked?)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe Puppet::Node::Catalog::Compiler, " when creating the interpreter" do
|
40
|
+
before do
|
41
|
+
# This gets pretty annoying on a plane where we have no IP address
|
42
|
+
Facter.stubs(:value).returns("whatever")
|
43
|
+
@compiler = Puppet::Node::Catalog::Compiler.new
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should not create the interpreter until it is asked for the first time" do
|
47
|
+
interp = mock 'interp'
|
48
|
+
Puppet::Parser::Interpreter.expects(:new).with().returns(interp)
|
49
|
+
@compiler.interpreter.should equal(interp)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should use the same interpreter for all compiles" do
|
53
|
+
interp = mock 'interp'
|
54
|
+
Puppet::Parser::Interpreter.expects(:new).with().returns(interp)
|
55
|
+
@compiler.interpreter.should equal(interp)
|
56
|
+
@compiler.interpreter.should equal(interp)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe Puppet::Node::Catalog::Compiler, " when finding nodes" do
|
61
|
+
before do
|
62
|
+
Facter.stubs(:value).returns("whatever")
|
63
|
+
@compiler = Puppet::Node::Catalog::Compiler.new
|
64
|
+
@name = "me"
|
65
|
+
@node = mock 'node'
|
66
|
+
@request = stub 'request', :key => @name, :options => {}
|
67
|
+
@compiler.stubs(:compile)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should look node information up via the Node class with the provided key" do
|
71
|
+
@node.stubs :merge
|
72
|
+
Puppet::Node.expects(:find).with(@name).returns(@node)
|
73
|
+
@compiler.find(@request)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe Puppet::Node::Catalog::Compiler, " after finding nodes" do
|
78
|
+
before do
|
79
|
+
Puppet.expects(:version).returns(1)
|
80
|
+
Facter.expects(:value).with('fqdn').returns("my.server.com")
|
81
|
+
Facter.expects(:value).with('ipaddress').returns("my.ip.address")
|
82
|
+
@compiler = Puppet::Node::Catalog::Compiler.new
|
83
|
+
@name = "me"
|
84
|
+
@node = mock 'node'
|
85
|
+
@request = stub 'request', :key => @name, :options => {}
|
86
|
+
@compiler.stubs(:compile)
|
87
|
+
Puppet::Node.stubs(:find).with(@name).returns(@node)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should add the server's Puppet version to the node's parameters as 'serverversion'" do
|
91
|
+
@node.expects(:merge).with { |args| args["serverversion"] == "1" }
|
92
|
+
@compiler.find(@request)
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should add the server's fqdn to the node's parameters as 'servername'" do
|
96
|
+
@node.expects(:merge).with { |args| args["servername"] == "my.server.com" }
|
97
|
+
@compiler.find(@request)
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should add the server's IP address to the node's parameters as 'serverip'" do
|
101
|
+
@node.expects(:merge).with { |args| args["serverip"] == "my.ip.address" }
|
102
|
+
@compiler.find(@request)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe Puppet::Node::Catalog::Compiler, " when creating catalogs" do
|
107
|
+
before do
|
108
|
+
Facter.stubs(:value).returns("whatever")
|
109
|
+
env = stub 'environment', :name => "yay"
|
110
|
+
Puppet::Node::Environment.stubs(:new).returns(env)
|
111
|
+
|
112
|
+
@compiler = Puppet::Node::Catalog::Compiler.new
|
113
|
+
@name = "me"
|
114
|
+
@node = Puppet::Node.new @name
|
115
|
+
@node.stubs(:merge)
|
116
|
+
@request = stub 'request', :key => @name, :options => {}
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should directly use provided nodes" do
|
120
|
+
Puppet::Node.expects(:find).never
|
121
|
+
@compiler.expects(:compile).with(@node)
|
122
|
+
@request.stubs(:options).returns(:use_node => @node)
|
123
|
+
@compiler.find(@request)
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should fail if no node is passed and none can be found" do
|
127
|
+
Puppet::Node.stubs(:find).with(@name).returns(nil)
|
128
|
+
proc { @compiler.find(@request) }.should raise_error(ArgumentError)
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should pass the found node to the interpreter for compiling" do
|
132
|
+
Puppet::Node.expects(:find).with(@name).returns(@node)
|
133
|
+
config = mock 'config'
|
134
|
+
@compiler.interpreter.expects(:compile).with(@node)
|
135
|
+
@compiler.find(@request)
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should return the results of compiling as the catalog" do
|
139
|
+
Puppet::Node.stubs(:find).returns(@node)
|
140
|
+
config = mock 'config'
|
141
|
+
result = mock 'result'
|
142
|
+
|
143
|
+
@compiler.interpreter.expects(:compile).with(@node).returns(result)
|
144
|
+
@compiler.find(@request).should equal(result)
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should benchmark the compile process" do
|
148
|
+
Puppet::Node.stubs(:find).returns(@node)
|
149
|
+
@compiler.stubs(:networked?).returns(true)
|
150
|
+
@compiler.expects(:benchmark).with do |level, message|
|
151
|
+
level == :notice and message =~ /^Compiled catalog/
|
152
|
+
end
|
153
|
+
@compiler.interpreter.stubs(:compile).with(@node)
|
154
|
+
@compiler.find(@request)
|
155
|
+
end
|
156
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
|
5
|
+
require 'puppet/node/catalog'
|
6
|
+
require 'puppet/indirector/catalog/yaml'
|
7
|
+
|
8
|
+
describe Puppet::Node::Catalog::Yaml do
|
9
|
+
it "should be a subclass of the Yaml terminus" do
|
10
|
+
Puppet::Node::Catalog::Yaml.superclass.should equal(Puppet::Indirector::Yaml)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have documentation" do
|
14
|
+
Puppet::Node::Catalog::Yaml.doc.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be registered with the catalog store indirection" do
|
18
|
+
indirection = Puppet::Indirector::Indirection.instance(:catalog)
|
19
|
+
Puppet::Node::Catalog::Yaml.indirection.should equal(indirection)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should have its name set to :yaml" do
|
23
|
+
Puppet::Node::Catalog::Yaml.name.should == :yaml
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2007-9-22.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/indirector/checksum/file'
|
9
|
+
|
10
|
+
describe Puppet::Checksum::File do
|
11
|
+
it "should be a subclass of the File terminus class" do
|
12
|
+
Puppet::Checksum::File.superclass.should equal(Puppet::Indirector::File)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have documentation" do
|
16
|
+
Puppet::Checksum::File.doc.should be_instance_of(String)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe Puppet::Checksum::File, " when initializing" do
|
21
|
+
it "should use the filebucket settings section" do
|
22
|
+
Puppet.settings.expects(:use).with(:filebucket)
|
23
|
+
Puppet::Checksum::File.new
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
describe Puppet::Checksum::File do
|
29
|
+
before :each do
|
30
|
+
Puppet.settings.stubs(:use)
|
31
|
+
@store = Puppet::Checksum::File.new
|
32
|
+
|
33
|
+
@value = "70924d6fa4b2d745185fa4660703a5c0"
|
34
|
+
@sum = stub 'sum', :name => @value
|
35
|
+
|
36
|
+
@dir = "/what/ever"
|
37
|
+
|
38
|
+
Puppet.stubs(:[]).with(:bucketdir).returns(@dir)
|
39
|
+
|
40
|
+
@path = @store.path(@value)
|
41
|
+
|
42
|
+
@request = stub 'request', :key => @value
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
describe Puppet::Checksum::File, " when determining file paths" do
|
47
|
+
|
48
|
+
# I was previously passing the object in.
|
49
|
+
it "should use the value passed in to path() as the checksum" do
|
50
|
+
@value.expects(:name).never
|
51
|
+
@store.path(@value)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should use the value of the :bucketdir setting as the root directory" do
|
55
|
+
@path.should =~ %r{^#{@dir}}
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should choose a path 8 directories deep with each directory name being the respective character in the checksum" do
|
59
|
+
dirs = @value[0..7].split("").join(File::SEPARATOR)
|
60
|
+
@path.should be_include(dirs)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should use the full checksum as the final directory name" do
|
64
|
+
File.basename(File.dirname(@path)).should == @value
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should use 'contents' as the actual file name" do
|
68
|
+
File.basename(@path).should == "contents"
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should use the bucketdir, the 8 sum character directories, the full checksum, and 'contents' as the full file name" do
|
72
|
+
@path.should == [@dir, @value[0..7].split(""), @value, "contents"].flatten.join(File::SEPARATOR)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe Puppet::Checksum::File, " when retrieving files" do
|
77
|
+
|
78
|
+
# The smallest test that will use the calculated path
|
79
|
+
it "should look for the calculated path" do
|
80
|
+
File.expects(:exist?).with(@path).returns(false)
|
81
|
+
@store.find(@request)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should return an instance of Puppet::Checksum created with the content if the file exists" do
|
85
|
+
content = "my content"
|
86
|
+
sum = stub 'file'
|
87
|
+
Puppet::Checksum.expects(:new).with(content).returns(sum)
|
88
|
+
|
89
|
+
File.expects(:exist?).with(@path).returns(true)
|
90
|
+
File.expects(:read).with(@path).returns(content)
|
91
|
+
|
92
|
+
@store.find(@request).should equal(sum)
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should return nil if no file is found" do
|
96
|
+
File.expects(:exist?).with(@path).returns(false)
|
97
|
+
@store.find(@request).should be_nil
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should fail intelligently if a found file cannot be read" do
|
101
|
+
File.expects(:exist?).with(@path).returns(true)
|
102
|
+
File.expects(:read).with(@path).raises(RuntimeError)
|
103
|
+
proc { @store.find(@request) }.should raise_error(Puppet::Error)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe Puppet::Checksum::File, " when saving files" do
|
108
|
+
|
109
|
+
# LAK:FIXME I don't know how to include in the spec the fact that we're
|
110
|
+
# using the superclass's save() method and thus are acquiring all of
|
111
|
+
# it's behaviours.
|
112
|
+
it "should save the content to the calculated path" do
|
113
|
+
File.stubs(:directory?).with(File.dirname(@path)).returns(true)
|
114
|
+
File.expects(:open).with(@path, "w")
|
115
|
+
|
116
|
+
file = stub 'file', :name => @value
|
117
|
+
@store.save(@request)
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should make any directories necessary for storage" do
|
121
|
+
FileUtils.expects(:mkdir_p).with do |arg|
|
122
|
+
File.umask == 0007 and arg == File.dirname(@path)
|
123
|
+
end
|
124
|
+
File.expects(:directory?).with(File.dirname(@path)).returns(true)
|
125
|
+
File.expects(:open).with(@path, "w")
|
126
|
+
|
127
|
+
@store.save(@request)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
describe Puppet::Checksum::File, " when deleting files" do
|
132
|
+
it "should remove the file at the calculated path" do
|
133
|
+
File.expects(:exist?).with(@path).returns(true)
|
134
|
+
File.expects(:unlink).with(@path)
|
135
|
+
|
136
|
+
@store.destroy(@request)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|