X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2F000setup_database.t;h=4e739b72d925e797b3f19835388b0ff69c6eda3f;hb=94f5cb152afa9210162295b6727801c296af0631;hp=53b5ffe44bc8925bb9af0ebbb9ab72746a0413f5;hpb=40f16528620535266596fc247109a821031c555d;p=kivitendo-erp.git diff --git a/t/000setup_database.t b/t/000setup_database.t index 53b5ffe44..4e739b72d 100755 --- a/t/000setup_database.t +++ b/t/000setup_database.t @@ -14,8 +14,9 @@ use SL::InstanceConfiguration; use SL::LXDebug; use SL::Layout::None; use SL::LxOfficeConf; +use Support::TestSetup; -our ($db_cfg, $dbh); +our ($db_cfg, $dbh, $superuser_dbh); sub dbg { # diag(@_); @@ -51,7 +52,7 @@ sub setup { $::lxdebug = LXDebug->new(target => LXDebug::STDERR_TARGET); $::lxdebug->disable_sub_tracing; $::locale = Locale->new($::lx_office_conf{system}->{language}); - $::form = Form->new; + $::form = Support::TestSetup->create_new_form; $::auth = SL::Auth->new(unit_tests_database => 1); $::locale = Locale->new('de'); $::instance_conf = SL::InstanceConfiguration->new; @@ -84,7 +85,8 @@ sub drop_and_create_database { sub report_success { $dbh->disconnect; - ok(1, "Database has been setup sucessfully."); + $superuser_dbh->disconnect if $superuser_dbh; + ok(1, "Database has been set up successfully."); done_testing(); } @@ -96,7 +98,8 @@ sub apply_dbupgrade { dbg("Applying $file"); - my $error = $dbupdater->process_file($dbh, $file, $control); + my $script_dbh = $control && $control->{superuser_privileges} ? ($superuser_dbh // $dbh) : $dbh; + my $error = $dbupdater->process_file($script_dbh, $file, $control); BAIL_OUT("Error applying $file: $error") if $error; } @@ -116,6 +119,17 @@ sub create_initial_schema { my $dbupdater = SL::DBUpgrade2->new(form => $::form, return_on_error => 1, silent => 1); my $coa = 'Germany-DATEV-SKR03EU'; + if ($db_cfg->{superuser_user} && ($db_cfg->{superuser_user} ne $db_cfg->{user})) { + @dbi_options = ( + 'dbi:Pg:dbname=' . $db_cfg->{db} . ';host=' . $db_cfg->{host} . ';port=' . $db_cfg->{port}, + $db_cfg->{superuser_user}, + $db_cfg->{superuser_password}, + SL::DBConnect->get_options(PrintError => 0, PrintWarn => 0), + ); + + $superuser_dbh = SL::DBConnect->connect(@dbi_options) || BAIL_OUT("Database superuser connection failed: " . $DBI::errstr); + } + apply_dbupgrade($dbupdater, "sql/lx-office.sql"); apply_dbupgrade($dbupdater, "sql/${coa}-chart.sql"); @@ -162,7 +176,6 @@ sub create_client_user_and_employee { signature => '', hide_cvar_search_options => '', numberformat => '1.000,00', - vclimit => 0, favorites => '', copies => '', menustyle => 'v3',