From b64dbd6657f75a6e3fd365508137b5fb79d9a3e7 Mon Sep 17 00:00:00 2001 From: Andrew Yates <ayates@ebi.ac.uk> Date: Fri, 15 Nov 2013 15:27:52 +0000 Subject: [PATCH] switch to using ENV variables. Otherwise we run the risk of not being able to run the tests in any kind of test harness tool --- modules/t/schemaPatches.t | 68 +++++++++------------------------------ 1 file changed, 16 insertions(+), 52 deletions(-) diff --git a/modules/t/schemaPatches.t b/modules/t/schemaPatches.t index 70f7896c40..be98b8a1ab 100644 --- a/modules/t/schemaPatches.t +++ b/modules/t/schemaPatches.t @@ -1,22 +1,5 @@ -=head1 NAME - - schemaPatches.t - -=head1 SYNOPSIS - - # print usage - $ perl schemaPatches.t -h - - # Get current release schema file from file system instead - # of CVS repository - $ perl schemaPatches.t -current-schema-no-cvs - -=head1 DESCRIPTION - - This script is used to assert that a previous version schema plus - patches equals the current table.sql. - -=cut +# We respond to the following ENV +# ENS_LOCAL_SCHEMA - If set to true we will use the local schema as the reference schema. Otherwise we use the previous version's schema from source control use strict; use warnings; @@ -32,32 +15,16 @@ use File::Find; use File::Spec::Functions qw/updir catfile catdir/; use File::Temp qw/tempfile/; use FindBin qw/$Bin/; -use Getopt::Long; - -my $help = 0; -my $current_schema_no_cvs = 0; - -# -# Parse command-line arguments -# -my $options_ok = - GetOptions( - "current_schema_no_cvs" => \$current_schema_no_cvs, - "h" => \$help); -($help or !$options_ok) && usage(); SKIP: { - my $ensembl_ok = test_ensembl(); - skip 'Cannot communicate with ensembl.org. We cannot continue with the tests', 1 unless $ensembl_ok; - - # Get last DB version and download last SQL schema + # Get last DB version my $current_release = software_version(); my $last_release = $current_release - 1; - my $last_table_sql = get_table_sql($last_release); # Get patch location and relevant set of patches - my $sql_dir = catdir($Bin, updir(), updir(), 'sql'); + my $project_dir = catdir($Bin, updir(), updir()); + my $sql_dir = catdir($project_dir, 'sql'); my @patches; find(sub { if($_ =~ /^patch_${last_release}_${current_release}_\w+\.sql$/) { @@ -65,6 +32,14 @@ SKIP: { } }, $sql_dir); + if(-d catdir($project_dir, '.git')) { + fail 'This was bad. Project is a Git project'; + skip 'Skipping: We do not currently get SQL from Git. ABORT!', 1; + } + + # Get the last SQL schema + my $last_table_sql = get_table_sql($last_release); + skip "Skipping DB patch tests as we cannot find the SQL for release $last_release", (scalar(@patches)+1) unless defined $last_table_sql; @@ -88,14 +63,15 @@ SKIP: { # Create last release DB my $current_table_sql; - if ($current_schema_no_cvs) { + if ($ENV{ENS_LOCAL_SCHEMA}) { my $table_sql = catfile($sql_dir, 'table.sql'); skip 'Skipping DB patch test as we cannot find last release schema file (table.sql)', 1 unless -e $table_sql; skip 'Skipping DB patch test as we last release schema file (table.sql) is not readable', 1 unless -r $table_sql; $current_table_sql = slurp($table_sql); - } else { + } + else { $current_table_sql = get_table_sql($current_release); } @@ -297,15 +273,3 @@ sub union_intersection_difference { } return (\@union, \@isect, \@diff); } - -sub usage { - my $prog = `basename $0`; chomp($prog); - - print "Usage: $prog [OPTIONS]\n\n"; - print "Options:\n"; - print " -current_schema_no_cvs\tDo no get current schema file from CVS\n"; - print " -h\t\t\t\tPrint this message\n"; - print "\n\n"; - - exit 1; -} -- GitLab