How can I include sql file in pgTAP unittest?

Поиск
Список
Период
Сортировка
От Stéphane Klein
Тема How can I include sql file in pgTAP unittest?
Дата
Msg-id CADKxhpd0Y4oJHy-O=TAdnzTgs-UB1H5FShmx5qWQuKT3FmLndQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: How can I include sql file in pgTAP unittest?
Список pgsql-general
Hi,

context: I would like to write UnitTest to test pgSQL triggers which use postgres_fdw extension.
I use pgTAP to write this UnitTest (I use this Docker environment poc-postgresql-pgTAP).

All works perfectly with this test file:

BEGIN;
  SELECT plan(1);

  CREATE EXTENSION IF NOT EXISTS postgres_fdw;
  DROP SERVER IF EXISTS db2 CASCADE;
  CREATE SERVER kea FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'db2', dbname 'db2');
  CREATE USER MAPPING FOR USER SERVER db2 OPTIONS (user 'db2', password 'password');

  CREATE SCHEMA IF NOT EXISTS db2;

  IMPORT FOREIGN SCHEMA public FROM SERVER db2 INTO db2;

  SELECT ok(
    (SELECT COUNT(host_id) FROM db2.hosts) = 1,
    'foobar'
  );

  -- ;
ROLLBACK;

Now, I would like to extract db2 initialization in separate file "/test/init.sql" with this content:

  CREATE EXTENSION IF NOT EXISTS postgres_fdw;
  DROP SERVER IF EXISTS db2 CASCADE;
  CREATE SERVER kea FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'db2', dbname 'db2');
  CREATE USER MAPPING FOR USER SERVER db2 OPTIONS (user 'db2', password 'password');

  CREATE SCHEMA IF NOT EXISTS db2;

  IMPORT FOREIGN SCHEMA public FROM SERVER db2 INTO db2;

Now, my test file is:

BEGIN;
  SELECT plan(1);

  \i /test/init.sql

  SELECT ok(
    (SELECT COUNT(host_id) FROM db2.hosts) = 1,
    'foobar'
  );

In log I see that "init.sql" file is loaded with success:

Running tests: /test/*.sql -v
/test/init.sql ................... No subtests run

But I have this error:

ERROR:  user mapping not found for "db2"

Question: where is my mistake? How can I include some sql file in my test?

Best regards,

В списке pgsql-general по дате отправления:

Предыдущее
От: Thomas Kellerer
Дата:
Сообщение: Re: PG 10 logical replication version dependency?
Следующее
От: Łukasz Jarych
Дата:
Сообщение: Tracking changes DML in history log table