Some functional E2E tests for the CDB_SyncTable() function
This commit is contained in:
+1
@@ -0,0 +1 @@
|
|||||||
|
../scripts-available/CDB_SyncTable.sql
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
-- Setup: create and populate a table to test the syncs
|
||||||
|
\set QUIET on
|
||||||
|
SET client_min_messages TO error;
|
||||||
|
CREATE TABLE test_sync_source (
|
||||||
|
cartodb_id bigint,
|
||||||
|
lat double precision,
|
||||||
|
lon double precision,
|
||||||
|
name text
|
||||||
|
);
|
||||||
|
INSERT INTO test_sync_source VALUES
|
||||||
|
(1, 1.0, 1.0, 'foo'),
|
||||||
|
(2, 2.0, 2.0, 'bar'),
|
||||||
|
(3, 3.0, 3.0, 'patata'),
|
||||||
|
(4, 4.0, 4.0, 'melon');
|
||||||
|
SET client_min_messages TO notice;
|
||||||
|
\set QUIET off
|
||||||
|
|
||||||
|
\echo 'First table sync: it should be simply just copied to the destination'
|
||||||
|
SELECT cartodb.CDB_SyncTable('test_sync_source', 'public', 'test_sync_dest');
|
||||||
|
|
||||||
|
\echo 'Next table sync: there shall be no changes'
|
||||||
|
SELECT cartodb.CDB_SyncTable('test_sync_source', 'public', 'test_sync_dest');
|
||||||
|
|
||||||
|
\echo 'Remove a row from the source and check it is deleted from the dest table'
|
||||||
|
DELETE FROM test_sync_source WHERE cartodb_id = 3;
|
||||||
|
SELECT cartodb.CDB_SyncTable('test_sync_source', 'public', 'test_sync_dest');
|
||||||
|
|
||||||
|
\echo 'Insert a new row and check that it is inserted in the dest table'
|
||||||
|
INSERT INTO test_sync_source VALUES (5, 5.0, 5.0, 'sandia');
|
||||||
|
SELECT cartodb.CDB_SyncTable('test_sync_source', 'public', 'test_sync_dest');
|
||||||
|
|
||||||
|
\echo 'Modify row and check that it is modified in the dest table'
|
||||||
|
UPDATE test_sync_source SET name = 'cantaloupe' WHERE cartodb_id = 4;
|
||||||
|
SELECT cartodb.CDB_SyncTable('test_sync_source', 'public', 'test_sync_dest');
|
||||||
|
|
||||||
|
\echo 'Sanity check: the end result is the same source table'
|
||||||
|
SELECT * FROM test_sync_source ORDER BY cartodb_id;
|
||||||
|
SELECT * FROM test_sync_dest ORDER BY cartodb_id;
|
||||||
|
|
||||||
|
-- Cleanup
|
||||||
|
\set QUIET on
|
||||||
|
DROP TABLE IF EXISTS test_sync_source;
|
||||||
|
DROP TABLE IF EXISTS test_sync_dest;
|
||||||
|
\set QUIET off
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
First table sync: it should be simply just copied to the destination
|
||||||
|
NOTICE: INSERTED 4 row(s)
|
||||||
|
|
||||||
|
Next table sync: there shall be no changes
|
||||||
|
NOTICE: relation "test_sync_dest" already exists, skipping
|
||||||
|
NOTICE: DELETED 0 row(s)
|
||||||
|
NOTICE: INSERTED 0 row(s)
|
||||||
|
NOTICE: MODIFIED 0 row(s)
|
||||||
|
|
||||||
|
Remove a row from the source and check it is deleted from the dest table
|
||||||
|
DELETE 1
|
||||||
|
NOTICE: relation "test_sync_dest" already exists, skipping
|
||||||
|
NOTICE: DELETED 1 row(s)
|
||||||
|
NOTICE: INSERTED 0 row(s)
|
||||||
|
NOTICE: MODIFIED 0 row(s)
|
||||||
|
|
||||||
|
Insert a new row and check that it is inserted in the dest table
|
||||||
|
INSERT 0 1
|
||||||
|
NOTICE: relation "test_sync_dest" already exists, skipping
|
||||||
|
NOTICE: DELETED 0 row(s)
|
||||||
|
NOTICE: INSERTED 1 row(s)
|
||||||
|
NOTICE: MODIFIED 0 row(s)
|
||||||
|
|
||||||
|
Modify row and check that it is modified in the dest table
|
||||||
|
UPDATE 1
|
||||||
|
NOTICE: relation "test_sync_dest" already exists, skipping
|
||||||
|
NOTICE: DELETED 0 row(s)
|
||||||
|
NOTICE: INSERTED 0 row(s)
|
||||||
|
NOTICE: MODIFIED 1 row(s)
|
||||||
|
|
||||||
|
Sanity check: the end result is the same source table
|
||||||
|
1|1|1|foo
|
||||||
|
2|2|2|bar
|
||||||
|
4|4|4|cantaloupe
|
||||||
|
5|5|5|sandia
|
||||||
|
1|1|1|foo
|
||||||
|
2|2|2|bar
|
||||||
|
4|4|4|cantaloupe
|
||||||
|
5|5|5|sandia
|
||||||
Reference in New Issue
Block a user