Title: --%throws annotation named package constant/variable not recognized · Issue #1223 · utPLSQL/utPLSQL · GitHub
Open Graph Title: --%throws annotation named package constant/variable not recognized · Issue #1223 · utPLSQL/utPLSQL
X Title: --%throws annotation named package constant/variable not recognized · Issue #1223 · utPLSQL/utPLSQL
Description: When a test is executed, the named constant is being searched in scope of current user (user executing the tests. This is not how it is expected to work. Example of the problem create or replace package user1.error_codes as some_error co...
Open Graph Description: When a test is executed, the named constant is being searched in scope of current user (user executing the tests. This is not how it is expected to work. Example of the problem create or replace pa...
X Description: When a test is executed, the named constant is being searched in scope of current user (user executing the tests. This is not how it is expected to work. Example of the problem create or replace pa...
Opengraph URL: https://github.com/utPLSQL/utPLSQL/issues/1223
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"--%throws annotation named package constant/variable not recognized","articleBody":"When a test is executed, the named constant is being searched in scope of current user (user executing the tests.\r\nThis is not how it is expected to work.\r\n\r\nExample of the problem\r\n```sql\r\ncreate or replace package user1.error_codes as\r\n some_error constant integer := -20001;\r\nend;\r\n/\r\n\r\ncreate or replace package user1.main_package as\r\n function the_proc (a number , b number ) return number;\r\nend;\r\n/\r\n\r\ncreate or replace package body user1.main_package as\r\n function the_proc(a number , b number ) return number is\r\n begin\r\n if b = 0 then\r\n raise_application_error(error_codes.some_error, 'Cannot use \"0\"');\r\n end if;\r\n return a/b;\r\n end;\r\nend;\r\n/\r\n\r\ncreate or replace package user1.ut_the_code as\r\n --%suite\r\n\r\n --%test\r\n --%throws(error_codes.some_error)\r\n procedure the_test;\r\n\r\nend;\r\n/\r\n\r\ncreate or replace package body user1.ut_the_code as\r\n procedure the_test is\r\n y number;\r\n begin\r\n y := main_package.the_proc (1,0);\r\n end;\r\nend;\r\n/\r\n\r\n```\r\n\r\nThe above test will succeed when called from schema user1.\r\n```\r\nut_the_code\r\n the_test [.019 sec]\r\n\r\nFinished in .027852 seconds\r\n1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)\r\n```\r\n\r\nIf called from user2, \r\n```\r\nut_the_code\r\n the_test [.007 sec] (FAILED - 1)\r\n\r\nFailures:\r\n\r\n 1) the_test\r\n ORA-20001: Cannot use \"0\"\r\n ORA-06512: at \"USER1.MAIN_PACKAGE\", line 5\r\n ORA-06512: at \"USER1.UT_THE_CODE\", line 5\r\n ORA-06512: at line 6\r\n\r\nWarnings:\r\n\r\n 1) ut_the_code.the_test\r\n Invalid parameter value \"error_codes.some_error\" for \"--%throws\" annotation. Parameter ignored.\r\n at package \"USER1.UT_THE_CODE.THE_TEST\", line 4\r\n\r\nFinished in .010336 seconds\r\n1 tests, 0 failed, 1 errored, 0 disabled, 1 warning(s)\r\n```\r\n\r\n\r\nThis is because the value of `--%throws` annotation is evaluated at runtime within the scope of the user running the code.\r\n\r\nA change is needed so that the value is evaluated in scope of the executed UT package schema.\r\n\r\nIdeally, we should also allow for below syntax to be valid:\r\n```sql\r\ncreate or replace package user1.ut_the_code as\r\n --%suite\r\n\r\n some_error constant integer := -20003;\r\n \r\n --%test\r\n --%throws(some_error)\r\n procedure the_test;\r\n\r\nend;\r\n/\r\n```","author":{"url":"https://github.com/jgebal","@type":"Person","name":"jgebal"},"datePublished":"2022-08-02T19:18:23.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/1223/utPLSQL/issues/1223"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:5f287a54-2ea8-d303-3119-abcd913b6610 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 830A:29BE58:5514A:742E2:6A63C7A3 |
| html-safe-nonce | aff13079a809ccd5024584af82f632da42491104a24bd1b3e5e982dde99a098a |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MzBBOjI5QkU1ODo1NTE0QTo3NDJFMjo2QTYzQzdBMyIsInZpc2l0b3JfaWQiOiI1ODc5NDg3NDI4ODU2ODkxMjk5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | b37ce1a4e5bcbe88be2b8c21c92dff82f096f6cc11e9f3f915ce698d533966d8 |
| hovercard-subject-tag | issue:1326296296 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/utPLSQL/utPLSQL/1223/issue_layout |
| twitter:image | https://opengraph.githubassets.com/1ad088d5e903231571dc6497bc8e955f3e3ef3ce4ee68be47824c3a7014f6460/utPLSQL/utPLSQL/issues/1223 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/1ad088d5e903231571dc6497bc8e955f3e3ef3ce4ee68be47824c3a7014f6460/utPLSQL/utPLSQL/issues/1223 |
| og:image:alt | When a test is executed, the named constant is being searched in scope of current user (user executing the tests. This is not how it is expected to work. Example of the problem create or replace pa... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jgebal |
| hostname | github.com |
| expected-hostname | github.com |
| None | 07534cdf5ad78a0d310a87611c7de72b4b771cce36b6f488741651bbdaa0f729 |
| turbo-cache-control | no-preview |
| go-import | github.com/utPLSQL/utPLSQL git https://github.com/utPLSQL/utPLSQL.git |
| octolytics-dimension-user_id | 15661281 |
| octolytics-dimension-user_login | utPLSQL |
| octolytics-dimension-repository_id | 50728220 |
| octolytics-dimension-repository_nwo | utPLSQL/utPLSQL |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 50728220 |
| octolytics-dimension-repository_network_root_nwo | utPLSQL/utPLSQL |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | cd48fefa7faf69c230bc5cbc68ed433306090e59 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width