[libtap-parser-sourcehandler-pgtap-perl] 01/03: New upstream version 3.33
Christoph Berg
myon at debian.org
Tue Mar 28 19:22:48 UTC 2017
This is an automated email from the git hooks/post-receive script.
myon pushed a commit to branch master
in repository libtap-parser-sourcehandler-pgtap-perl.
commit 14a9644ee286cd4b8f979ce231bf51347d8340bd
Author: Christoph Berg <myon at debian.org>
Date: Tue Mar 28 20:05:42 2017 +0200
New upstream version 3.33
---
Changes | 15 ++++--
META.json | 6 +--
META.yml | 6 +--
README | 2 +-
bin/pg_prove | 2 +-
bin/pg_tapgen | 93 +++++++++++++++++++++++++++++++++--
lib/TAP/Parser/SourceHandler/pgTAP.pm | 4 +-
t/source_handler.t | 2 +-
8 files changed, 112 insertions(+), 18 deletions(-)
diff --git a/Changes b/Changes
index 90bd2bc..ca4ccdb 100644
--- a/Changes
+++ b/Changes
@@ -1,15 +1,24 @@
Revision history for Perl extension TAP::Parser::SourceHandler::pgTAP.
+3.33 2017-03-04T23:40:01Z
+ - Added trigger-testing functions to the output of `pg_tapgen`, thanks to
+ Rodolphe Quiédeville (PR #11).
+ - Added enum- and extension-testing functions to the output of
+ `pg_tapgen`, thanks to Rodolphe Quiédeville (PR #13, PR #14).
+ - Explicitly set the `psql` `pager` variable to `off`, instead of not
+ setting it, to ensure it is always off. Thanks to Keith Fiske for the
+ report (theory/pgtap#135).
+
3.32 2016-05-11T23:37:30Z
- Fixed quoting of default values output by `pg_tapgen`, thanks to a pull
request from Rodolphe Quiédeville (#7).
- - Various fixes and imrovements to `pg_tapgen`, including:
+ - Various fixes and improvements to `pg_tapgen`, including:
- Added `--create-extension` and `--no-create-extension` options to
include or exclude the `CREATE EXTENSION pgtap` statement in the
generated test files.
- - Fixed a bug taht threw an error when no database connection options
+ - Fixed a bug that threw an error when no database connection options
were specified.
- - Added support for the $PGPASSWORD environment variable.
+ - Added support for the `$PGPASSWORD` environment variable.
- The emitted test scripts now include an appropriate plan that
counts assertions, rather than `no_plan`, thanks to @slaught.
- Added a number of additional tests to the emitted tests scripts,
diff --git a/META.json b/META.json
index f5d0170..7fbe973 100644
--- a/META.json
+++ b/META.json
@@ -4,7 +4,7 @@
"David E. Wheeler <dwheeler at cpan.org>"
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.4212",
+ "generated_by" : "Module::Build version 0.4218",
"license" : [
"perl_5"
],
@@ -39,7 +39,7 @@
"provides" : {
"TAP::Parser::SourceHandler::pgTAP" : {
"file" : "lib/TAP/Parser/SourceHandler/pgTAP.pm",
- "version" : "3.32"
+ "version" : "3.33"
}
},
"release_status" : "stable",
@@ -55,5 +55,5 @@
"url" : "https://github.com/theory/tap-parser-sourcehandler-pgtap"
}
},
- "version" : "3.32"
+ "version" : "3.33"
}
diff --git a/META.yml b/META.yml
index 2577d3a..3285275 100644
--- a/META.yml
+++ b/META.yml
@@ -8,7 +8,7 @@ build_requires:
configure_requires:
Module::Build: '0.30'
dynamic_config: 1
-generated_by: 'Module::Build version 0.4212, CPAN::Meta::Converter version 2.150001'
+generated_by: 'Module::Build version 0.4218, CPAN::Meta::Converter version 2.150001'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -17,7 +17,7 @@ name: TAP-Parser-SourceHandler-pgTAP
provides:
TAP::Parser::SourceHandler::pgTAP:
file: lib/TAP/Parser/SourceHandler/pgTAP.pm
- version: '3.32'
+ version: '3.33'
recommends:
Test::Pod: '1.41'
Test::Pod::Coverage: '1.06'
@@ -29,4 +29,4 @@ resources:
homepage: https://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP/
license: http://dev.perl.org/licenses/
repository: https://github.com/theory/tap-parser-sourcehandler-pgtap
-version: '3.32'
+version: '3.33'
diff --git a/README b/README
index a6d2476..951ef50 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-TAP/Parser/SourceHandler/pgTAP version 3.32
+TAP/Parser/SourceHandler/pgTAP version 3.33
===========================================
This module adds support for executing [pgTAP](http://pgtap.org/) PostgreSQL
diff --git a/bin/pg_prove b/bin/pg_prove
index fed0c04..5e20585 100755
--- a/bin/pg_prove
+++ b/bin/pg_prove
@@ -4,7 +4,7 @@ use strict;
use App::Prove;
use Getopt::Long;
-our $VERSION = '3.32';
+our $VERSION = '3.33';
$|++;
# Fire up the app, process args, and run the tests.
diff --git a/bin/pg_tapgen b/bin/pg_tapgen
index a016dc8..edc6717 100755
--- a/bin/pg_tapgen
+++ b/bin/pg_tapgen
@@ -6,7 +6,7 @@ use DBI;
use DBD::Pg;
use Getopt::Long;
use File::Spec;
-our $VERSION = '3.32';
+our $VERSION = '3.33';
Getopt::Long::Configure (qw(bundling));
@@ -37,7 +37,7 @@ if ( $opts->{help} or $opts->{man} ) {
}
if ($opts->{version}) {
- print 'pg_prove ', main->VERSION, $/;
+ print 'pg_prove ', main->VERSION, "\n";
exit;
}
@@ -100,6 +100,8 @@ script {
materialized_views_are($schema);
sequences_are($schema);
functions_are($schema);
+ enums_are($schema);
+ extensions_are($schema);
}
}
} 'schema.sql';
@@ -270,6 +272,48 @@ sub functions_are {
# }
}
+sub enums_are {
+ my $schema = shift;
+ my $enums = $dbh->selectall_arrayref(q{
+ SELECT e.oid, e.typname
+ FROM pg_catalog.pg_type e
+ JOIN pg_catalog.pg_namespace n ON n.oid = e.typnamespace
+ WHERE e.typtype = 'e'
+ AND n.nspname = ?
+ }, undef, $schema);
+ return unless $enums && @{ $enums };
+ print "SELECT enums_are('$schema', ARRAY[\n '",
+ join("',\n '", map { $_->[1] } @{ $enums }),
+ "'\n]);\n\n";
+ $total_tests++;
+
+ for my $enum (@{ $enums }) {
+ my $labels = enum_labels($enum->[0]);
+ print "SELECT enum_has_labels('$schema','$enum->[1]', ARRAY['",
+ join("','", map { $_->[0] } @{ $labels }),
+ "']);\n";
+ $total_tests++;
+ }
+ print "\n";
+}
+
+sub extensions_are {
+ my $schema = shift;
+ my $extensions = $dbh->selectall_arrayref(q{
+ SELECT e.oid, e.extname, e.extversion
+ FROM pg_catalog.pg_extension e
+ JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
+ WHERE n.nspname = ?
+ }, undef, $schema);
+ return unless $extensions && @{ $extensions };
+ print "SELECT extensions_are('$schema', ARRAY[\n '",
+ join("',\n '", map { $_->[1] } @{ $extensions }),
+ "'\n]);\n";
+ $total_tests++;
+
+ print "\n";
+}
+
sub has_foreign_table {
my ($schema, $table) = @_;
print "SELECT has_foreign_table(
@@ -290,6 +334,7 @@ sub has_table {
$total_tests++;
has_pk($schema, $table);
columns_are($schema, $table);
+ triggers_are($schema, $table);
}
sub has_pk {
@@ -344,15 +389,44 @@ sub columns_are {
print "SELECT has_column( '$schema', '$table', '$col->[0]', '$desc should exist');\n",
"SELECT col_type_is( '$schema', '$table', '$col->[0]', '$col->[1]', '$desc should be type $col->[1]');\n",
"SELECT $null_fn '$schema', '$table', '$col->[0]', '$desc should $null_desc');\n",
- "SELECT $def_fn'$schema', '$table', '$col->[0]', '$desc should${def_desc}have a default');\n";
+ "SELECT $def_fn'$schema', '$table', '$col->[0]', '$desc should${def_desc} have a default');\n";
$total_tests = $total_tests + 4;
if ($col->[3]) {
print "SELECT col_default_is( '$schema', '$table', '$col->[0]', $col->[4], '$desc default is');\n";
$total_tests++ ;
}
- print $/;
+ print "\n";
+ }
+
+}
+
+sub triggers_are {
+ my ($schema, $table) = @_;
+ my $triggers = $dbh->selectall_arrayref(q{
+ SELECT t.tgname, ni.nspname, p.proname
+ FROM pg_catalog.pg_trigger t
+ JOIN pg_catalog.pg_class ct ON ct.oid = t.tgrelid
+ JOIN pg_catalog.pg_namespace nt ON nt.oid = ct.relnamespace
+ JOIN pg_catalog.pg_proc p ON p.oid = t.tgfoid
+ JOIN pg_catalog.pg_namespace ni ON ni.oid = p.pronamespace
+ WHERE nt.nspname = ?
+ AND ct.relname = ?
+ AND NOT t.tgisinternal
+ }, undef, $schema, $table);
+
+ return unless $triggers && @{ $triggers };
+ print "SELECT triggers_are('$schema', '$table', ARRAY[\n '",
+ join("',\n '", map { $_->[0] } @{ $triggers }),
+ "'\n]);\n\n";
+ $total_tests++;
+
+ for my $trigger (@{ $triggers }) {
+ print "SELECT has_trigger( '$schema', '$table', '$trigger->[0]'::name);\n",
+ "SELECT trigger_is( '$schema', '$table', '$trigger->[0]', '$trigger->[1]', '$trigger->[2]');\n";
+ $total_tests = $total_tests + 2;
}
+ print "\n";
}
sub _hasc {
@@ -392,6 +466,17 @@ sub function_owner {
return $dbh->selectcol_arrayref($sth, undef, @_)->[0];
}
+sub enum_labels {
+ my $sth = $dbh->prepare_cached(q{
+ SELECT enumlabel
+ FROM pg_catalog.pg_enum
+ WHERE enumtypid = ?
+ ORDER BY enumsortorder
+ });
+ return $dbh->selectall_arrayref($sth, undef, @_);
+}
+
+
__END__
=encoding utf8
diff --git a/lib/TAP/Parser/SourceHandler/pgTAP.pm b/lib/TAP/Parser/SourceHandler/pgTAP.pm
index 692cdbe..9e98ae6 100644
--- a/lib/TAP/Parser/SourceHandler/pgTAP.pm
+++ b/lib/TAP/Parser/SourceHandler/pgTAP.pm
@@ -9,7 +9,7 @@ use TAP::Parser::Iterator::Process ();
@ISA = qw(TAP::Parser::SourceHandler);
TAP::Parser::IteratorFactory->register_handler(__PACKAGE__);
-our $VERSION = '3.32';
+our $VERSION = '3.33';
=head1 Name
@@ -309,7 +309,7 @@ sub make_iterator {
--no-psqlrc
--no-align
--quiet
- --pset pager=
+ --pset pager=off
--pset tuples_only=true
--set ON_ERROR_STOP=1
);
diff --git a/t/source_handler.t b/t/source_handler.t
index a1a0dc5..b9e397e 100644
--- a/t/source_handler.t
+++ b/t/source_handler.t
@@ -25,7 +25,7 @@ $dir = catdir curdir, 't', 'bin' unless -d $dir;
--no-psqlrc
--no-align
--quiet
- --pset pager=
+ --pset pager=off
--pset tuples_only=true
--set ON_ERROR_STOP=1
);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libtap-parser-sourcehandler-pgtap-perl.git
More information about the Pkg-perl-cvs-commits
mailing list