fix package import and upgrade tests, add sql upgrade tests

This commit is contained in:
Graham Knop 2010-03-20 13:42:56 -05:00
parent 94baba20fc
commit 577b804325
5 changed files with 44 additions and 19 deletions

View file

@ -161,6 +161,7 @@ sub importAssetData {
WebGUI::Asset->loadModule( $class );
my %properties = %{ $data->{properties} };
delete $properties{tagId};
if ($options->{inheritPermissions}) {
delete $properties{ownerUserId};
delete $properties{groupIdView};
@ -173,6 +174,13 @@ sub importAssetData {
$properties{isDefault} = 1;
}
if ($options->{clearPackageFlag}) {
$properties{isPackage} = 0;
}
if ($options->{setDefaultTemplate}) {
$properties{isDefault} = 1;
}
my $asset = eval { $class->new($session, $id, $version); };
if (! Exception::Class->caught()) { # update an existing revision

View file

@ -8,6 +8,7 @@ use WebGUI::Session;
use WebGUI::Storage;
use WebGUI::VersionTag;
use File::Spec;
use Try::Tiny;
sub run {
my $class = shift;
@ -16,15 +17,13 @@ sub run {
my $session = WebGUI::Session->open($configFile);
$session->user({userId => 3});
my $versionTag = WebGUI::VersionTag->getWorking($session);
(undef, undef, my $shortname) = File::Spec->splitpath($file);
$shortname =~ s/\.[^.]*$//;
my $versionTag = WebGUI::VersionTag->getWorking($session);
$versionTag->set({name => "Upgrade to $version - $shortname"});
my $package = $class->import_package($session, $file);
warn $versionTag->getId;
$versionTag->commit;
$session->var->end;
$session->close;
@ -41,8 +40,13 @@ sub import_package {
$storage->addFileFromFilesystem( $file );
# Import the package into the import node
my $package = eval {
WebGUI::Asset->getImportNode($session)->importPackage( $storage );
my $package = try {
my $node = WebGUI::Asset->getImportNode($session);
$node->importPackage( $storage, {
overwriteLatest => 1,
clearPackageFlag => 1,
setDefaultTemplate => 1,
} );
};
$storage->delete;

View file

@ -59,12 +59,10 @@ is_deeply
}
$upgrade->set_true('runUpgradeFile');
my $stdout;
my $stderr;
my $res;
capture { $res = $upgrade->upgradeSites };
ok $res, 'upgradeSites runs';
capture {
my $res = $upgrade->upgradeSites;
ok $res, 'upgradeSites runs';
};
$upgrade->called_pos_ok(1, 'getCurrentVersion');
$upgrade->called_pos_ok(2, 'runUpgradeFile');
@ -80,13 +78,17 @@ $upgrade->mock(testUpgrade => sub {
$self->runUpgradeFile($configFile, '8.3.0', collateral('Upgrade', $file), @_);
});
$stdout = capture { $upgrade->testUpgrade('output.pl') };
ok $stdout =~ 'Simple Output', 'report command functions correctly';
ok $stdout =~ 'Done', 'done command functions correctly';
{
my $stdout = capture { $upgrade->testUpgrade('output.pl') };
ok $stdout =~ 'Simple Output', 'report command functions correctly';
ok $stdout =~ 'Done', 'done command functions correctly';
}
$stdout = capture { $upgrade->testUpgrade('output.pl', 1) };
ok $stdout !~ 'Simple Output', 'quiet flag silences report command';
ok $stdout !~ 'Done', 'quiet flag silences done command';
{
my $stdout = capture { $upgrade->testUpgrade('output.pl', 1) };
ok $stdout !~ 'Simple Output', 'quiet flag silences report command';
ok $stdout !~ 'Done', 'quiet flag silences done command';
}
ok !try { $upgrade->testUpgrade('die.pl'); 1 }, 'Error on failing upgrade';
ok !try { $upgrade->testUpgrade('strict-failure.pl'); 1 }, 'strict enabled in upgrades';
@ -146,10 +148,20 @@ END_PM
my $package = $upgrade->testUpgrade('test-template.wgpkg');
isa_ok $package, 'WebGUI::Asset::Template';
my $vtId = $package->get('tagId');
warn $vtId;
my $vt = WebGUI::VersionTag->new($session, $vtId);
addToCleanup($vt);
is $vt->get('name'), 'Upgrade to 8.3.0 - test-snippet', 'package import names version tag correctly';
is $vt->get('name'), 'Upgrade to 8.3.0 - test-template', 'package import names version tag correctly';
}
{
my $stdout = capture {
$upgrade->testUpgrade('select.sql');
};
my @lines = split /[\r\n]+/, $stdout;
my $dateApplied = $lines[1];
my $dbdateApplied = $dbh->selectrow_array('SELECT dateApplied FROM webguiVersion ORDER BY dateApplied DESC LIMIT 1');
is $dateApplied, $dbdateApplied, 'SQL script run against database properly';
}
done_testing;

View file

@ -0,0 +1 @@
SELECT dateApplied FROM webguiVersion ORDER BY dateApplied DESC LIMIT 1