Closed (fixed)
Project:
Drupal core
Version:
8.0.x-dev
Component:
entity system
Priority:
Normal
Category:
Bug report
Assigned:
Issue tags:
Reporter:
Created:
14 Jun 2012 at 09:44 UTC
Updated:
29 Jul 2014 at 20:47 UTC
Jump to comment: Most recent file
Comments
Comment #1
fagoComment #2
fagoComment #3
berdirRelated #1553244: Incorrect method calls in exception handling code in EntityDatabaseStorageController
Change looks good, having a test that triggers an exception would be useful I think, as described in the other issue.
Comment #4
fagoAgreed. Let's do that.
Comment #5
chia commentedLittle tests to see if exceptions are working okay, may be we can improve the messages,
Comment #6
fagoComment #7
fagoYou got some whitespaces.. ;)
Always start with an uppercase later and end with a dot. Also maybe move the comment before entity_create().
catch should be at a new line.
Comment #8
chia commentedAnother patch with better naming and fixed the above mentioned issues ;)
Comment #9
berdir#8: entity-storage-exception-testing-1634442.patch queued for re-testing.
Comment #10
berdir#8: entity-storage-exception-testing-1634442.patch queued for re-testing.
Comment #12
berdirRe-rolled, cleaned up the tests a bit and a tests-only patch to make sure that this works. I hope this doesn't blow up the bot due to another missing use there, see #1759026: Testing broken: Exception is never caught. It will certainly conflict with it since it adds a fix for this as well.
Comment #13
webchickI committed the referenced issue, so this will need a re-roll.
Comment #14
berdirRe-roll.
Comment #15
amateescu commentedUpdated the test to be a EntityUnitTest and cleaned up the patch a litte. I think this is good to go now.
Comment #16
catchThe test uses state but everything runs in one request.
Couldn't we set $entity->throw_exception to TRUE directly - would save the hook_node_presave() and the db hits/state dependency in the test.
Comment #17
amateescu commentedDiscussed in IRC and decided to drop the $entity->throw_exception stuff because the storage controller doesn't have a way to know about it, and just use $GLOBALS instead of the state system, which makes perfect sense.
Comment #18
berdirHm :)
We're in a DUBT test, so state() (or actually, it should use Drupal::state() within the hooks as well) uses the memory backend. Using it seems cleaner to me than $GLOBALS and is essentially the same. I've written other tests before that rely on state for DUBT tests, see for example \Drupal\system\Tests\DrupalKernel\ServiceDestructionTest.
Comment #19
alexpottI'm not fussed if we use globals or state... I like I prefer globals because it is one less dependency.
Committed ce7ff5c and pushed to 8.x. Thanks!
Comment #21
yesct commentedfollow-up #2015849: Some standards fixes in entity_test.module and EntityApiTest.php, motivated by "DatabaseStorageController can't catch exceptions"