From 4fbbc994f364556a184b0669dd4953f11df1bdf6 Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Sat, 8 Jul 2023 15:46:27 +0200 Subject: [PATCH] tests: Tentative de correction de CacheSessionTest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Il faut nettoyer le cache sinon ça ne retourne pas des résultats cohérents d’un coup à l’autre sur le `testVerifierCaptureMajInvalideurs` data #1 (1 ou 2 erreurs retournées = calcule 1 ou 2 caches selon). On essaie de faire de s’assurer que le cache est vide au départ. Cependant il y a parfois un autre problème, c’est que dans certains cas (?) le dossier_squelettes spécifique n’est pas appliqué. Ce n’est pas systématique, et a priori jamais si on lance uniquement ce fichier de test. --- tests/Squelettes/Cache/CacheSessionTest.php | 22 +++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/Squelettes/Cache/CacheSessionTest.php b/tests/Squelettes/Cache/CacheSessionTest.php index 0abd64b95..ab583deb3 100644 --- a/tests/Squelettes/Cache/CacheSessionTest.php +++ b/tests/Squelettes/Cache/CacheSessionTest.php @@ -11,17 +11,35 @@ use Spip\Test\SquelettesTestCase; class CacheSessionTest extends SquelettesTestCase { private static array $errors = []; + private static string $squelettes; public static function setUpBeforeClass(): void { - $GLOBALS['dossier_squelettes'] = self::relativePath(__DIR__ . '/data/squelettes'); + self::$squelettes = self::relativePath(__DIR__ . '/data/squelettes'); + $GLOBALS['dossier_squelettes'] = self::$squelettes; $GLOBALS['delais'] = 3600; // See boostrap.php qui met delais = 0 (inhibe le cache) + include_spip('inc/invalideur'); + purger_repertoire(_DIR_CACHE . 'calcul/', ['subdir' => true]); + } + + public static function tearDownAfterClass(): void { + $GLOBALS['dossier_squelettes'] = ''; + $GLOBALS['delais'] = 0; } protected function setUp(): void { $this->resetErrors(); } + public function testVerifierPathMajInvalideurs(): void { + $this->assertEquals(self::$squelettes, $GLOBALS['dossier_squelettes'] ?? null); + $this->assertTrue(file_exists(__DIR__ . '/data/squelettes/inc/maj_invalideurs.php')); + $this->assertNotFalse(find_in_path('inc/maj_invalideurs.php')); + $this->assertNotFalse(include_spip('inc/maj_invalideurs')); + $this->assertEquals('inc_maj_invalideurs', charger_fonction('maj_invalideurs', 'inc', true)); + } + /** Vérifier qu’on sait attraper les données de cache */ + #[Depends('testVerifierPathMajInvalideurs')] #[DataProvider('providerVerifierCaptureMajInvalideurs')] public function testVerifierCaptureMajInvalideurs(int $expectedCountErrors, string $squelette, bool $session_attendue): void { $this->runWithSquelette($squelette, $session_attendue); @@ -31,7 +49,7 @@ class CacheSessionTest extends SquelettesTestCase public static function providerVerifierCaptureMajInvalideurs(): array { return [ [0, 'inclure/A_session_wo', false], - [1, 'inclure/A_session_wo', true], + [2, 'inclure/A_session_wo', true], [2, 'inclure/A_session_w', false], [0, 'inclure/A_session_w', true], ]; -- GitLab