[Rt-commit] rt branch, 3.9-trunk, updated. rt-3.8.8-561-gc3c877c

Chia-liang Kao clkao at bestpractical.com
Wed Aug 25 04:52:49 EDT 2010


The branch, 3.9-trunk has been updated
       via  c3c877c64337c09a6c518d28f8db1499f84782e9 (commit)
      from  d02e6ba5d51258abdc5a71b0329d46c2dda82c73 (commit)

Summary of changes:
 lib/RT/Test.pm              |   65 +++++++++++++++++++++++++-----------------
 t/00-compile.t              |    2 +-
 t/00-mason-syntax.t         |    2 +-
 t/api/i18n.t                |    2 +-
 t/api/queue.t               |    2 +-
 t/mail/mime_decoding.t      |    2 +-
 t/mail/wrong_mime_charset.t |    2 +-
 7 files changed, 45 insertions(+), 32 deletions(-)

- Log -----------------------------------------------------------------
commit c3c877c64337c09a6c518d28f8db1499f84782e9
Author: Chia-liang Kao <clkao at bestpractical.com>
Date:   Wed Aug 25 16:52:51 2010 +0800

    rework the test init sequence to allow nodb, noinitialdata, and nodata options from tests.

diff --git a/lib/RT/Test.pm b/lib/RT/Test.pm
index d1b8dec..e4ea967 100644
--- a/lib/RT/Test.pm
+++ b/lib/RT/Test.pm
@@ -152,10 +152,14 @@ sub import {
 
     $class->bootstrap_db( %args );
 
-    RT->Init;
+    RT->InitClasses();
+    RT->InitLogging();
 
     $class->bootstrap_plugins( %args );
 
+    RT->InitPlugins();
+    RT->Config->PostLoadCheck;
+
     $class->set_config_wrapper;
 
     my $screen_logger = $RT::Logger->remove( 'screen' );
@@ -348,39 +352,48 @@ sub bootstrap_db {
         RT::Handle->DropDatabase( $dbh, Force => 1 );
     }
 
-    RT::Handle->CreateDatabase( $dbh );
-    $dbh->disconnect;
-    $created_new_db++;
+    if ($args{nodb}) {
+        $args{noinitialdata} = 1;
+        $args{nodata} = 1;
+    }
 
-    $dbh = _get_dbh(RT::Handle->DSN,
-            $ENV{RT_DBA_USER}, $ENV{RT_DBA_PASSWORD});
+    unless ($args{nodb}) {
+        RT::Handle->CreateDatabase( $dbh );
+        $dbh->disconnect;
+        $created_new_db++;
 
-    $RT::Handle = RT::Handle->new;
-    $RT::Handle->dbh( $dbh );
-    $RT::Handle->InsertSchema( $dbh );
+        $dbh = _get_dbh(RT::Handle->DSN,
+                        $ENV{RT_DBA_USER}, $ENV{RT_DBA_PASSWORD});
 
-    my $db_type = RT->Config->Get('DatabaseType');
-    $RT::Handle->InsertACL( $dbh ) unless $db_type eq 'Oracle';
+        $RT::Handle = RT::Handle->new;
+        $RT::Handle->dbh( $dbh );
+        $RT::Handle->InsertSchema( $dbh );
 
-    $RT::Handle = RT::Handle->new;
-    $RT::Handle->dbh( undef );
-    RT->ConnectToDatabase;
-    RT->InitLogging;
-    RT->InitSystemObjects;
-    $RT::Handle->InsertInitialData;
+        my $db_type = RT->Config->Get('DatabaseType');
+        $RT::Handle->InsertACL( $dbh ) unless $db_type eq 'Oracle';
 
-    DBIx::SearchBuilder::Record::Cachable->FlushCache;
-    $RT::Handle = RT::Handle->new;
-    $RT::Handle->dbh( undef );
-    RT->Init;
+        $RT::Handle = RT::Handle->new;
+        $RT::Handle->dbh( undef );
+        RT->ConnectToDatabase;
+        RT->InitLogging;
+
+        unless ($args{noinitialdata}) {
+            $RT::Handle->InsertInitialData;
 
-    $RT::Handle->PrintError;
-    $RT::Handle->dbh->{PrintError} = 1;
+            DBIx::SearchBuilder::Record::Cachable->FlushCache;
+        }
+
+        $RT::Handle = RT::Handle->new;
+        $RT::Handle->dbh( undef );
+        RT->ConnectToDatabase();
+        $RT::Handle->PrintError;
+        $RT::Handle->dbh->{PrintError} = 1;
 
-    unless ( $args{'nodata'} ) {
-        $RT::Handle->InsertData( $RT::EtcPath . "/initialdata" );
+        unless ( $args{'nodata'} ) {
+            $RT::Handle->InsertData( $RT::EtcPath . "/initialdata" );
+            DBIx::SearchBuilder::Record::Cachable->FlushCache;
+        }
     }
-    DBIx::SearchBuilder::Record::Cachable->FlushCache;
 }
 
 sub bootstrap_plugins {
diff --git a/t/00-compile.t b/t/00-compile.t
index 1a89e77..3c5b92c 100644
--- a/t/00-compile.t
+++ b/t/00-compile.t
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-use RT::Test nodata => 1, tests => 31;
+use RT::Test nodb => 1, tests => 31;
 
 require_ok("RT");
 require_ok("RT::Test");
diff --git a/t/00-mason-syntax.t b/t/00-mason-syntax.t
index a451805..9e29acd 100644
--- a/t/00-mason-syntax.t
+++ b/t/00-mason-syntax.t
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use RT::Test tests => 1;
+use RT::Test nodb => 1, tests => 1;
 
 my $ok = 1;
 
diff --git a/t/api/i18n.t b/t/api/i18n.t
index 17d71b7..6c0da4b 100644
--- a/t/api/i18n.t
+++ b/t/api/i18n.t
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 use RT;
-use RT::Test tests => 9;
+use RT::Test nodb => 1, tests => 9;
 
 
 {
diff --git a/t/api/queue.t b/t/api/queue.t
index 44d5caf..7346ed4 100644
--- a/t/api/queue.t
+++ b/t/api/queue.t
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 use RT;
-use RT::Test tests => 24;
+use RT::Test nodata => 1, tests => 24;
 
 
 {
diff --git a/t/mail/mime_decoding.t b/t/mail/mime_decoding.t
index b0093c5..e5449ef 100644
--- a/t/mail/mime_decoding.t
+++ b/t/mail/mime_decoding.t
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 use strict;
 use warnings;
-use RT::Test nodata => 1, tests => 7;
+use RT::Test nodb => 1, tests => 7;
 
 use_ok('RT::I18N');
 
diff --git a/t/mail/wrong_mime_charset.t b/t/mail/wrong_mime_charset.t
index f53c872..b0079f8 100644
--- a/t/mail/wrong_mime_charset.t
+++ b/t/mail/wrong_mime_charset.t
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 use strict;
 use warnings;
-use RT::Test nodata => 1, tests => 3;
+use RT::Test nodb => 1, tests => 3;
 
 use_ok('RT::I18N');
 use utf8;

-----------------------------------------------------------------------


More information about the Rt-commit mailing list