La dérivation d'une classe de cas de test en jette deux erreurs

J'ai quelques base de l'installation/démontage de code que je veux réutiliser dans tout un tas de tests unitaires. J'ai donc eu la brillante idée de la création de certaines classes dérivées pour éviter la répétition du code dans chaque classe de test.

En agissant de la sorte, j'ai reçu deux étranges erreurs. Un, je ne peux pas résoudre. Voici la insolubles:

AttributeError: 'TestDesktopRootController' object has no attribute '_testMethodName'

Voici ma classe de base:

import unittest
import twill
import cherrypy
from cherrypy._cpwsgi import CPWSGIApp


class BaseControllerTest(unittest.TestCase):

    def __init__(self):
        self.controller = None

    def setUp(self):
        app = cherrypy.Application(self.controller)

        wsgi = CPWSGIApp(app)

        twill.add_wsgi_intercept('localhost', 8080, lambda : wsgi)

    def tearDown(self):
        twill.remove_wsgi_intercept('localhost', 8080)

Et voici ma classe dérivée:

import twill
from base_controller_test import BaseControllerTest

class TestMyController(BaseControllerTest):

    def __init__(self, args):
        self.controller = MyController()
        BaseControllerTest.__init__(self)

    def test_root(self):
        script = "find 'Contacts'"
        twill.execute_string(script, initial_url='http://localhost:8080/')

L'autre étrange erreur est:

TypeError: __init__() takes exactly 1 argument (2 given)

La "solution" à qui a été d'ajouter le mot "args" à mon __init__ fonction dans la classe dérivée. Est-il possible de l'éviter?

Rappelez-vous, j'ai deux erreurs dans celui-ci.

  • Pourquoi êtes-vous primordial __init__()? Généralement, nous l'emporter setUp.
InformationsquelleAutor 010110110101 | 2011-09-27