From 430c63b39ee8e71787f277f7dc3fc24699492def Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Mon, 25 Mar 2024 14:23:21 +0800 Subject: [PATCH] MDL-80300 mod_quiz: Integration coding fixups --- mod/quiz/classes/form/edit_override_form.php | 2 +- mod/quiz/classes/local/override_cache.php | 5 ++--- mod/quiz/classes/local/override_manager.php | 5 ++--- mod/quiz/db/caches.php | 2 +- mod/quiz/deprecatedlib.php | 9 +++++--- .../tests/{ => local}/override_cache_test.php | 10 ++------- .../{ => local}/override_manager_test.php | 21 ++++++++++++------- 7 files changed, 27 insertions(+), 27 deletions(-) rename mod/quiz/tests/{ => local}/override_cache_test.php (91%) rename mod/quiz/tests/{ => local}/override_manager_test.php (99%) diff --git a/mod/quiz/classes/form/edit_override_form.php b/mod/quiz/classes/form/edit_override_form.php index d15d71cc54c..4f5c7c67860 100644 --- a/mod/quiz/classes/form/edit_override_form.php +++ b/mod/quiz/classes/form/edit_override_form.php @@ -57,7 +57,7 @@ class edit_override_form extends moodleform { protected $userid; /** @var int overrideid, if provided. */ - protected $overrideid; + protected int $overrideid; /** * Constructor. diff --git a/mod/quiz/classes/local/override_cache.php b/mod/quiz/classes/local/override_cache.php index e1d5452412f..af1e3850c4e 100644 --- a/mod/quiz/classes/local/override_cache.php +++ b/mod/quiz/classes/local/override_cache.php @@ -25,8 +25,7 @@ namespace mod_quiz\local; * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class override_cache { - - /** @var string invalidation event used to purge data when reset_userdata is called, {@see \cache_helper::purge_by_event()}**/ + /** @var string invalidation event used to purge data when reset_userdata is called, {@see \cache_helper::purge_by_event()} **/ public const INVALIDATION_USERDATARESET = 'userdatareset'; /** @@ -43,7 +42,7 @@ class override_cache { /** * Returns the override cache * - * @return cache + * @return \cache */ protected function get_cache(): \cache { return \cache::make('mod_quiz', 'overrides'); diff --git a/mod/quiz/classes/local/override_manager.php b/mod/quiz/classes/local/override_manager.php index f5b6aaa157c..a79c739b1a5 100644 --- a/mod/quiz/classes/local/override_manager.php +++ b/mod/quiz/classes/local/override_manager.php @@ -31,7 +31,6 @@ use mod_quiz\event\user_override_updated; * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class override_manager { - /** @var array quiz setting keys that can be overwritten **/ private const OVERRIDEABLE_QUIZ_SETTINGS = ['timeopen', 'timeclose', 'timelimit', 'attempts', 'password']; @@ -87,9 +86,9 @@ class override_manager { $errors = []; // Ensure at least one of the overrideable settings is set. - $keysthatareset = array_map(function($key) use ($formdata) { + $keysthatareset = array_map(function ($key) use ($formdata) { return isset($formdata->$key) && !is_null($formdata->$key); - } , self::OVERRIDEABLE_QUIZ_SETTINGS); + }, self::OVERRIDEABLE_QUIZ_SETTINGS); if (!in_array(true, $keysthatareset)) { $errors['general'][] = new \lang_string('nooverridedata', 'quiz'); diff --git a/mod/quiz/db/caches.php b/mod/quiz/db/caches.php index 74964ca8f17..e4d49b9c544 100644 --- a/mod/quiz/db/caches.php +++ b/mod/quiz/db/caches.php @@ -32,7 +32,7 @@ $definitions = [ 'simplekeys' => true, 'datasource' => '\mod_quiz\cache\overrides', 'invalidationevents' => [ - \mod_quiz\local\override_cache::INVALIDATION_USERDATARESET, + \mod_quiz\local\override_cache::INVALIDATION_USERDATARESET, ], ], ]; diff --git a/mod/quiz/deprecatedlib.php b/mod/quiz/deprecatedlib.php index 2e1f624256c..97de982885f 100644 --- a/mod/quiz/deprecatedlib.php +++ b/mod/quiz/deprecatedlib.php @@ -322,13 +322,16 @@ function quiz_calculate_best_attempt($quiz, $attempts) { * @param bool $log Whether to trigger logs. * @return bool true on success */ +#[\core\attribute\deprecated('override_manager::delete_override_by_id', since: '4.4')] function quiz_delete_override($quiz, $overrideid, $log = true) { - debugging('quiz_delete_override is deprecated. Please use override_manager::delete_override_by_id instead.', DEBUG_DEVELOPER); + \core\deprecation::emit_deprecation_if_present(__FUNCTION__); $quizsettings = quiz_settings::create($quiz->id); $quizsettings->get_override_manager()->delete_overrides_by_id( ids: [$overrideid], shouldlog: $log, ); + + return true; } /** @@ -339,9 +342,9 @@ function quiz_delete_override($quiz, $overrideid, $log = true) { * @param stdClass $quiz The quiz object. * @param bool $log Whether to trigger logs. */ +#[\core\attribute\deprecated('override_manager::delete_all_overrides', since: '4.4')] function quiz_delete_all_overrides($quiz, $log = true) { - debugging('quiz_delete_all_overrides is deprecated. Please use override_manager::delete_all_overrides instead.', - DEBUG_DEVELOPER); + \core\deprecation::emit_deprecation_if_present(__FUNCTION__); $quizsettings = quiz_settings::create($quiz->id); $quizsettings->get_override_manager()->delete_all_overrides(shouldlog: $log); } diff --git a/mod/quiz/tests/override_cache_test.php b/mod/quiz/tests/local/override_cache_test.php similarity index 91% rename from mod/quiz/tests/override_cache_test.php rename to mod/quiz/tests/local/override_cache_test.php index 57882b487a8..d77f77319c8 100644 --- a/mod/quiz/tests/override_cache_test.php +++ b/mod/quiz/tests/local/override_cache_test.php @@ -14,9 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -namespace mod_quiz; - -use mod_quiz\local\override_cache; +namespace mod_quiz\local; /** * Cache manager tests for quiz overrides @@ -27,7 +25,6 @@ use mod_quiz\local\override_cache; * @covers \mod_quiz\local\override_cache */ final class override_cache_test extends \advanced_testcase { - /** * Tests CRUD functions of the override_cache */ @@ -37,14 +34,11 @@ final class override_cache_test extends \advanced_testcase { $reflection = new \ReflectionClass($overridecache); $getcache = $reflection->getMethod('get_cache'); - $getcache->setAccessible(true); $cache = $getcache->invoke($overridecache); $getuserkey = $reflection->getMethod('get_user_cache_key'); - $getuserkey->setAccessible(true); $getgroupkey = $reflection->getMethod('get_group_cache_key'); - $getgroupkey->setAccessible(true); $dummydata = (object)[ 'userid' => 1234, @@ -79,7 +73,7 @@ final class override_cache_test extends \advanced_testcase { $cache->set($getgroupkey->invoke($overridecache, 456), 'testgroup'); // Purge it. - \cache_helper::purge_by_event(\mod_quiz\local\override_cache::INVALIDATION_USERDATARESET); + \cache_helper::purge_by_event(override_cache::INVALIDATION_USERDATARESET); $this->assertEmpty($overridecache->get_cached_user_override(123)); $this->assertEmpty($overridecache->get_cached_group_override(456)); } diff --git a/mod/quiz/tests/override_manager_test.php b/mod/quiz/tests/local/override_manager_test.php similarity index 99% rename from mod/quiz/tests/override_manager_test.php rename to mod/quiz/tests/local/override_manager_test.php index 8d53ecdbebe..caa7e4e949b 100644 --- a/mod/quiz/tests/override_manager_test.php +++ b/mod/quiz/tests/local/override_manager_test.php @@ -14,15 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -namespace mod_quiz; +namespace mod_quiz\local; use mod_quiz\event\group_override_created; use mod_quiz\event\group_override_updated; use mod_quiz\event\user_override_created; use mod_quiz\event\user_override_updated; -use mod_quiz\local\override_manager; use mod_quiz\event\user_override_deleted; -use mod_quiz\local\override_cache; +use mod_quiz\quiz_settings; /** * Test for override_manager class @@ -33,7 +32,6 @@ use mod_quiz\local\override_cache; * @covers \mod_quiz\local\override_manager */ final class override_manager_test extends \advanced_testcase { - /** @var array Default quiz settings **/ private const TEST_QUIZ_SETTINGS = [ 'attempts' => 5, @@ -305,8 +303,12 @@ final class override_manager_test extends \advanced_testcase { * @param string $expectedeventclass an event class, which is expected to the emitted by upsert * @dataProvider save_and_get_override_provider */ - public function test_save_and_get_override(array $existingdata, array $formdata, int $expectedrecordscreated, - string $expectedeventclass): void { + public function test_save_and_get_override( + array $existingdata, + array $formdata, + int $expectedrecordscreated, + string $expectedeventclass + ): void { global $DB; $this->setAdminUser(); @@ -966,8 +968,11 @@ final class override_manager_test extends \advanced_testcase { * @param \Closure $functionbeingtested is passed the manager and calls the function being tested (usually require_*_capability) * @dataProvider require_read_capability_provider */ - public function test_require_read_capability(array $capabilitiestogive, bool $expectedallowed, - \Closure $functionbeingtested): void { + public function test_require_read_capability( + array $capabilitiestogive, + bool $expectedallowed, + \Closure $functionbeingtested + ): void { $this->resetAfterTest(); [$quizobj] = $this->create_quiz_and_course(); $user = $this->getDataGenerator()->create_user();