Kevin Field <kevinjamesfield(at)gmail(dot)com> writes:
> I use pgTAP to make sure my functions produce the correct errors using
> throws_ok(). So when I get an error from a plpgsql function, it looks
> like this:
> ERROR: upper bound of FOR loop cannot be null
> CONTEXT: PL/pgSQL function "foo" line 35 at FOR with integer loop
> variable
> ...which I can then test using throws_ok by giving it the string
> 'upper bound of FOR loop cannot be null'.
Surely, this is a completely brain-dead approach to testing errors
in the first place ... what will happen in a localized installation?
What you need is a test that looks at the SQLSTATE code, and little
if anything else.
regards, tom lane