Bug 18725: (QA follow-up) Use make_column_dirty instead of status change
Moving the status to the invalid 'processing' might well have unwanted
side-effects. (The status column will be set to empty string and we have
a problem if it is not processed.)
This patch allows pass-through of DBIX's make_column_dirty in
Koha::Object (simple tests included) and uses it to force an update.
If the update does not return true, it still exits.
Test plan:
[1] Read the changes.
[2] Run t/db_dependent/Koha/Object.t
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Conflicts:
Koha/Object.pm
(cherry picked from commit 40e865ba16)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
b4ad507047
commit
26d56adbe9
|
|
@ -1035,9 +1035,9 @@ sub SendQueuedMessages {
|
|||
my $unsent_messages = _get_unsent_messages();
|
||||
MESSAGE: foreach my $message ( @$unsent_messages ) {
|
||||
my $message_object = Koha::Notice::Messages->find( $message->{message_id} );
|
||||
$message_object->status('processing');
|
||||
# If this fails the database is unwritable and we won't manage to send a message that continues to be marked 'pending'
|
||||
return unless $message_object->store();
|
||||
$message_object->make_column_dirty('status');
|
||||
return unless $message_object->store;
|
||||
|
||||
# warn Data::Dumper->Dump( [ $message ], [ 'message' ] );
|
||||
warn sprintf( 'sending %s message to patron: %s',
|
||||
|
|
|
|||
|
|
@ -301,7 +301,8 @@ sub AUTOLOAD {
|
|||
}
|
||||
}
|
||||
|
||||
my @known_methods = qw( is_changed id in_storage get_column discard_changes update );
|
||||
my @known_methods = qw( is_changed id in_storage get_column discard_changes update make_column_dirty );
|
||||
|
||||
Koha::Exceptions::Object::MethodNotCoveredByTests->throw( "The method $method is not covered by tests!" ) unless grep {/^$method$/} @known_methods;
|
||||
|
||||
my $r = eval { $self->_result->$method(@_) };
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ BEGIN {
|
|||
my $schema = Koha::Database->new->schema;
|
||||
my $builder = t::lib::TestBuilder->new();
|
||||
|
||||
subtest 'is_changed' => sub {
|
||||
plan tests => 6;
|
||||
subtest 'is_changed / make_column_dirty' => sub {
|
||||
plan tests => 9;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
|
|
@ -65,6 +65,15 @@ subtest 'is_changed' => sub {
|
|||
$object->store();
|
||||
is( $object->is_changed(), 0, "Object no longer marked as changed after being stored" );
|
||||
|
||||
# Test make_column_dirty
|
||||
$object->make_column_dirty('firstname');
|
||||
is( $object->is_changed, 1, "Object is changed after make dirty" );
|
||||
$object->store;
|
||||
is( $object->is_changed, 0, "Store clears dirty mark" );
|
||||
$object->make_column_dirty('firstname');
|
||||
$object->discard_changes;
|
||||
is( $object->is_changed, 0, "Discard clears dirty mark too" );
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue