On Tue, Oct 11, 2011 at 04:26:47PM +0200, Alban Hertroys wrote: > On 11 October 2011 16:06, Eric Radman <ericshane@xxxxxxxxxxx> wrote: > > When writing unit tests it's sometimes useful to stub functions such > > as the current date and time > > You could create a table for such "constants" and read your > current-time from that table. > > Additionally, I would put such stub functions in a separate schema and > create a test role with that schema as the top of their search_path. > > That way, you could even override system function implementations (and > other definitions) and only have them apply to the role you're using > for unit testing. > CREATE ROLE unit_tester; > CREATE SCHEMA unit_tests AUTHORIZATION unit_tester; > SET search_path TO unit_tests, my_schema, public; > > CREATE TABLE unit_test_parameters ( > current_time timestamp without time zone NOT NULL DEFAULT now() > ); Excellent advice; this model works wonderfully. pg_catalog is normally implicit, but you're right, system functions can be overridden by setting the search path. Eric Radman | http://eradman.com -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general