liquid_feedback_core

annotate test.sql @ 528:3e28fd842354

Work on new issue admission system (replacing current approach of 1st quorum); Added support for geo-tagging and spatial indexing
author jbe
date Sun May 29 20:42:40 2016 +0200 (2016-05-29)
parents fae00a5c1c71
children 5855ff9e5c8f
rev   line source
jbe@0 1 -- NOTE: This file requires that sequence generators have not been used.
jbe@0 2 -- (All new rows need to start with id '1'.)
jbe@0 3
jbe@0 4 BEGIN;
jbe@0 5
jbe@333 6 -- set transaction isolation level to be able to call "check_everything"() function
jbe@333 7 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
jbe@333 8
jbe@184 9 INSERT INTO "member" ("activated", "last_activity", "active", "login", "name") VALUES
jbe@184 10 ('now', 'now', TRUE, 'user1', 'User #1'), -- id 1
jbe@184 11 ('now', 'now', TRUE, 'user2', 'User #2'), -- id 2
jbe@184 12 ('now', 'now', TRUE, 'user3', 'User #3'), -- id 3
jbe@184 13 ('now', 'now', TRUE, 'user4', 'User #4'), -- id 4
jbe@184 14 ('now', 'now', TRUE, 'user5', 'User #5'), -- id 5
jbe@184 15 ('now', 'now', TRUE, 'user6', 'User #6'), -- id 6
jbe@184 16 ('now', 'now', TRUE, 'user7', 'User #7'), -- id 7
jbe@184 17 ('now', 'now', TRUE, 'user8', 'User #8'), -- id 8
jbe@184 18 ('now', 'now', TRUE, 'user9', 'User #9'), -- id 9
jbe@184 19 ('now', 'now', TRUE, 'user10', 'User #10'), -- id 10
jbe@184 20 ('now', 'now', TRUE, 'user11', 'User #11'), -- id 11
jbe@184 21 ('now', 'now', TRUE, 'user12', 'User #12'), -- id 12
jbe@184 22 ('now', 'now', TRUE, 'user13', 'User #13'), -- id 13
jbe@184 23 ('now', 'now', TRUE, 'user14', 'User #14'), -- id 14
jbe@184 24 ('now', 'now', TRUE, 'user15', 'User #15'), -- id 15
jbe@184 25 ('now', 'now', TRUE, 'user16', 'User #16'), -- id 16
jbe@184 26 ('now', 'now', TRUE, 'user17', 'User #17'), -- id 17
jbe@184 27 ('now', 'now', TRUE, 'user18', 'User #18'), -- id 18
jbe@184 28 ('now', 'now', TRUE, 'user19', 'User #19'), -- id 19
jbe@184 29 ('now', 'now', TRUE, 'user20', 'User #20'), -- id 20
jbe@184 30 ('now', 'now', TRUE, 'user21', 'User #21'), -- id 21
jbe@184 31 ('now', 'now', TRUE, 'user22', 'User #22'), -- id 22
jbe@184 32 ('now', 'now', TRUE, 'user23', 'User #23'); -- id 23
jbe@0 33
poelzi@77 34 -- set password to "login"
poelzi@77 35 UPDATE "member" SET "password" = '$1$PcI6b1Bg$2SHjAZH2nMLFp0fxHis.Q0';
jbe@0 36
jbe@0 37 INSERT INTO "policy" (
jbe@155 38 "index",
jbe@155 39 "name",
jbe@447 40 "min_admission_time",
jbe@447 41 "max_admission_time",
jbe@155 42 "discussion_time",
jbe@155 43 "verification_time",
jbe@155 44 "voting_time",
jbe@458 45 "issue_quorum",
jbe@155 46 "initiative_quorum_num", "initiative_quorum_den",
jbe@167 47 "direct_majority_num", "direct_majority_den", "direct_majority_strict",
jbe@429 48 "no_reverse_beat_path", "no_multistage_majority"
jbe@155 49 ) VALUES (
jbe@155 50 1,
jbe@155 51 'Default policy',
jbe@447 52 '0', '1 hour', '1 hour', '1 hour', '1 hour',
jbe@458 53 3,
jbe@528 54 30, 100,
jbe@155 55 1, 2, TRUE,
jbe@429 56 TRUE, FALSE );
jbe@0 57
jbe@3 58 CREATE FUNCTION "time_warp"() RETURNS VOID
jbe@3 59 LANGUAGE 'plpgsql' VOLATILE AS $$
jbe@3 60 BEGIN
jbe@3 61 UPDATE "issue" SET
jbe@3 62 "created" = "created" - '1 hour 1 minute'::INTERVAL,
jbe@3 63 "accepted" = "accepted" - '1 hour 1 minute'::INTERVAL,
jbe@3 64 "half_frozen" = "half_frozen" - '1 hour 1 minute'::INTERVAL,
jbe@3 65 "fully_frozen" = "fully_frozen" - '1 hour 1 minute'::INTERVAL;
jbe@3 66 PERFORM "check_everything"();
jbe@3 67 RETURN;
jbe@3 68 END;
jbe@3 69 $$;
jbe@3 70
jbe@97 71 INSERT INTO "unit" ("name") VALUES ('Main');
jbe@97 72
jbe@528 73 INSERT INTO "admission_rule" ("unit_id", "name") VALUES (1, 'General admission rule');
jbe@528 74
jbe@528 75 INSERT INTO "admission_rule_condition" ("admission_rule_id", "unit_id", "holdoff_time")
jbe@528 76 VALUES (1, 1, '0 seconds');
jbe@528 77
jbe@97 78 INSERT INTO "privilege" ("unit_id", "member_id", "voting_right")
jbe@97 79 SELECT 1 AS "unit_id", "id" AS "member_id", TRUE AS "voting_right"
jbe@97 80 FROM "member";
jbe@97 81
jbe@97 82 INSERT INTO "area" ("unit_id", "name") VALUES
jbe@97 83 (1, 'Area #1'), -- id 1
jbe@97 84 (1, 'Area #2'), -- id 2
jbe@97 85 (1, 'Area #3'), -- id 3
jbe@97 86 (1, 'Area #4'); -- id 4
jbe@0 87
jbe@9 88 INSERT INTO "allowed_policy" ("area_id", "policy_id", "default_policy")
jbe@9 89 VALUES (1, 1, TRUE), (2, 1, TRUE), (3, 1, TRUE), (4, 1, TRUE);
jbe@9 90
jbe@0 91 -- global delegations
jbe@0 92 INSERT INTO "delegation"
jbe@97 93 ("truster_id", "scope", "unit_id", "trustee_id") VALUES
jbe@97 94 ( 1, 'unit', 1, 9),
jbe@97 95 ( 2, 'unit', 1, 11),
jbe@97 96 ( 3, 'unit', 1, 12),
jbe@97 97 ( 4, 'unit', 1, 13),
jbe@97 98 ( 5, 'unit', 1, 14),
jbe@97 99 ( 6, 'unit', 1, 7),
jbe@97 100 ( 7, 'unit', 1, 8),
jbe@97 101 ( 8, 'unit', 1, 6),
jbe@97 102 (10, 'unit', 1, 9),
jbe@97 103 (11, 'unit', 1, 9),
jbe@97 104 (12, 'unit', 1, 21),
jbe@97 105 (15, 'unit', 1, 10),
jbe@97 106 (16, 'unit', 1, 17),
jbe@97 107 (17, 'unit', 1, 19),
jbe@97 108 (18, 'unit', 1, 19),
jbe@97 109 (23, 'unit', 1, 22);
jbe@0 110
jbe@0 111 -- delegations for topics
jbe@0 112 INSERT INTO "delegation"
jbe@10 113 ("area_id", "truster_id", "scope", "trustee_id") VALUES
jbe@304 114 (1, 3, 'area', 17),
jbe@10 115 (2, 5, 'area', 10),
jbe@10 116 (2, 9, 'area', 10),
jbe@10 117 (3, 4, 'area', 14),
jbe@10 118 (3, 16, 'area', 20),
jbe@10 119 (3, 19, 'area', 20),
jbe@10 120 (4, 5, 'area', 13),
jbe@10 121 (4, 12, 'area', 22);
jbe@0 122
jbe@0 123 INSERT INTO "issue" ("area_id", "policy_id") VALUES
jbe@0 124 (3, 1); -- id 1
jbe@0 125
jbe@0 126 INSERT INTO "initiative" ("issue_id", "name") VALUES
jbe@0 127 (1, 'Initiative #1'), -- id 1
jbe@0 128 (1, 'Initiative #2'), -- id 2
jbe@0 129 (1, 'Initiative #3'), -- id 3
jbe@0 130 (1, 'Initiative #4'), -- id 4
jbe@0 131 (1, 'Initiative #5'), -- id 5
jbe@0 132 (1, 'Initiative #6'), -- id 6
jbe@0 133 (1, 'Initiative #7'); -- id 7
jbe@0 134
jbe@0 135 INSERT INTO "draft" ("initiative_id", "author_id", "content") VALUES
jbe@0 136 (1, 17, 'Lorem ipsum...'), -- id 1
jbe@0 137 (2, 20, 'Lorem ipsum...'), -- id 2
jbe@0 138 (3, 20, 'Lorem ipsum...'), -- id 3
jbe@0 139 (4, 20, 'Lorem ipsum...'), -- id 4
jbe@0 140 (5, 14, 'Lorem ipsum...'), -- id 5
jbe@0 141 (6, 11, 'Lorem ipsum...'), -- id 6
jbe@0 142 (7, 12, 'Lorem ipsum...'); -- id 7
jbe@0 143
jbe@0 144 INSERT INTO "initiator" ("initiative_id", "member_id") VALUES
jbe@0 145 (1, 17),
jbe@0 146 (1, 19),
jbe@0 147 (2, 20),
jbe@0 148 (3, 20),
jbe@0 149 (4, 20),
jbe@0 150 (5, 14),
jbe@0 151 (6, 11),
jbe@0 152 (7, 12);
jbe@0 153
jbe@0 154 INSERT INTO "supporter" ("member_id", "initiative_id", "draft_id") VALUES
jbe@0 155 ( 7, 4, 4),
jbe@0 156 ( 8, 2, 2),
jbe@0 157 (11, 6, 6),
jbe@0 158 (12, 7, 7),
jbe@0 159 (14, 1, 1),
jbe@0 160 (14, 2, 2),
jbe@0 161 (14, 3, 3),
jbe@0 162 (14, 4, 4),
jbe@0 163 (14, 5, 5),
jbe@0 164 (14, 6, 6),
jbe@0 165 (14, 7, 7),
jbe@0 166 (17, 1, 1),
jbe@0 167 (17, 3, 3),
jbe@0 168 (19, 1, 1),
jbe@0 169 (19, 2, 2),
jbe@0 170 (20, 1, 1),
jbe@0 171 (20, 2, 2),
jbe@0 172 (20, 3, 3),
jbe@0 173 (20, 4, 4),
jbe@0 174 (20, 5, 5);
jbe@0 175
jbe@159 176 INSERT INTO "suggestion" ("initiative_id", "author_id", "name", "content") VALUES
jbe@0 177 (1, 19, 'Suggestion #1', 'Lorem ipsum...'); -- id 1
jbe@0 178 INSERT INTO "opinion" ("member_id", "suggestion_id", "degree", "fulfilled") VALUES
jbe@0 179 (14, 1, 2, FALSE);
jbe@0 180 INSERT INTO "opinion" ("member_id", "suggestion_id", "degree", "fulfilled") VALUES
jbe@0 181 (19, 1, 2, FALSE);
jbe@0 182
jbe@134 183 INSERT INTO "issue" ("area_id", "policy_id") VALUES
jbe@134 184 (4, 1); -- id 2
jbe@134 185
jbe@134 186 INSERT INTO "initiative" ("issue_id", "name") VALUES
jbe@139 187 (2, 'Initiative A'), -- id 8
jbe@139 188 (2, 'Initiative B'), -- id 9
jbe@139 189 (2, 'Initiative C'), -- id 10
jbe@139 190 (2, 'Initiative D'); -- id 11
jbe@134 191
jbe@134 192 INSERT INTO "draft" ("initiative_id", "author_id", "content") VALUES
jbe@139 193 ( 8, 1, 'Lorem ipsum...'), -- id 8
jbe@139 194 ( 9, 2, 'Lorem ipsum...'), -- id 9
jbe@139 195 (10, 3, 'Lorem ipsum...'), -- id 10
jbe@139 196 (11, 4, 'Lorem ipsum...'); -- id 11
jbe@134 197
jbe@134 198 INSERT INTO "initiator" ("initiative_id", "member_id") VALUES
jbe@139 199 ( 8, 1),
jbe@139 200 ( 9, 2),
jbe@139 201 (10, 3),
jbe@139 202 (11, 4);
jbe@134 203
jbe@134 204 INSERT INTO "supporter" ("member_id", "initiative_id", "draft_id") VALUES
jbe@139 205 (1, 8, 8),
jbe@139 206 (1, 9, 9),
jbe@139 207 (1, 10, 10),
jbe@139 208 (1, 11, 11),
jbe@139 209 (2, 8, 8),
jbe@139 210 (2, 9, 9),
jbe@139 211 (2, 10, 10),
jbe@139 212 (2, 11, 11),
jbe@139 213 (3, 8, 8),
jbe@139 214 (3, 9, 9),
jbe@139 215 (3, 10, 10),
jbe@139 216 (3, 11, 11),
jbe@139 217 (4, 8, 8),
jbe@139 218 (4, 9, 9),
jbe@139 219 (4, 10, 10),
jbe@139 220 (4, 11, 11),
jbe@139 221 (5, 8, 8),
jbe@139 222 (5, 9, 9),
jbe@139 223 (5, 10, 10),
jbe@139 224 (5, 11, 11),
jbe@139 225 (6, 8, 8),
jbe@139 226 (6, 9, 9),
jbe@139 227 (6, 10, 10),
jbe@139 228 (6, 11, 11);
jbe@139 229
jbe@3 230 SELECT "time_warp"();
jbe@3 231 SELECT "time_warp"();
jbe@3 232 SELECT "time_warp"();
jbe@0 233
jbe@0 234 INSERT INTO "direct_voter" ("member_id", "issue_id") VALUES
jbe@0 235 ( 8, 1),
jbe@0 236 ( 9, 1),
jbe@0 237 (11, 1),
jbe@0 238 (12, 1),
jbe@0 239 (14, 1),
jbe@0 240 (19, 1),
jbe@0 241 (20, 1),
jbe@0 242 (21, 1);
jbe@0 243
jbe@0 244 INSERT INTO "vote" ("member_id", "issue_id", "initiative_id", "grade") VALUES
jbe@0 245 ( 8, 1, 1, 1),
jbe@0 246 ( 8, 1, 2, 1),
jbe@0 247 ( 8, 1, 3, 1),
jbe@0 248 ( 8, 1, 4, 1),
jbe@0 249 ( 8, 1, 5, 1),
jbe@0 250 ( 8, 1, 6, -1),
jbe@0 251 ( 8, 1, 7, -1),
jbe@0 252 ( 9, 1, 1, -2),
jbe@0 253 ( 9, 1, 2, -3),
jbe@0 254 ( 9, 1, 3, -2),
jbe@0 255 ( 9, 1, 4, -2),
jbe@0 256 ( 9, 1, 5, -2),
jbe@0 257 ( 9, 1, 6, -1),
jbe@0 258 (11, 1, 1, -1),
jbe@0 259 (11, 1, 2, -1),
jbe@0 260 (11, 1, 3, -1),
jbe@0 261 (11, 1, 4, -1),
jbe@0 262 (11, 1, 5, -1),
jbe@0 263 (11, 1, 6, 2),
jbe@0 264 (11, 1, 7, 1),
jbe@0 265 (12, 1, 1, -1),
jbe@0 266 (12, 1, 3, -1),
jbe@0 267 (12, 1, 4, -1),
jbe@0 268 (12, 1, 5, -1),
jbe@0 269 (12, 1, 6, -2),
jbe@0 270 (12, 1, 7, 1),
jbe@0 271 (14, 1, 1, 1),
jbe@0 272 (14, 1, 2, 3),
jbe@0 273 (14, 1, 3, 1),
jbe@0 274 (14, 1, 4, 2),
jbe@0 275 (14, 1, 5, 1),
jbe@0 276 (14, 1, 6, 1),
jbe@0 277 (14, 1, 7, 1),
jbe@0 278 (19, 1, 1, 3),
jbe@0 279 (19, 1, 2, 4),
jbe@0 280 (19, 1, 3, 2),
jbe@0 281 (19, 1, 4, 2),
jbe@0 282 (19, 1, 5, 2),
jbe@0 283 (19, 1, 7, 1),
jbe@0 284 (20, 1, 1, 1),
jbe@0 285 (20, 1, 2, 2),
jbe@0 286 (20, 1, 3, 1),
jbe@0 287 (20, 1, 4, 1),
jbe@0 288 (20, 1, 5, 1),
jbe@0 289 (21, 1, 5, -1);
jbe@0 290
jbe@134 291 INSERT INTO "direct_voter" ("member_id", "issue_id") VALUES
jbe@134 292 ( 1, 2),
jbe@134 293 ( 2, 2),
jbe@134 294 ( 3, 2),
jbe@134 295 ( 4, 2),
jbe@134 296 ( 5, 2),
jbe@134 297 ( 6, 2),
jbe@134 298 ( 7, 2),
jbe@134 299 ( 8, 2),
jbe@134 300 ( 9, 2),
jbe@134 301 (10, 2),
jbe@134 302 (11, 2),
jbe@134 303 (12, 2),
jbe@134 304 (13, 2),
jbe@134 305 (14, 2),
jbe@134 306 (15, 2),
jbe@134 307 (16, 2),
jbe@134 308 (17, 2),
jbe@134 309 (18, 2),
jbe@134 310 (19, 2),
jbe@134 311 (20, 2);
jbe@134 312
jbe@134 313 INSERT INTO "vote" ("member_id", "issue_id", "initiative_id", "grade") VALUES
jbe@139 314 ( 1, 2, 8, 3),
jbe@139 315 ( 1, 2, 9, 4),
jbe@139 316 ( 1, 2, 10, 2),
jbe@139 317 ( 1, 2, 11, 1),
jbe@139 318 ( 2, 2, 8, 3),
jbe@139 319 ( 2, 2, 9, 4),
jbe@139 320 ( 2, 2, 10, 2),
jbe@139 321 ( 2, 2, 11, 1),
jbe@139 322 ( 3, 2, 8, 4),
jbe@139 323 ( 3, 2, 9, 3),
jbe@139 324 ( 3, 2, 10, 2),
jbe@139 325 ( 3, 2, 11, 1),
jbe@139 326 ( 4, 2, 8, 4),
jbe@139 327 ( 4, 2, 9, 3),
jbe@139 328 ( 4, 2, 10, 2),
jbe@139 329 ( 4, 2, 11, 1),
jbe@139 330 ( 5, 2, 8, 4),
jbe@139 331 ( 5, 2, 9, 3),
jbe@139 332 ( 5, 2, 10, 2),
jbe@139 333 ( 5, 2, 11, 1),
jbe@139 334 ( 6, 2, 8, 4),
jbe@139 335 ( 6, 2, 9, 3),
jbe@139 336 ( 6, 2, 10, 2),
jbe@139 337 ( 6, 2, 11, 1),
jbe@139 338 ( 7, 2, 8, 4),
jbe@139 339 ( 7, 2, 9, 3),
jbe@139 340 ( 7, 2, 10, 2),
jbe@139 341 ( 7, 2, 11, 1),
jbe@139 342 ( 8, 2, 8, 4),
jbe@139 343 ( 8, 2, 9, 3),
jbe@139 344 ( 8, 2, 10, 2),
jbe@139 345 ( 8, 2, 11, 1),
jbe@139 346 ( 9, 2, 8, -1),
jbe@139 347 ( 9, 2, 9, 1),
jbe@139 348 ( 9, 2, 10, 3),
jbe@139 349 ( 9, 2, 11, 2),
jbe@139 350 (10, 2, 8, -1),
jbe@139 351 (10, 2, 9, 1),
jbe@139 352 (10, 2, 10, 3),
jbe@139 353 (10, 2, 11, 2),
jbe@139 354 (11, 2, 8, -1),
jbe@139 355 (11, 2, 9, 1),
jbe@139 356 (11, 2, 10, 3),
jbe@139 357 (11, 2, 11, 2),
jbe@139 358 (12, 2, 8, -1),
jbe@139 359 (12, 2, 9, 1),
jbe@139 360 (12, 2, 10, 3),
jbe@139 361 (12, 2, 11, 2),
jbe@139 362 (13, 2, 8, -1),
jbe@139 363 (13, 2, 9, 1),
jbe@139 364 (13, 2, 10, 3),
jbe@139 365 (13, 2, 11, 2),
jbe@139 366 (14, 2, 8, -1),
jbe@139 367 (14, 2, 9, 1),
jbe@139 368 (14, 2, 10, 3),
jbe@139 369 (14, 2, 11, 2),
jbe@139 370 (15, 2, 8, -1),
jbe@139 371 (15, 2, 9, -3),
jbe@139 372 (15, 2, 10, -4),
jbe@139 373 (15, 2, 11, -2),
jbe@139 374 (16, 2, 8, -1),
jbe@139 375 (16, 2, 9, -3),
jbe@139 376 (16, 2, 10, -4),
jbe@139 377 (16, 2, 11, -2),
jbe@139 378 (17, 2, 8, -1),
jbe@139 379 (17, 2, 9, -3),
jbe@139 380 (17, 2, 10, -4),
jbe@139 381 (17, 2, 11, -2),
jbe@139 382 (18, 2, 8, -1),
jbe@139 383 (18, 2, 9, 1),
jbe@139 384 (18, 2, 10, -2),
jbe@139 385 (18, 2, 11, 2),
jbe@139 386 (19, 2, 8, -1),
jbe@139 387 (19, 2, 9, 1),
jbe@139 388 (19, 2, 10, -2),
jbe@139 389 (19, 2, 11, 2),
jbe@139 390 (20, 2, 8, 1),
jbe@139 391 (20, 2, 9, 2),
jbe@139 392 (20, 2, 10, -1),
jbe@139 393 (20, 2, 11, 3);
jbe@134 394
jbe@3 395 SELECT "time_warp"();
jbe@3 396
jbe@3 397 DROP FUNCTION "time_warp"();
jbe@0 398
poelzi@78 399 -- Test policies that help with testing specific frontend parts
poelzi@78 400
poelzi@78 401 INSERT INTO "policy" (
poelzi@78 402 "index",
poelzi@78 403 "active",
poelzi@78 404 "name",
poelzi@78 405 "description",
jbe@447 406 "min_admission_time",
jbe@447 407 "max_admission_time",
poelzi@78 408 "discussion_time",
poelzi@78 409 "verification_time",
poelzi@78 410 "voting_time",
jbe@458 411 "issue_quorum",
poelzi@78 412 "initiative_quorum_num",
poelzi@78 413 "initiative_quorum_den"
poelzi@78 414 ) VALUES (
poelzi@78 415 1,
poelzi@78 416 TRUE,
poelzi@78 417 'Test New',
poelzi@78 418 DEFAULT,
jbe@447 419 '0',
poelzi@78 420 '2 days',
poelzi@78 421 '1 second',
poelzi@78 422 '1 second',
poelzi@78 423 '1 second',
jbe@458 424 1,
poelzi@82 425 0, 100
poelzi@78 426 ), (
poelzi@78 427 1,
poelzi@78 428 TRUE,
poelzi@78 429 'Test Accept',
poelzi@78 430 DEFAULT,
jbe@447 431 '0',
poelzi@78 432 '1 second',
poelzi@78 433 '2 days',
poelzi@78 434 '1 second',
poelzi@78 435 '1 second',
jbe@458 436 1,
poelzi@82 437 0, 100
poelzi@78 438 ), (
poelzi@78 439 1,
poelzi@78 440 TRUE,
poelzi@78 441 'Test Frozen',
poelzi@78 442 DEFAULT,
jbe@447 443 '0',
poelzi@78 444 '1 second',
poelzi@78 445 '5 minutes',
poelzi@78 446 '2 days',
poelzi@78 447 '1 second',
jbe@458 448 1,
poelzi@82 449 0, 100
poelzi@78 450 ), (
poelzi@78 451 1,
poelzi@78 452 TRUE,
poelzi@78 453 'Test Voting',
poelzi@78 454 DEFAULT,
jbe@447 455 '0',
poelzi@78 456 '1 second',
poelzi@78 457 '5 minutes',
poelzi@78 458 '1 second',
poelzi@78 459 '2 days',
jbe@458 460 1,
poelzi@82 461 0, 100
poelzi@78 462 );
jbe@334 463
jbe@0 464 END;
jbe@0 465

Impressum / About Us