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 );
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
40
t/Upgrade.t
40
t/Upgrade.t
|
|
@ -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;
|
||||
|
|
|
|||
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