MDL-85400 PHPunit: Hard to test code that uses encryption

This change stops the encryption code setting created key files to
read-only during PHPunit runs, which means they will be safely
deleted when the system resets after a test.
This commit is contained in:
sam marshall
2025-05-28 12:55:46 +08:00
committed by Simey Lameze
parent a52fbcced6
commit 82eecc9475
2 changed files with 2 additions and 19 deletions
+2 -2
View File
@@ -61,8 +61,8 @@ class encryption {
throw new \moodle_exception('encryption_keyalreadyexists', 'error');
}
// Don't make it read-only in Behat or it will fail to clear for future runs.
if (defined('BEHAT_SITE_RUNNING')) {
// Don't make it read-only in tests or it will fail to clear for future runs.
if (defined('BEHAT_SITE_RUNNING') || PHPUNIT_TEST) {
$chmod = false;
}
-17
View File
@@ -28,25 +28,8 @@ use advanced_testcase;
*/
final class encryption_test extends advanced_testcase {
/**
* Clear junk created by tests.
*/
protected function tearDown(): void {
global $CFG;
$keyfile = encryption::get_key_file(encryption::METHOD_SODIUM);
if (file_exists($keyfile)) {
chmod($keyfile, 0700);
}
remove_dir($CFG->dataroot . '/secret');
unset($CFG->nokeygeneration);
parent::tearDown();
}
protected function setUp(): void {
parent::setUp();
$this->tearDown();
require_once(__DIR__ . '/fixtures/testable_encryption.php');
}