[Rt-commit] r14376 - in rt/3.8/trunk: .
spang at bestpractical.com
spang at bestpractical.com
Tue Jul 22 09:56:39 EDT 2008
Author: spang
Date: Tue Jul 22 09:56:37 2008
New Revision: 14376
Modified:
rt/3.8/trunk/ (props changed)
rt/3.8/trunk/t/shredder/utils.pl
Log:
r46881 at loki: spang | 2008-07-22 14:56:07 +0100
remove the entire test data directory when finished and doc cleanups in shredder/utils.pl
Modified: rt/3.8/trunk/t/shredder/utils.pl
==============================================================================
--- rt/3.8/trunk/t/shredder/utils.pl (original)
+++ rt/3.8/trunk/t/shredder/utils.pl Tue Jul 22 09:56:37 2008
@@ -20,33 +20,34 @@
=head1 DESCRIPTION
-RT::Shredder test suite utilities.
+RT::Shredder test suite utilities
=head1 TESTING
-Since RT:Shredder 0.01_03 we have test suite. You
+Since RT:Shredder 0.01_03 we have a test suite. You
can run tests and see if everything works as expected
before you try shredder on your actual data.
Tests also help in the development process.
-Test suite uses SQLite databases to store data in individual files,
-so you could sun tests on your production servers and be in safe.
+The test suite uses SQLite databases to store data in individual files,
+so you could sun tests on your production servers without risking
+damage to your production data.
+
+You'll want to run the test suite almost every time you install or update
+the shredder distribution, especialy if you have local customizations of
+the DB schema and/or RT code.
-You want to run test suite almost everytime you install/update
-shredder distribution. Especialy you want do it if you have local
-customizations of the DB schema and/or RT code.
-
-Tests is one thing you can write even if don't know perl much,
-but want to learn more about RT. New tests are very welcome.
+Tests are one thing you can write even if you don't know much perl,
+but want to learn more about RT's internals. New tests are very welcome.
=head2 WRITING TESTS
-Shredder distribution has several files to help write new tests.
+The shredder distribution has several files to help write new tests.
t/shredder/utils.pl - this file, utilities
- t/00skeleton.t - skeleteton .t file for new test files
+ t/00skeleton.t - skeleteton .t file for new tests
-All tests runs by next algorithm:
+All tests follow this algorithm:
require "t/shredder/utils.pl"; # plug in utilities
init_db(); # create new tmp RT DB and init RT API
@@ -60,7 +61,7 @@
# check that shredder deletes things you want
# this command will compare savepoint DB with current
cmp_deeply( dump_current_and_savepoint('mysp'), "current DB equal to savepoint");
- # then you can create another data and delete it then check again
+ # then you can create another object and delete it, then check again
Savepoints are named and you can create two or more savepoints.
@@ -70,8 +71,8 @@
=head3 rewrite_rtconfig
-Call this sub after C<RT::LoadConfig>. Function changes
-RT config option to switch to local SQLite database.
+Call this sub after C<RT::LoadConfig>. It changes the RT config
+options necessary to switch to a local SQLite database.
=cut
@@ -100,6 +101,10 @@
=head3 config_set
+This sub is a helper used by C<rewrite_rtconfig>. You shouldn't
+need to use it elsewhere unless you need to change other RT
+configuration variables.
+
=cut
sub config_set {
@@ -112,19 +117,19 @@
=head3 init_db
-Creates new RT DB with initial data in the test tmp dir.
-Remove old files in the tmp dir if exist.
-Also runs RT::Init() and init logging.
-This is all you need to call to setup testing environment
-in common situation.
+Creates a new RT DB with initial data in a new test tmp dir.
+Also runs RT::Init() and RT::InitLogging().
+
+This is all you need to call to setup a testing environment
+in most situations.
=cut
sub init_db
{
+ create_tmpdir();
RT::LoadConfig();
rewrite_rtconfig();
- cleanup_tmp();
RT::InitLogging();
_init_db();
@@ -155,10 +160,10 @@
=head3 db_name
-Returns absolute file path to the current DB.
-It is $tmpdir . test_name() .'.db'>.
+Returns the absolute file path to the current DB.
+It is <$tmpdir . test_name() .'.db'>.
-See also C<test_name> function.
+See also the C<test_name> function.
=cut
@@ -167,6 +172,7 @@
=head3 connect_sqlite
Returns connected DBI DB handle.
+
Takes path to sqlite db.
=cut
@@ -180,6 +186,8 @@
=head3 shredder_new
+Creates and returns a new RT::Shredder object.
+
=cut
sub shredder_new
@@ -200,9 +208,10 @@
=head3 test_name
-Returns name of the test file running now
-with stripped extension and dir names.
-For exmple returns '00load' for 't/00load.t' test file.
+Returns name of the test file running now with file extension and
+directory names stripped.
+
+For example, it returns '00load' for the test file 't/00load.t'.
=cut
@@ -218,7 +227,7 @@
=head3 tmpdir
-Return the absolute path to a tmp dir used in tests.
+Returns the absolute path to a tmp dir used in tests.
=cut
@@ -233,7 +242,7 @@
=head2 create_tmpdir
-Creates tmp dir if doesn't exist. Returns tmpdir path.
+Creates a tmp dir if one doesn't exist already. Returns tmpdir path.
=cut
@@ -241,22 +250,22 @@
=head3 cleanup_tmp
-Delete all tmp files used in the tests.
-See also C<test_name> function.
+Deletes all the tmp dir used in the tests.
+See also the C<test_name> function.
=cut
sub cleanup_tmp
{
- my $mask = File::Spec->catfile( tmpdir(), test_name() ) .'.*';
- return unlink glob($mask);
+ my $dir = File::Spec->catdir(tmpdir(), test_name());
+ return File::Path::rmtree( File::Spec->catdir( tmpdir(), test_name() ));
}
=head2 SAVEPOINTS
=head3 savepoint_name
-Returns absolute path to the named savepoint DB file.
+Returns the absolute path to the named savepoint DB file.
Takes one argument - savepoint name, by default C<sp>.
=cut
@@ -269,7 +278,7 @@
=head3 create_savepoint
-Creates savepoint DB from the current.
+Creates savepoint DB from the current DB.
Takes name of the savepoint as argument.
=head3 restore_savepoint
@@ -300,7 +309,7 @@
=head3 dump_sqlite
-Returns DB dump as complex hash structure:
+Returns DB dump as a complex hash structure:
{
TableName => {
#id => {
@@ -309,7 +318,7 @@
}
}
-Takes named argument C<CleanDates>. If true clean all date fields from
+Takes named argument C<CleanDates>. If true, clean all date fields from
dump. True by default.
=cut
@@ -376,11 +385,11 @@
=head2 NOTES
-Function that return debug notes.
+Function that returns debug notes.
=head3 note_on_fail
-Returns note about debug info you can find if test failed.
+Returns a note about debug info that you can display if tests fail.
=cut
More information about the Rt-commit
mailing list