def test_log(self):
        log = QgsProcessingRecentAlgorithmLog()
        self.assertFalse(log.recentAlgorithmIds())
        spy = QSignalSpy(log.changed)

        log.push('test')
        self.assertEqual(log.recentAlgorithmIds(), ['test'])
        self.assertEqual(len(spy), 1)
        log.push('test')
        self.assertEqual(log.recentAlgorithmIds(), ['test'])
        self.assertEqual(len(spy), 1)

        log.push('test2')
        self.assertEqual(log.recentAlgorithmIds(), ['test2', 'test'])
        self.assertEqual(len(spy), 2)

        log.push('test')
        self.assertEqual(log.recentAlgorithmIds(), ['test', 'test2'])
        self.assertEqual(len(spy), 3)

        log.push('test3')
        self.assertEqual(log.recentAlgorithmIds(), ['test3', 'test', 'test2'])
        self.assertEqual(len(spy), 4)

        log.push('test4')
        self.assertEqual(log.recentAlgorithmIds(),
                         ['test4', 'test3', 'test', 'test2'])
        self.assertEqual(len(spy), 5)

        log.push('test5')
        self.assertEqual(log.recentAlgorithmIds(),
                         ['test5', 'test4', 'test3', 'test', 'test2'])
        self.assertEqual(len(spy), 6)

        log.push('test6')
        self.assertEqual(log.recentAlgorithmIds(),
                         ['test6', 'test5', 'test4', 'test3', 'test'])
        self.assertEqual(len(spy), 7)

        log.push('test3')
        self.assertEqual(log.recentAlgorithmIds(),
                         ['test3', 'test6', 'test5', 'test4', 'test'])
        self.assertEqual(len(spy), 8)

        log.push('test3')
        self.assertEqual(log.recentAlgorithmIds(),
                         ['test3', 'test6', 'test5', 'test4', 'test'])
        self.assertEqual(len(spy), 8)

        # test that log has been saved to QgsSettings
        log2 = QgsProcessingRecentAlgorithmLog()
        self.assertEqual(log2.recentAlgorithmIds(),
                         ['test3', 'test6', 'test5', 'test4', 'test'])
    def test_log(self):
        log = QgsProcessingRecentAlgorithmLog()
        self.assertFalse(log.recentAlgorithmIds())
        spy = QSignalSpy(log.changed)

        log.push('test')
        self.assertEqual(log.recentAlgorithmIds(), ['test'])
        self.assertEqual(len(spy), 1)
        log.push('test')
        self.assertEqual(log.recentAlgorithmIds(), ['test'])
        self.assertEqual(len(spy), 1)

        log.push('test2')
        self.assertEqual(log.recentAlgorithmIds(), ['test2', 'test'])
        self.assertEqual(len(spy), 2)

        log.push('test')
        self.assertEqual(log.recentAlgorithmIds(), ['test', 'test2'])
        self.assertEqual(len(spy), 3)

        log.push('test3')
        self.assertEqual(log.recentAlgorithmIds(), ['test3', 'test', 'test2'])
        self.assertEqual(len(spy), 4)

        log.push('test4')
        self.assertEqual(log.recentAlgorithmIds(), ['test4', 'test3', 'test', 'test2'])
        self.assertEqual(len(spy), 5)

        log.push('test5')
        self.assertEqual(log.recentAlgorithmIds(), ['test5', 'test4', 'test3', 'test', 'test2'])
        self.assertEqual(len(spy), 6)

        log.push('test6')
        self.assertEqual(log.recentAlgorithmIds(), ['test6', 'test5', 'test4', 'test3', 'test'])
        self.assertEqual(len(spy), 7)

        log.push('test3')
        self.assertEqual(log.recentAlgorithmIds(), ['test3', 'test6', 'test5', 'test4', 'test'])
        self.assertEqual(len(spy), 8)

        log.push('test3')
        self.assertEqual(log.recentAlgorithmIds(), ['test3', 'test6', 'test5', 'test4', 'test'])
        self.assertEqual(len(spy), 8)

        # test that log has been saved to QgsSettings
        log2 = QgsProcessingRecentAlgorithmLog()
        self.assertEqual(log2.recentAlgorithmIds(), ['test3', 'test6', 'test5', 'test4', 'test'])