fix package import and upgrade tests, add sql upgrade tests
This commit is contained in:
parent
94baba20fc
commit
577b804325
5 changed files with 44 additions and 19 deletions
|
|
@ -161,6 +161,7 @@ sub importAssetData {
|
||||||
WebGUI::Asset->loadModule( $class );
|
WebGUI::Asset->loadModule( $class );
|
||||||
|
|
||||||
my %properties = %{ $data->{properties} };
|
my %properties = %{ $data->{properties} };
|
||||||
|
delete $properties{tagId};
|
||||||
if ($options->{inheritPermissions}) {
|
if ($options->{inheritPermissions}) {
|
||||||
delete $properties{ownerUserId};
|
delete $properties{ownerUserId};
|
||||||
delete $properties{groupIdView};
|
delete $properties{groupIdView};
|
||||||
|
|
@ -173,6 +174,13 @@ sub importAssetData {
|
||||||
$properties{isDefault} = 1;
|
$properties{isDefault} = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($options->{clearPackageFlag}) {
|
||||||
|
$properties{isPackage} = 0;
|
||||||
|
}
|
||||||
|
if ($options->{setDefaultTemplate}) {
|
||||||
|
$properties{isDefault} = 1;
|
||||||
|
}
|
||||||
|
|
||||||
my $asset = eval { $class->new($session, $id, $version); };
|
my $asset = eval { $class->new($session, $id, $version); };
|
||||||
|
|
||||||
if (! Exception::Class->caught()) { # update an existing revision
|
if (! Exception::Class->caught()) { # update an existing revision
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ use WebGUI::Session;
|
||||||
use WebGUI::Storage;
|
use WebGUI::Storage;
|
||||||
use WebGUI::VersionTag;
|
use WebGUI::VersionTag;
|
||||||
use File::Spec;
|
use File::Spec;
|
||||||
|
use Try::Tiny;
|
||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
|
|
@ -16,15 +17,13 @@ sub run {
|
||||||
my $session = WebGUI::Session->open($configFile);
|
my $session = WebGUI::Session->open($configFile);
|
||||||
$session->user({userId => 3});
|
$session->user({userId => 3});
|
||||||
|
|
||||||
|
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||||
(undef, undef, my $shortname) = File::Spec->splitpath($file);
|
(undef, undef, my $shortname) = File::Spec->splitpath($file);
|
||||||
$shortname =~ s/\.[^.]*$//;
|
$shortname =~ s/\.[^.]*$//;
|
||||||
|
|
||||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
|
||||||
$versionTag->set({name => "Upgrade to $version - $shortname"});
|
$versionTag->set({name => "Upgrade to $version - $shortname"});
|
||||||
|
|
||||||
my $package = $class->import_package($session, $file);
|
my $package = $class->import_package($session, $file);
|
||||||
|
|
||||||
warn $versionTag->getId;
|
|
||||||
$versionTag->commit;
|
$versionTag->commit;
|
||||||
$session->var->end;
|
$session->var->end;
|
||||||
$session->close;
|
$session->close;
|
||||||
|
|
@ -41,8 +40,13 @@ sub import_package {
|
||||||
$storage->addFileFromFilesystem( $file );
|
$storage->addFileFromFilesystem( $file );
|
||||||
|
|
||||||
# Import the package into the import node
|
# Import the package into the import node
|
||||||
my $package = eval {
|
my $package = try {
|
||||||
WebGUI::Asset->getImportNode($session)->importPackage( $storage );
|
my $node = WebGUI::Asset->getImportNode($session);
|
||||||
|
$node->importPackage( $storage, {
|
||||||
|
overwriteLatest => 1,
|
||||||
|
clearPackageFlag => 1,
|
||||||
|
setDefaultTemplate => 1,
|
||||||
|
} );
|
||||||
};
|
};
|
||||||
|
|
||||||
$storage->delete;
|
$storage->delete;
|
||||||
|
|
|
||||||
40
t/Upgrade.t
40
t/Upgrade.t
|
|
@ -59,12 +59,10 @@ is_deeply
|
||||||
}
|
}
|
||||||
$upgrade->set_true('runUpgradeFile');
|
$upgrade->set_true('runUpgradeFile');
|
||||||
|
|
||||||
my $stdout;
|
capture {
|
||||||
my $stderr;
|
my $res = $upgrade->upgradeSites;
|
||||||
|
ok $res, 'upgradeSites runs';
|
||||||
my $res;
|
};
|
||||||
capture { $res = $upgrade->upgradeSites };
|
|
||||||
ok $res, 'upgradeSites runs';
|
|
||||||
|
|
||||||
$upgrade->called_pos_ok(1, 'getCurrentVersion');
|
$upgrade->called_pos_ok(1, 'getCurrentVersion');
|
||||||
$upgrade->called_pos_ok(2, 'runUpgradeFile');
|
$upgrade->called_pos_ok(2, 'runUpgradeFile');
|
||||||
|
|
@ -80,13 +78,17 @@ $upgrade->mock(testUpgrade => sub {
|
||||||
$self->runUpgradeFile($configFile, '8.3.0', collateral('Upgrade', $file), @_);
|
$self->runUpgradeFile($configFile, '8.3.0', collateral('Upgrade', $file), @_);
|
||||||
});
|
});
|
||||||
|
|
||||||
$stdout = capture { $upgrade->testUpgrade('output.pl') };
|
{
|
||||||
ok $stdout =~ 'Simple Output', 'report command functions correctly';
|
my $stdout = capture { $upgrade->testUpgrade('output.pl') };
|
||||||
ok $stdout =~ 'Done', 'done command functions correctly';
|
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';
|
my $stdout = capture { $upgrade->testUpgrade('output.pl', 1) };
|
||||||
ok $stdout !~ 'Done', 'quiet flag silences done command';
|
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('die.pl'); 1 }, 'Error on failing upgrade';
|
||||||
ok !try { $upgrade->testUpgrade('strict-failure.pl'); 1 }, 'strict enabled in upgrades';
|
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');
|
my $package = $upgrade->testUpgrade('test-template.wgpkg');
|
||||||
isa_ok $package, 'WebGUI::Asset::Template';
|
isa_ok $package, 'WebGUI::Asset::Template';
|
||||||
my $vtId = $package->get('tagId');
|
my $vtId = $package->get('tagId');
|
||||||
warn $vtId;
|
|
||||||
my $vt = WebGUI::VersionTag->new($session, $vtId);
|
my $vt = WebGUI::VersionTag->new($session, $vtId);
|
||||||
addToCleanup($vt);
|
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;
|
done_testing;
|
||||||
|
|
|
||||||
1
t/supporting_collateral/Upgrade/select.sql
Normal file
1
t/supporting_collateral/Upgrade/select.sql
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
SELECT dateApplied FROM webguiVersion ORDER BY dateApplied DESC LIMIT 1
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue