Added server specification API tests
This commit is contained in:
@@ -6,6 +6,13 @@ CREATE EXTENSION cartodb;
|
|||||||
CREATE EXTENSION cdb_geocoder;
|
CREATE EXTENSION cdb_geocoder;
|
||||||
-- Install the extension
|
-- Install the extension
|
||||||
CREATE EXTENSION cdb_geocoder_server;
|
CREATE EXTENSION cdb_geocoder_server;
|
||||||
|
-- Mock the redis server connection to point to this very test db
|
||||||
|
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
|
||||||
|
cdb_conf_setconf
|
||||||
|
------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
-- Mock the varnish invalidation function
|
-- Mock the varnish invalidation function
|
||||||
-- (used by cdb_geocoder tests)
|
-- (used by cdb_geocoder tests)
|
||||||
CREATE OR REPLACE FUNCTION public.cdb_invalidate_varnish(table_name text) RETURNS void AS $$
|
CREATE OR REPLACE FUNCTION public.cdb_invalidate_varnish(table_name text) RETURNS void AS $$
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
-- Create a conf table
|
-- Create a conf table
|
||||||
SELECT cdb_geocoder_server._config_set('cds', '{"Manolo Escobar": {"El Limonero":"En stock", "Viva el vino":"Sin stock"}}');
|
SELECT cartodb.cdb_conf_setconf('cds', '{"Manolo Escobar": {"El Limonero":"En stock", "Viva el vino":"Sin stock"}}');
|
||||||
_config_set
|
cdb_conf_setconf
|
||||||
-------------
|
------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- Test key retrieval
|
-- Test key retrieval
|
||||||
SELECT cdb_geocoder_server._config_get('cds');
|
SELECT cartodb.cdb_conf_getconf('cds');
|
||||||
_config_get
|
cdb_conf_getconf
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
{"Manolo Escobar": {"El Limonero":"En stock", "Viva el vino":"Sin stock"}}
|
{"Manolo Escobar": {"El Limonero":"En stock", "Viva el vino":"Sin stock"}}
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- Test returns NULL if key doesn't exist
|
-- Test returns NULL if key doesn't exist
|
||||||
SELECT cdb_geocoder_server._config_get('no existe');
|
SELECT cartodb.cdb_conf_getconf('no existe');
|
||||||
_config_get
|
cdb_conf_getconf
|
||||||
-------------
|
------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain');
|
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'Spain');
|
||||||
geocode_admin0_polygon
|
geocode_admin0_polygon
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
@@ -16,9 +16,32 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
|
|||||||
-71.1031880899493 42.3152774590236))',4326)
|
-71.1031880899493 42.3152774590236))',4326)
|
||||||
);
|
);
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain');
|
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'Spain');
|
||||||
geocode_admin0_polygon
|
geocode_admin0_polygon
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
|
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
-- Check for admin0 signatures
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_admin0_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_admin0_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'California');
|
||||||
geocode_admin1_polygon
|
geocode_admin1_polygon
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'California', 'United States');
|
||||||
geocode_admin1_polygon
|
geocode_admin1_polygon
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
@@ -22,15 +22,60 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
|
|||||||
-71.1031880899493 42.3152774590236))',4326)
|
-71.1031880899493 42.3152774590236))',4326)
|
||||||
);
|
);
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'California');
|
||||||
geocode_admin1_polygon
|
geocode_admin1_polygon
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
|
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'California', 'United States');
|
||||||
geocode_admin1_polygon
|
geocode_admin1_polygon
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
|
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
-- Check for admin1 signatures
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Spain');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Valencia', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Valencia', 'Spain');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
@@ -31,39 +31,106 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
|
|||||||
-- Insert dummy data into admin1 decoder table
|
-- Insert dummy data into admin1 decoder table
|
||||||
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
|
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
|
||||||
-- This should return the point inserted above
|
-- This should return the point inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elche');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Spain');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elche', 'Spain');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Valencia', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Valencia', 'Spain');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'valencia', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elche', 'valencia', 'Spain');
|
||||||
geocode_namedplace_point
|
geocode_namedplace_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
-- Check for namedplaces signatures
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ DELETE FROM available_services;
|
|||||||
DELETE FROM admin0_synonyms;
|
DELETE FROM admin0_synonyms;
|
||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, txid_current(), '03204');
|
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204');
|
||||||
geocode_postalcode_point
|
geocode_postalcode_point
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
@@ -42,25 +42,25 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
|
|||||||
3
|
3
|
||||||
);
|
);
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, txid_current(), '03204');
|
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204');
|
||||||
geocode_postalcode_point
|
geocode_postalcode_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E61000000000000000E040408036B47414764840
|
0101000020E61000000000000000E040408036B47414764840
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, txid_current(), '03204', 'spain');
|
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204', 'spain');
|
||||||
geocode_postalcode_point
|
geocode_postalcode_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E61000000000000000E040408036B47414764840
|
0101000020E61000000000000000E040408036B47414764840
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, txid_current(), '03204');
|
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204');
|
||||||
geocode_postalcode_polygon
|
geocode_postalcode_polygon
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
|
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, txid_current(), '03204', 'spain');
|
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204', 'spain');
|
||||||
geocode_postalcode_polygon
|
geocode_postalcode_polygon
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
|
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
|
||||||
@@ -72,3 +72,92 @@ DELETE FROM global_postal_code_polygons;
|
|||||||
DELETE FROM country_decoder;
|
DELETE FROM country_decoder;
|
||||||
DELETE FROM available_services;
|
DELETE FROM available_services;
|
||||||
DELETE FROM admin0_synonyms;
|
DELETE FROM admin0_synonyms;
|
||||||
|
-- Check for namedplaces signatures (point and polygon)
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0');
|
SELECT cdb_geocoder_server.geocode_ip_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '0.0.0.0');
|
||||||
geocode_ip_point
|
geocode_ip_point
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
@@ -9,9 +9,32 @@ SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0
|
|||||||
-- Insert dummy data into ip_address_locations
|
-- Insert dummy data into ip_address_locations
|
||||||
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
|
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0');
|
SELECT cdb_geocoder_server.geocode_ip_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '0.0.0.0');
|
||||||
geocode_ip_point
|
geocode_ip_point
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
0101000020E61000003333333333334440AE47E17A14AE0D40
|
0101000020E61000003333333333334440AE47E17A14AE0D40
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
-- Check for namedplaces signatures (point and polygon)
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_ip_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_ip_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
exists
|
||||||
|
--------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- Interfacess of the server extension
|
-- Interfacess of the server extension
|
||||||
|
|
||||||
---- geocode_admin1_polygon(admin1_name text)
|
---- geocode_admin1_polygon(admin1_name text)
|
||||||
CREATE OR REPLACE FUNCTION geocode_admin1_polygon(user_id name, tx_id bigint, admin1_name text)
|
CREATE OR REPLACE FUNCTION geocode_admin1_polygon(user_id name, user_config json, geocoder_config json, admin1_name text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering geocode_admin1_polygon(admin1_name text)')
|
plpy.debug('Entering geocode_admin1_polygon(admin1_name text)')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
@@ -23,7 +23,7 @@ RETURNS Geometry AS $$
|
|||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
---- geocode_admin1_polygon(admin1_name text, country_name text)
|
---- geocode_admin1_polygon(admin1_name text, country_name text)
|
||||||
CREATE OR REPLACE FUNCTION geocode_admin1_polygon(user_id name, tx_id bigint, admin1_name text, country_name text)
|
CREATE OR REPLACE FUNCTION geocode_admin1_polygon(user_id name, user_config json, geocoder_config json, admin1_name text, country_name text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering geocode_admin1_polygon(admin1_name text, country_name text)')
|
plpy.debug('Entering geocode_admin1_polygon(admin1_name text, country_name text)')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- Interfacess of the server extension
|
-- Interfacess of the server extension
|
||||||
|
|
||||||
---- geocode_namedplace_point(city_name text)
|
---- geocode_namedplace_point(city_name text)
|
||||||
CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, tx_id bigint, city_name text)
|
CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, user_config json, geocoder_config json, city_name text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering geocode_namedplace_point(city_name text)')
|
plpy.debug('Entering geocode_namedplace_point(city_name text)')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
@@ -23,7 +23,7 @@ RETURNS Geometry AS $$
|
|||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
---- geocode_namedplace_point(city_name text, country_name text)
|
---- geocode_namedplace_point(city_name text, country_name text)
|
||||||
CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, tx_id bigint, city_name text, country_name text)
|
CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, user_config json, geocoder_config json, city_name text, country_name text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering geocode_namedplace_point(city_name text, country_name text)')
|
plpy.debug('Entering geocode_namedplace_point(city_name text, country_name text)')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
@@ -45,7 +45,7 @@ RETURNS Geometry AS $$
|
|||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
---- geocode_namedplace_point(city_name text, admin1_name text, country_name text)
|
---- geocode_namedplace_point(city_name text, admin1_name text, country_name text)
|
||||||
CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, tx_id bigint, city_name text, admin1_name text, country_name text)
|
CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, user_config json, geocoder_config json, city_name text, admin1_name text, country_name text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
|
plpy.debug('Entering geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
-- Interface of the server extension
|
-- Interface of the server extension
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION geocode_postalcode_point(user_id NAME, tx_id BIGINT, code text)
|
CREATE OR REPLACE FUNCTION geocode_postalcode_point(user_id name, user_config json, geocoder_config json, code text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering _geocode_postalcode_point')
|
plpy.debug('Entering _geocode_postalcode_point')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
@@ -23,7 +23,7 @@ RETURNS Geometry AS $$
|
|||||||
return rv[0]["point"]
|
return rv[0]["point"]
|
||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION geocode_postalcode_point(user_id NAME, tx_id BIGINT, code text, country text)
|
CREATE OR REPLACE FUNCTION geocode_postalcode_point(user_id name, user_config json, geocoder_config json, code text, country text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering _geocode_postalcode_point')
|
plpy.debug('Entering _geocode_postalcode_point')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
@@ -44,7 +44,7 @@ RETURNS Geometry AS $$
|
|||||||
return rv[0]["point"]
|
return rv[0]["point"]
|
||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION geocode_postalcode_polygon(user_id NAME, tx_id BIGINT, code text)
|
CREATE OR REPLACE FUNCTION geocode_postalcode_polygon(user_id name, user_config json, geocoder_config json, code text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering _geocode_postalcode_polygon')
|
plpy.debug('Entering _geocode_postalcode_polygon')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
@@ -65,7 +65,7 @@ RETURNS Geometry AS $$
|
|||||||
return rv[0]["polygon"]
|
return rv[0]["polygon"]
|
||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION geocode_postalcode_polygon(user_id NAME, tx_id BIGINT, code text, country text)
|
CREATE OR REPLACE FUNCTION geocode_postalcode_polygon(user_id name, user_config json, geocoder_config json, code text, country text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering _geocode_postalcode_point')
|
plpy.debug('Entering _geocode_postalcode_point')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
-- Interface of the server extension
|
-- Interface of the server extension
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION geocode_ip_point(user_id NAME, tx_id BIGINT, ip TEXT)
|
CREATE OR REPLACE FUNCTION geocode_ip_point(user_id name, user_config json, geocoder_config json, ip text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
plpy.debug('Entering _geocode_ip_point')
|
plpy.debug('Entering _geocode_ip_point')
|
||||||
plpy.debug('user_id = %s' % user_id)
|
plpy.debug('user_id = %s' % user_id)
|
||||||
@@ -26,7 +26,7 @@ $$ LANGUAGE plpythonu;
|
|||||||
|
|
||||||
-- Implementation of the server extension
|
-- Implementation of the server extension
|
||||||
-- Note: these functions depend on the cdb_geocoder extension
|
-- Note: these functions depend on the cdb_geocoder extension
|
||||||
CREATE OR REPLACE FUNCTION _geocode_ip_point(ip TEXT)
|
CREATE OR REPLACE FUNCTION _geocode_ip_point(ip text)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
DECLARE
|
DECLARE
|
||||||
ret Geometry;
|
ret Geometry;
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ CREATE EXTENSION cdb_geocoder;
|
|||||||
-- Install the extension
|
-- Install the extension
|
||||||
CREATE EXTENSION cdb_geocoder_server;
|
CREATE EXTENSION cdb_geocoder_server;
|
||||||
|
|
||||||
|
-- Mock the redis server connection to point to this very test db
|
||||||
|
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
|
||||||
|
|
||||||
-- Mock the varnish invalidation function
|
-- Mock the varnish invalidation function
|
||||||
-- (used by cdb_geocoder tests)
|
-- (used by cdb_geocoder tests)
|
||||||
CREATE OR REPLACE FUNCTION public.cdb_invalidate_varnish(table_name text) RETURNS void AS $$
|
CREATE OR REPLACE FUNCTION public.cdb_invalidate_varnish(table_name text) RETURNS void AS $$
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
-- Create a conf table
|
-- Create a conf table
|
||||||
SELECT cdb_geocoder_server._config_set('cds', '{"Manolo Escobar": {"El Limonero":"En stock", "Viva el vino":"Sin stock"}}');
|
SELECT cartodb.cdb_conf_setconf('cds', '{"Manolo Escobar": {"El Limonero":"En stock", "Viva el vino":"Sin stock"}}');
|
||||||
|
|
||||||
-- Test key retrieval
|
-- Test key retrieval
|
||||||
SELECT cdb_geocoder_server._config_get('cds');
|
SELECT cartodb.cdb_conf_getconf('cds');
|
||||||
|
|
||||||
-- Test returns NULL if key doesn't exist
|
-- Test returns NULL if key doesn't exist
|
||||||
SELECT cdb_geocoder_server._config_get('no existe');
|
SELECT cartodb.cdb_conf_getconf('no existe');
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain');
|
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'Spain');
|
||||||
|
|
||||||
-- Insert some dummy synonym
|
-- Insert some dummy synonym
|
||||||
INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP');
|
INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP');
|
||||||
@@ -14,4 +14,19 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
|
|||||||
);
|
);
|
||||||
|
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain');
|
SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'Spain');
|
||||||
|
|
||||||
|
-- Check for admin0 signatures
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_admin0_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_admin0_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'California');
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'California', 'United States');
|
||||||
|
|
||||||
-- Insert dummy data into country decoder table
|
-- Insert dummy data into country decoder table
|
||||||
INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA');
|
INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA');
|
||||||
@@ -15,10 +15,34 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
|
|||||||
);
|
);
|
||||||
|
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'California');
|
||||||
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States');
|
SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 0, "nokia_soft_geocoder_limit": false}', 'California', 'United States');
|
||||||
|
|
||||||
|
|
||||||
|
-- Check for admin1 signatures
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_admin1_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx');
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Spain');
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Valencia', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Valencia', 'Spain');
|
||||||
|
|
||||||
-- Insert dummy data into points table
|
-- Insert dummy data into points table
|
||||||
INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText(
|
INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText(
|
||||||
@@ -21,9 +21,52 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
|
|||||||
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
|
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
|
||||||
|
|
||||||
-- This should return the point inserted above
|
-- This should return the point inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx');
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elche');
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Spain');
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elche', 'Spain');
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Valencia', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elx', 'Valencia', 'Spain');
|
||||||
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'valencia', 'Spain');
|
SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', 'Elche', 'valencia', 'Spain');
|
||||||
|
|
||||||
|
-- Check for namedplaces signatures
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_namedplace_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text, text');
|
||||||
@@ -7,7 +7,7 @@ DELETE FROM admin0_synonyms;
|
|||||||
|
|
||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, txid_current(), '03204');
|
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204');
|
||||||
|
|
||||||
-- Insert dummy data into ip_address_locations
|
-- Insert dummy data into ip_address_locations
|
||||||
INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES (
|
INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES (
|
||||||
@@ -44,13 +44,13 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
|
|||||||
);
|
);
|
||||||
|
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, txid_current(), '03204');
|
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204');
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, txid_current(), '03204', 'spain');
|
SELECT cdb_geocoder_server.geocode_postalcode_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204', 'spain');
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, txid_current(), '03204');
|
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204');
|
||||||
|
|
||||||
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, txid_current(), '03204', 'spain');
|
SELECT cdb_geocoder_server.geocode_postalcode_polygon(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '03204', 'spain');
|
||||||
|
|
||||||
-- Clean dbs
|
-- Clean dbs
|
||||||
DELETE FROM global_postal_code_points;
|
DELETE FROM global_postal_code_points;
|
||||||
@@ -58,3 +58,60 @@ DELETE FROM global_postal_code_polygons;
|
|||||||
DELETE FROM country_decoder;
|
DELETE FROM country_decoder;
|
||||||
DELETE FROM available_services;
|
DELETE FROM available_services;
|
||||||
DELETE FROM admin0_synonyms;
|
DELETE FROM admin0_synonyms;
|
||||||
|
|
||||||
|
-- Check for namedplaces signatures (point and polygon)
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_postalcode_polygon'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text, text');
|
||||||
@@ -1,9 +1,24 @@
|
|||||||
-- Check that the public function is callable, even with no data
|
-- Check that the public function is callable, even with no data
|
||||||
-- It should return NULL
|
-- It should return NULL
|
||||||
SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0');
|
SELECT cdb_geocoder_server.geocode_ip_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '0.0.0.0');
|
||||||
|
|
||||||
-- Insert dummy data into ip_address_locations
|
-- Insert dummy data into ip_address_locations
|
||||||
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
|
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
|
||||||
|
|
||||||
-- This should return the polygon inserted above
|
-- This should return the polygon inserted above
|
||||||
SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0');
|
SELECT cdb_geocoder_server.geocode_ip_point(session_user, '{"is_organization": false, "entity_name": "test_user"}', '{"street_geocoder_provider": "nokia","nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}', '0.0.0.0');
|
||||||
|
|
||||||
|
-- Check for namedplaces signatures (point and polygon)
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = 'geocode_ip_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'name, json, json, text');
|
||||||
|
|
||||||
|
SELECT exists(SELECT *
|
||||||
|
FROM pg_proc p
|
||||||
|
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
|
||||||
|
WHERE ns.nspname = 'cdb_geocoder_server'
|
||||||
|
AND proname = '_geocode_ip_point'
|
||||||
|
AND oidvectortypes(p.proargtypes) = 'text');
|
||||||
Reference in New Issue
Block a user