Bug 30345: Make Koha::BackgroundJob->enqueue set borrowernumber=undef if no userenv
authorTomas Cohen Arazi <tomascohen@theke.io>
Wed, 23 Mar 2022 18:47:38 +0000 (15:47 -0300)
committerFridolin Somers <fridolin.somers@biblibre.com>
Mon, 4 Apr 2022 14:23:47 +0000 (16:23 +0200)
This patch makes ->enqueue set undef if no userenv is provided. The CLI
scripts will usually use Koha::Script and have this set to undef as
well, but on the tests, there's usually no userenv set unless we need to
test it. And as we are adding triggers everywhere, that will schedule
background jobs, it means we would end up mocking userenv or the
->enqueue method everywhere and it will get messy.

This patch just make it set undef.

To test:
1. Apply the regression tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/BackgroundJob.t
=> FAIL: Wow, it explodes badly. Same as any test that happens to
trigger a background job enqueuing.
3. Apply this patch
4. Repeat 2
=> SUCCESS: Great, tests pass!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Koha/BackgroundJob.pm

index b8c0109..b22da6d 100644 (file)
@@ -98,7 +98,7 @@ sub enqueue {
     my $job_size = $params->{job_size};
     my $job_args = $params->{job_args};
 
-    my $borrowernumber = C4::Context->userenv->{number}; # FIXME Handle non GUI calls
+    my $borrowernumber = (C4::Context->userenv) ? C4::Context->userenv->{number} : undef;
     my $json_args = encode_json $job_args;
 
     $self->set(