Ansible-Util

 view release on metacpan or  search on metacpan

t/31-util-vars-testset2.t  view on Meta::CPAN

	$test2->chdir;

	doRuntimeException();
	doKeepFiles0();
	doKeepFiles1();
}

done_testing();

#############################################

sub doKeepFiles0 {

	my $vars = Ansible::Util::Vars->new(
		vaultPasswordFiles => $test2->vaultPasswordFiles,
		keepTempFiles      => 0
	);
	ok( $vars->clearCache );

    my $href = $vars->getVars( ['states'] );
    ok( exists $href->{states} );
    
	# ensure tempfile cleanup worked
	my $dir   = $vars->_tempDir;
	my @files = @{ $vars->_tempFiles };
	$vars = undef;

	foreach my $file (@files) {
		ok( !-f $file );
	}

	ok( !-d $dir );
}

sub doKeepFiles1 {

	my $vars = Ansible::Util::Vars->new(
		vaultPasswordFiles => $test2->vaultPasswordFiles,
		keepTempFiles      => 1
	);
	ok( $vars->clearCache );

    my $href = $vars->getVars( ['states'] );
    ok( exists $href->{states} );
    
	# ensure tempfile cleanup worked
	my $dir   = $vars->_tempDir;
	my @files = @{ $vars->_tempFiles };
	$vars = undef;

	foreach my $file (@files) {
		ok( -f $file );
	}

	cleanup( $dir, \@files );
}

sub doRuntimeException {

	#
	# test a runtime exception (files should be kept for debug)
	# ...this one fails because it needs vault pass files.
	#
	my $vars = Ansible::Util::Vars->new( keepTempFiles => 0 );
	ok( $vars->clearCache );

	eval { $vars->getVars( ['states'] ); };
	ok($@);

	# ensure tempfile cleanup did NOT happen
	my $dir   = $vars->_tempDir;
	my @files = @{ $vars->_tempFiles };
	$vars = undef;

	foreach my $file (@files) {
		ok( -f $file );
	}

	cleanup( $dir, \@files );
}

sub cleanup {

	my ( $dir, $files ) = @_;

	foreach my $file (@$files) {
		$File->unlink($file);
	}

	$File->rmdir($dir);
}



( run in 0.548 second using v1.01-cache-2.11-cpan-39bf76dae61 )