diff options
Diffstat (limited to 'ngx_postgres-1.0/t/errors.t')
-rw-r--r-- | ngx_postgres-1.0/t/errors.t | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/ngx_postgres-1.0/t/errors.t b/ngx_postgres-1.0/t/errors.t new file mode 100644 index 0000000..a502203 --- /dev/null +++ b/ngx_postgres-1.0/t/errors.t @@ -0,0 +1,141 @@ +# vi:filetype=perl + +use lib 'lib'; +use Test::Nginx::Socket; + +repeat_each(2); + +plan tests => repeat_each() * blocks(); + +$ENV{TEST_NGINX_POSTGRESQL_HOST} ||= '127.0.0.1'; +$ENV{TEST_NGINX_POSTGRESQL_PORT} ||= 5432; + +our $http_config = <<'_EOC_'; + upstream database { + postgres_server $TEST_NGINX_POSTGRESQL_HOST:$TEST_NGINX_POSTGRESQL_PORT + dbname=ngx_test user=ngx_test password=ngx_test; + } +_EOC_ + +run_tests(); + +__DATA__ + +=== TEST 1: bad query +--- http_config eval: $::http_config +--- config + location /postgres { + postgres_pass database; + postgres_query "i'm bad"; + } +--- request +GET /postgres +--- error_code: 500 +--- timeout: 10 + + + +=== TEST 2: wrong credentials +--- http_config + upstream database { + postgres_server $TEST_NGINX_POSTGRESQL_HOST:$TEST_NGINX_POSTGRESQL_PORT + dbname=ngx_test user=ngx_test password=wrong_pass; + } +--- config + location /postgres { + postgres_pass database; + postgres_query "update cats set name='bob' where name='bob'"; + } +--- request +GET /postgres +--- error_code: 502 +--- timeout: 10 + + + +=== TEST 3: no database +--- http_config + upstream database { + postgres_server $TEST_NGINX_POSTGRESQL_HOST:1 dbname=ngx_test + user=ngx_test password=ngx_test; + } +--- config + location /postgres { + postgres_pass database; + postgres_query "update cats set name='bob' where name='bob'"; + } +--- request +GET /postgres +--- error_code: 502 +--- timeout: 10 + + + +=== TEST 4: multiple queries +--- http_config eval: $::http_config +--- config + location /postgres { + postgres_pass database; + postgres_query "select * from cats; select * from cats"; + } +--- request +GET /postgres +--- error_code: 500 +--- timeout: 10 + + + +=== TEST 5: missing query +--- http_config eval: $::http_config +--- config + location /postgres { + postgres_pass database; + } +--- request +GET /postgres +--- error_code: 500 +--- timeout: 10 + + + +=== TEST 6: empty query +--- http_config eval: $::http_config +--- config + location /postgres { + set $query ""; + postgres_pass database; + postgres_query $query; + } +--- request +GET /postgres +--- error_code: 500 +--- timeout: 10 + + + +=== TEST 7: empty pass +--- http_config eval: $::http_config +--- config + location /postgres { + set $database ""; + postgres_pass $database; + postgres_query "update cats set name='bob' where name='bob'"; + } +--- request +GET /postgres +--- error_code: 500 +--- timeout: 10 + + + +=== TEST 8: non-existing table +--- http_config eval: $::http_config +--- config + location /postgres { + postgres_pass database; + postgres_query "update table_that_doesnt_exist set name='bob'"; + } +--- request +GET /postgres +--- error_code: 500 +--- timeout: 10 |