seek4science / seek

For finding, sharing and exchanging Data, Models, Simulations and Processes in Science.
http://www.seek4science.org
BSD 3-Clause "New" or "Revised" License
76 stars 52 forks source link

Random `sharing_scope`-related test failure #1182

Open fbacall opened 2 years ago

fbacall commented 2 years ago

I've seen this test fail a few times in the past, would be good to work out what is causing it.

https://github.com/seek4science/seek/actions/runs/3106803528/jobs/5034135515

--seed 41671
AuthLookupTableTest#test_deletes_records_when_assets_removed:
NoMethodError: undefined method `sharing_scope' for nil:NilClass
    lib/seek/permissions/authorization.rb:42:in `authorized_by_policy?'
    lib/seek/permissions/authorization.rb:20:in `is_authorized?'
    lib/seek/permissions/policy_based_authorization.rb:311:in `authorized_for_action'
    lib/seek/permissions/policy_based_authorization.rb:58:in `block (2 levels) in <module:PolicyBasedAuthorization>'
    lib/seek/permissions/policy_based_authorization.rb:46:in `block (2 levels) in <module:PolicyBasedAuthorization>'
    app/models/sop.rb:54:in `can_delete?'
    lib/seek/permissions/authorization_enforcement.rb:74:in `destroy_authorized?'
    test/unit/permissions/auth_lookup_table_test.rb:191:in `block in <class:AuthLookupTableTest>'
fbacall commented 1 year ago

https://github.com/seek4science/seek/actions/runs/4204796804/jobs/7295966496#step:16:22

fbacall commented 8 months ago

Still happening:

# Running tests with run options --seed 2304:

.....S..............................................................................................E
Error:
AuthLookupJobTest#test_user_auth_lookup_job_perform:
NoMethodError: undefined method `sharing_scope' for nil:NilClass

        if thing.policy.sharing_scope == Policy::ALL_USERS
                       ^^^^^^^^^^^^^^
    lib/seek/permissions/authorization.rb:42:in `authorized_by_policy?'
    lib/seek/permissions/authorization.rb:20:in `is_authorized?'
    lib/seek/permissions/policy_based_authorization.rb:307:in `authorized_for_action'
    lib/seek/permissions/policy_based_authorization.rb:196:in `block in update_lookup_table'
    lib/seek/permissions/policy_based_authorization.rb:196:in `each'
    lib/seek/permissions/policy_based_authorization.rb:196:in `update_lookup_table'
    app/jobs/user_auth_lookup_update_job.rb:8:in `block in perform'
    app/jobs/user_auth_lookup_update_job.rb:7:in `perform'
    test/unit/jobs/auth_lookup_job_test.rb:105:in `block (2 levels) in <class:AuthLookupJobTest>'
    test/test_helper.rb:76:in `with_config_value'
    test/unit/jobs/auth_lookup_job_test.rb:94:in `block in <class:AuthLookupJobTest>

https://github.com/seek4science/seek/actions/runs/7464205971/job/20310654586