Comment tester la fonction Python décorateurs?

Je suis en train d'écrire des tests unitaires pour s'assurer de l'exactitude des différents décorateurs j'ai écrit. Voici le début du code, je suis en train d'écrire:

import unittest

from memoizer import Memoizer
from strategies.mru import MRU


@Memoizer(strategy=MRU(maxsize=10))
def fib(x):
  if x < 2:
    return 1
  else:
    return fib(x-1) + fib(x-2)


class TestMemoizer(unittest.TestCase):

  def test_simple(self):
    self.assertEqual(fib(0), 1)
    self.assertEqual(fib(1), 1)
    self.assertEqual(fib(10), 89)


if __name__ == '__main__':
  unittest.main()

Alors que cela fonctionne décemment pour le MRU stratégie que j'ai ci-dessus, j'ai l'intention d'écrire d'autres stratégies, dans ce cas, je vais avoir besoin pour décorer avec le fib fonction de différentes manières. (Rappelons qu'en raison de la fib appels fib, réglage fib2 = memoize(fib) n'a pas memoize des valeurs intermédiaires, de sorte que ne fonctionnera pas.) Quelle est la bonne façon de tester les autres décorateurs?

OriginalL'auteur Ceasar Bautista | 2011-11-02