|
7 | 7 | module PuppetEnvironments
|
8 | 8 | describe Puppet::Environments do
|
9 | 9 | include Matchers::Include
|
| 10 | + include PuppetSpec::Files |
10 | 11 |
|
11 | 12 | FS = Puppet::FileSystem
|
12 | 13 |
|
@@ -436,6 +437,56 @@ module PuppetEnvironments
|
436 | 437 | end
|
437 | 438 | end
|
438 | 439 | end
|
| 440 | + |
| 441 | + it "'get' should see module directories added after 'list', but before 'clear_all'" do |
| 442 | + base_dir = tmpdir("environments") |
| 443 | + envdir = File.join(base_dir, "a_race") |
| 444 | + Puppet::FileSystem.mkpath(envdir) |
| 445 | + |
| 446 | + default_dir = File.join(envdir, "modules") |
| 447 | + site_dir = File.join(envdir, "site") |
| 448 | + |
| 449 | + loader = Puppet::Environments::Cached.new(Puppet::Environments::Directories.new(base_dir, [])) |
| 450 | + Puppet.override(:environments => loader) do |
| 451 | + loader.list |
| 452 | + |
| 453 | + expect(Puppet.settings.value(:modulepath, :a_race)).to eq(default_dir) |
| 454 | + |
| 455 | + File.write(File.join(envdir, "environment.conf"), <<-END) |
| 456 | + modulepath=site#{File::PATH_SEPARATOR}$basemodulepath |
| 457 | + environment_timeout=unlimited |
| 458 | + END |
| 459 | + Puppet::FileSystem.mkpath(site_dir) |
| 460 | + loader.clear_all |
| 461 | + |
| 462 | + expect(loader.get(:a_race).modulepath.first).to eq(site_dir) |
| 463 | + end |
| 464 | + end |
| 465 | + |
| 466 | + it "'get' should see module directories added after 'get_conf', but before 'clear_all'" do |
| 467 | + base_dir = tmpdir("environments") |
| 468 | + envdir = File.join(base_dir, "a_race") |
| 469 | + Puppet::FileSystem.mkpath(envdir) |
| 470 | + |
| 471 | + default_dir = File.join(envdir, "modules") |
| 472 | + site_dir = File.join(envdir, "site") |
| 473 | + |
| 474 | + loader = Puppet::Environments::Cached.new(Puppet::Environments::Directories.new(base_dir, [])) |
| 475 | + Puppet.override(:environments => loader) do |
| 476 | + loader.get_conf(:a_race).modulepath |
| 477 | + |
| 478 | + expect(Puppet.settings.value(:modulepath, :a_race)).to eq(default_dir) |
| 479 | + |
| 480 | + File.write(File.join(envdir, "environment.conf"), <<-END) |
| 481 | + modulepath=site#{File::PATH_SEPARATOR}$basemodulepath |
| 482 | + environment_timeout=unlimited |
| 483 | + END |
| 484 | + Puppet::FileSystem.mkpath(site_dir) |
| 485 | + loader.clear_all |
| 486 | + |
| 487 | + expect(loader.get(:a_race).modulepath.first).to eq(site_dir) |
| 488 | + end |
| 489 | + end |
439 | 490 | end
|
440 | 491 | end
|
441 | 492 |
|
@@ -647,8 +698,6 @@ module PuppetEnvironments
|
647 | 698 | end
|
648 | 699 |
|
649 | 700 | it "evicts an expired environment" do
|
650 |
| - service = ReplayExpirationService.new |
651 |
| - |
652 | 701 | expect(service).to receive(:expired?).and_return(true)
|
653 | 702 |
|
654 | 703 | with_environment_loaded(service) do |cached|
|
@@ -703,6 +752,16 @@ module PuppetEnvironments
|
703 | 752 | expect(service.created_envs).to eq([:an_environment, :an_environment])
|
704 | 753 | expect(service.evicted_envs).to eq([:an_environment])
|
705 | 754 | end
|
| 755 | + |
| 756 | + it "evicts expired environments when listing" do |
| 757 | + expect(service).to receive(:expired?).with(:an_environment).and_return(true) |
| 758 | + |
| 759 | + with_environment_loaded(service) do |cached| |
| 760 | + cached.list |
| 761 | + end |
| 762 | + |
| 763 | + expect(service.evicted_envs).to eq([:an_environment]) |
| 764 | + end |
706 | 765 | end
|
707 | 766 |
|
708 | 767 | it "gets an environment.conf" do
|
|
0 commit comments