Renumbering the test
authorMike Rylander <mrylander@gmail.com>
Thu, 16 Jan 2014 20:44:58 +0000 (15:44 -0500)
committerMike Rylander <mrylander@gmail.com>
Thu, 16 Jan 2014 20:44:58 +0000 (15:44 -0500)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/sql/Pg/live_t/0852.fixed_field_enhancements.pg [new file with mode: 0644]
Open-ILS/src/sql/Pg/live_t/XXXX.fixed_field_enhancements.pg [deleted file]
Open-ILS/src/sql/Pg/upgrade/XXXX.function.prox_adjust.sql [deleted file]

diff --git a/Open-ILS/src/sql/Pg/live_t/0852.fixed_field_enhancements.pg b/Open-ILS/src/sql/Pg/live_t/0852.fixed_field_enhancements.pg
new file mode 100644 (file)
index 0000000..683be42
--- /dev/null
@@ -0,0 +1,79 @@
+\set ECHO
+\set QUIET 1
+-- Turn off echo and keep things quiet.
+
+-- Format the output for nice TAP.
+\pset format unaligned
+\pset tuples_only true
+\pset pager
+
+-- Revert all changes on failure.
+\set ON_ERROR_ROLLBACK 1
+\set ON_ERROR_STOP true
+\set QUIET 1
+
+-- let's do this thing
+BEGIN;
+
+SELECT plan(7);
+
+-- The effect of this will be rolled back, so don't worry.
+DELETE FROM actor.org_unit_proximity_adjustment;
+
+-- Tests in the directory where we are rely on stock and Concerto data being
+-- loaded.
+INSERT INTO actor.org_unit_proximity_adjustment (
+    item_circ_lib, hold_pickup_lib, absolute_adjustment, prox_adjustment
+) VALUES (2, 2, true, 0);
+
+SELECT is(
+    (SELECT pickup_lib = 5 FROM action.hold_request WHERE id = 3),
+    TRUE,
+    'Data suitable for test: hold #3 has pickup_lib 5'
+);
+
+SELECT is(
+    (SELECT pickup_lib = 9 FROM action.hold_request WHERE id = 4),
+    TRUE,
+    'Data suitable for test: hold #4 has pickup_lib 9'
+);
+
+SELECT is(
+    (SELECT circ_lib = 4 FROM asset.copy WHERE id = 2884),
+    TRUE,
+    'Data suitable for test: copy #2884 has circ_lib 4'
+);
+
+SELECT is(
+    (SELECT aou.parent_ou = 2 AND aout.depth = 2
+        FROM actor.org_unit aou
+        JOIN actor.org_unit_type aout ON (aout.id = aou.ou_type)
+        WHERE aou.id = 5),
+    TRUE,
+    'Data suitable for test: ou #5 has parent_ou 2 and depth 2'
+);
+
+SELECT is(
+    (SELECT aou.parent_ou <> 2 AND aout.depth >= 2
+        FROM actor.org_unit aou
+        JOIN actor.org_unit_type aout ON (aout.id = aou.ou_type)
+        WHERE aou.id = 9),
+    TRUE,
+    'Data suitable for test: ou #9 doesn''t have parent_ou 2, does have depth at least 2'
+);
+        
+SELECT is(
+    action.hold_copy_calculated_proximity (3, 2884)::INT,
+    0,
+    'Org unit proximity adjustment takes effect when it should'
+);
+
+SELECT is(
+    action.hold_copy_calculated_proximity (4, 2884)::INT,
+    5,
+    '(regression test) Org unit proximity adjustment doesn''t take effect when it shouldn''t'
+);
+
+SELECT * FROM finish();
+ROLLBACK;
+
diff --git a/Open-ILS/src/sql/Pg/live_t/XXXX.fixed_field_enhancements.pg b/Open-ILS/src/sql/Pg/live_t/XXXX.fixed_field_enhancements.pg
deleted file mode 100644 (file)
index 683be42..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-\set ECHO
-\set QUIET 1
--- Turn off echo and keep things quiet.
-
--- Format the output for nice TAP.
-\pset format unaligned
-\pset tuples_only true
-\pset pager
-
--- Revert all changes on failure.
-\set ON_ERROR_ROLLBACK 1
-\set ON_ERROR_STOP true
-\set QUIET 1
-
--- let's do this thing
-BEGIN;
-
-SELECT plan(7);
-
--- The effect of this will be rolled back, so don't worry.
-DELETE FROM actor.org_unit_proximity_adjustment;
-
--- Tests in the directory where we are rely on stock and Concerto data being
--- loaded.
-INSERT INTO actor.org_unit_proximity_adjustment (
-    item_circ_lib, hold_pickup_lib, absolute_adjustment, prox_adjustment
-) VALUES (2, 2, true, 0);
-
-SELECT is(
-    (SELECT pickup_lib = 5 FROM action.hold_request WHERE id = 3),
-    TRUE,
-    'Data suitable for test: hold #3 has pickup_lib 5'
-);
-
-SELECT is(
-    (SELECT pickup_lib = 9 FROM action.hold_request WHERE id = 4),
-    TRUE,
-    'Data suitable for test: hold #4 has pickup_lib 9'
-);
-
-SELECT is(
-    (SELECT circ_lib = 4 FROM asset.copy WHERE id = 2884),
-    TRUE,
-    'Data suitable for test: copy #2884 has circ_lib 4'
-);
-
-SELECT is(
-    (SELECT aou.parent_ou = 2 AND aout.depth = 2
-        FROM actor.org_unit aou
-        JOIN actor.org_unit_type aout ON (aout.id = aou.ou_type)
-        WHERE aou.id = 5),
-    TRUE,
-    'Data suitable for test: ou #5 has parent_ou 2 and depth 2'
-);
-
-SELECT is(
-    (SELECT aou.parent_ou <> 2 AND aout.depth >= 2
-        FROM actor.org_unit aou
-        JOIN actor.org_unit_type aout ON (aout.id = aou.ou_type)
-        WHERE aou.id = 9),
-    TRUE,
-    'Data suitable for test: ou #9 doesn''t have parent_ou 2, does have depth at least 2'
-);
-        
-SELECT is(
-    action.hold_copy_calculated_proximity (3, 2884)::INT,
-    0,
-    'Org unit proximity adjustment takes effect when it should'
-);
-
-SELECT is(
-    action.hold_copy_calculated_proximity (4, 2884)::INT,
-    5,
-    '(regression test) Org unit proximity adjustment doesn''t take effect when it shouldn''t'
-);
-
-SELECT * FROM finish();
-ROLLBACK;
-
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.prox_adjust.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.prox_adjust.sql
deleted file mode 100644 (file)
index aeb03ea..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-BEGIN;
-
-CREATE OR REPLACE FUNCTION action.hold_copy_calculated_proximity(
-    ahr_id INT,
-    acp_id BIGINT,
-    copy_context_ou INT DEFAULT NULL
-    -- TODO maybe? hold_context_ou INT DEFAULT NULL.  This would optionally
-    -- support an "ahprox" measurement: adjust prox between copy circ lib and
-    -- hold request lib, but I'm unsure whether to use this theoretical
-    -- argument only in the baseline calculation or later in the other
-    -- queries in this function.
-) RETURNS NUMERIC AS $f$
-DECLARE
-    aoupa           actor.org_unit_proximity_adjustment%ROWTYPE;
-    ahr             action.hold_request%ROWTYPE;
-    acp             asset.copy%ROWTYPE;
-    acn             asset.call_number%ROWTYPE;
-    acl             asset.copy_location%ROWTYPE;
-    baseline_prox   NUMERIC;
-
-    icl_list        INT[];
-    iol_list        INT[];
-    isl_list        INT[];
-    hpl_list        INT[];
-    hrl_list        INT[];
-
-BEGIN
-
-    SELECT * INTO ahr FROM action.hold_request WHERE id = ahr_id;
-    SELECT * INTO acp FROM asset.copy WHERE id = acp_id;
-    SELECT * INTO acn FROM asset.call_number WHERE id = acp.call_number;
-    SELECT * INTO acl FROM asset.copy_location WHERE id = acp.location;
-
-    IF copy_context_ou IS NULL THEN
-        copy_context_ou := acp.circ_lib;
-    END IF;
-
-    -- First, gather the baseline proximity of "here" to pickup lib
-    SELECT prox INTO baseline_prox FROM actor.org_unit_proximity WHERE from_org = copy_context_ou AND to_org = ahr.pickup_lib;
-
-    -- Find any absolute adjustments, and set the baseline prox to that
-    SELECT  adj.* INTO aoupa
-      FROM  actor.org_unit_proximity_adjustment adj
-            LEFT JOIN actor.org_unit_ancestors_distance(copy_context_ou) acp_cl ON (acp_cl.id = adj.item_circ_lib)
-            LEFT JOIN actor.org_unit_ancestors_distance(acn.owning_lib) acn_ol ON (acn_ol.id = adj.item_owning_lib)
-            LEFT JOIN actor.org_unit_ancestors_distance(acl.owning_lib) acl_ol ON (acl_ol.id = adj.copy_location)
-            LEFT JOIN actor.org_unit_ancestors_distance(ahr.pickup_lib) ahr_pl ON (ahr_pl.id = adj.hold_pickup_lib)
-            LEFT JOIN actor.org_unit_ancestors_distance(ahr.request_lib) ahr_rl ON (ahr_rl.id = adj.hold_request_lib)
-      WHERE (adj.circ_mod IS NULL OR adj.circ_mod = acp.circ_modifier) AND
-            (adj.item_circ_lib IS NULL OR adj.item_circ_lib = acp_cl.id) AND
-            (adj.item_owning_lib IS NULL OR adj.item_owning_lib = acn_ol.id) AND
-            (adj.copy_location IS NULL OR adj.copy_location = acl_ol.id) AND
-            (adj.hold_pickup_lib IS NULL OR adj.hold_pickup_lib = ahr_pl.id) AND
-            (adj.hold_request_lib IS NULL OR adj.hold_request_lib = ahr_rl.id) AND
-            absolute_adjustment AND
-            COALESCE(acp_cl.id, acn_ol.id, acl_ol.id, ahr_pl.id, ahr_rl.id) IS NOT NULL
-      ORDER BY
-            COALESCE(acp_cl.distance,999)
-                + COALESCE(acn_ol.distance,999)
-                + COALESCE(acl_ol.distance,999)
-                + COALESCE(ahr_pl.distance,999)
-                + COALESCE(ahr_rl.distance,999),
-            adj.pos
-      LIMIT 1;
-
-    IF FOUND THEN
-        baseline_prox := aoupa.prox_adjustment;
-    END IF;
-
-    -- Now find any relative adjustments, and change the baseline prox based on them
-    FOR aoupa IN
-        SELECT  adj.* 
-          FROM  actor.org_unit_proximity_adjustment adj
-                LEFT JOIN actor.org_unit_ancestors_distance(copy_context_ou) acp_cl ON (acp_cl.id = adj.item_circ_lib)
-                LEFT JOIN actor.org_unit_ancestors_distance(acn.owning_lib) acn_ol ON (acn_ol.id = adj.item_owning_lib)
-                LEFT JOIN actor.org_unit_ancestors_distance(acl.owning_lib) acl_ol ON (acn_ol.id = adj.copy_location)
-                LEFT JOIN actor.org_unit_ancestors_distance(ahr.pickup_lib) ahr_pl ON (ahr_pl.id = adj.hold_pickup_lib)
-                LEFT JOIN actor.org_unit_ancestors_distance(ahr.request_lib) ahr_rl ON (ahr_rl.id = adj.hold_request_lib)
-          WHERE (adj.circ_mod IS NULL OR adj.circ_mod = acp.circ_modifier) AND
-                (adj.item_circ_lib IS NULL OR adj.item_circ_lib = acp_cl.id) AND
-                (adj.item_owning_lib IS NULL OR adj.item_owning_lib = acn_ol.id) AND
-                (adj.copy_location IS NULL OR adj.copy_location = acl_ol.id) AND
-                (adj.hold_pickup_lib IS NULL OR adj.hold_pickup_lib = ahr_pl.id) AND
-                (adj.hold_request_lib IS NULL OR adj.hold_request_lib = ahr_rl.id) AND
-                NOT absolute_adjustment AND
-                COALESCE(acp_cl.id, acn_ol.id, acl_ol.id, ahr_pl.id, ahr_rl.id) IS NOT NULL
-    LOOP
-        baseline_prox := baseline_prox + aoupa.prox_adjustment;
-    END LOOP;
-
-    RETURN baseline_prox;
-END;
-$f$ LANGUAGE PLPGSQL;
-
-COMMIT;