File Release Notes and Changelog

Release Name: 0.22

Release Notes

pgTAP 0.22
==========

pgTAP is a unit testing framework for PostgreSQL written in PL/pgSQL and
PL/SQL. It includes a comprehensive collection of TAP-emitting assertion
functions as well as the ability to integrate with other TAP-emitting test
frameworks. It can also be used in the xUnit testing style.

The most important change in pgTAP 0.22 is the addition of functions to test
query results. These functions allow testers to write queries in pure SQL and
check that their results are as expected. The new functions are:

+ `results_eq()`
+ `results_ne()`
+ `set_eq()`
+ `bag_eq()`
+ `set_ne()`
+ `bag_ne()`
+ `set_has()`
+ `bag_has()`
+ `set_hasnt()`
+ `bag_hasnt()`

See [this blog
entry](http://www.justatheory.com/computers/databases/postgresql/test-your-results.html)
for an overview and the
[documentation](http://pgtap.projects.postgresql.org/documentation.html#Pursuing+Your+Query)
for complete details.

Change Log

Revision history for pgTAP
==========================

0.22 2009-07-31T00:26:16
-------------------------
* Fixed failing test on 8.4rc2.
* Added result set testing functions. These allow testers to write queries in
  pure SQL and check that their results are as expected. The new functions
  are:
  + `results_eq()`
  + `results_ne()`
  + `set_eq()`
  + `bag_eq()`
  + `set_ne()`
  + `bag_ne()`
  + `set_has()`
  + `bag_has()`
  + `set_hasnt()`
  + `bag_hasnt()`
* Changed some internal queries to use explicit `JOIN`s.
* Fixed capitalization of `TAP::Harness` in the `Makefile`. Thanks to
  Quinn Weaver.
* Fixed a syntax error that caused `uninstall_pgtap.sql` to fail on older
  PostgreSQL versions (fix by Quinn Weaver).
* Modified the summary documentation for the `--schema` and `--match` options
  to `pg_prove` to better reflect that they are for finding xUnit tests,
  not for finding pgTAP functions.

0.21 2009-05-29T00:04:31
-------------------------
* Fixed a bug in the processing of the `--schema` and `--match` options that
  only shows up in Getopt::Long 2.38 or higher.
* A few doc and test typos fixed thanks to Gabrielle Roth.
* Fixed failing test on Solaris 10 on Intel thanks to Gabrielle Roth.
* Fixed a failing test for the version number string on 8.4 beta.
* Added `performs_ok()`.
* Added `has_language()`, `hasnt_language()`, and `language_is_trusted()`.
* Added `has_opclass()` and `hasnt_opclass()`.
* Added `has_rule()`, `hasnt_rule()`, `rule_is_instead()`, and `rule_is_on()`.
* Added `tablespaces_are()`, `schemas_are()`, `tables_are()`, `views_are()`,
  `sequences_are()`, `functions_are()`, `indexes_are()`, `users_are()`,
  `groups_are()`, `opclasses_are()`, `languages_are()`, and `rules_are()`.
* Added a `has_trigger(table, trigger, description)`. Note that this means
  that if you were previously using `has_trigger(schema, table, trigger)`, you
  will need to cast the third argument to `NAME` to get it working again.
* Changed `can_ok()` to `has_function()`, so that it's named like all of the
  other functions that check for the presence of database objects. The old
  `can_ok()` function is still available as an alias, but it emits a warning
  and will be removed in a future version of pgTAP.
* Added `hasnt_trigger()`, `hasnt_index()`, and `hasnt_function()`.
* Added `function_lang_is()`, `function_returns()`, `is_definer()`,
  `is_aggregate()`, `is_strict()`, and `volatility_is()`.
Powered By FusionForge