[PYTHON] Je veux un générateur mox (2)

C'est une continuation de ce que j'ai écrit la dernière fois je veux un générateur mox.

Après tout, je voulais une valeur de retour, alors j'ai ajouté ret =. Au fait, si vous l'appelez à plusieurs reprises, une erreur se produira, donc je vérifie l'instance pour l'empêcher, mais ce n'est pas intelligent ...

mox_generator.py


    def stub(self, stub_class, stub_method, num_args, ret=None):
        stubbed = getattr(stub_class, stub_method)
        if not isinstance(stubbed, mox.MockAnything) and not isinstance(stubbed, mox.MockObject):
            self.mox.StubOutWithMock(stub_class, stub_method)
            stubbed = getattr(stub_class, stub_method)
        args = tuple([mox.IgnoreArg() for i in range(num_args)])
        stubbed(*args).AndReturn(ret)

En outre, un rédacteur de test sérieux (décent) vérifierait également les arguments.

mox_generator.py


    def stub_with_args(self, stub_class, stub_method, num_args,
                        *args, **kwds):
        if kwds.has_key('ret'):
            ret = kwds.pop('ret')
        else:
            ret = None

        stubbed = getattr(stub_class, stub_method)
        if not isinstance(stubbed, mox.MockAnything) and not isinstance(stubbed, mox.MockObject):
            self.mox.StubOutWithMock(stub_class, stub_method)
            stubbed = getattr(stub_class, stub_method)

        stubbed = getattr(stub_class, stub_method)
        stub_args = tuple(map(self.stub_arg, args))
        stub_kwds = {}
        for key in kwds.keys():
            stub_kwds[key] = self.stub_arg(kwds[key])
        stubbed(*stub_args, **stub_kwds).AndReturn(ret)

    def stub_arg(self, arg):
        if arg is None:
            return mox.IgnoreArg()
        elif type(arg) == type(MoxGenerator):
            return mox.IsA(arg)
        else:
            return arg

Je ne sais pas comment comparer «type». Eh bien, pour le moment. Ensuite, je veux créer quelque chose comme `` repeat_stub ''.

Recommended Posts

Je veux un générateur de mox
Je veux un générateur mox (2)
Je veux répéter plusieurs fois un générateur Python
Je veux imprimer dans la notation d'inclusion
Je veux créer un environnement Python
J'ai fait un générateur Hanko avec GAN
Je veux faire de matplotlib un thème sombre
Je souhaite créer facilement un modèle de bruit
Je veux INSÉRER un DataFrame dans MSSQL
Je veux créer une fenêtre avec Python
Je veux faire un jeu avec Python
Je ne veux pas passer un test de codage
Je souhaite créer un type d'implémentation pouvant être branché
Je veux trouver facilement une délicieuse boutique
Je veux écrire dans un fichier avec Python
Je souhaite télécharger une application Django sur heroku
J'ai un sqlite3.OperationalError
Je souhaite intégrer une variable dans une chaîne Python
Je veux que DQN Puniki frappe un home run
100 coups sur le traitement d'image !! (021-030) Je veux faire une pause ...
Je veux donner un group_id à une trame de données pandas
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
Je veux faire la transition avec un bouton sur le ballon
Je veux escalader une montagne avec l'apprentissage par renforcement
Je veux écrire en Python! (2) Écrivons un test
Je veux trouver un package populaire sur PyPi
Je veux échantillonner au hasard un fichier avec Python
Je souhaite créer facilement un environnement de développement basé sur un modèle
Je veux diviser une chaîne de caractères avec hiragana
Je souhaite installer un package de Php Redis
[Python] Je veux faire d'une liste imbriquée un taple
Je souhaite créer manuellement une légende avec matplotlib
Je souhaite envoyer automatiquement un e-mail de création d'entreprise
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux lier une variable locale avec lambda
Je veux démarrer un environnement Jupyter avec une seule commande
[Python] Je souhaite obtenir un ensemble commun entre numpy
Je veux démarrer beaucoup de processus à partir de python
Je veux faire une macro de clic avec pyautogui (désir)
Je veux générer automatiquement un nom de groupe de metal moderne
Je veux résoudre SUDOKU
Je veux faire une macro de clic avec pyautogui (Outlook)
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Je veux installer le package de requirements.txt avec poésie
Je souhaite envoyer un message de Python à LINE Bot
J'ai fait un texte Python
J'ai fait un robot discord
[Visualisation] Je veux dessiner un beau graphique avec Plotly
Je veux ajouter un joli complément à input () en python
J'ai fait un générateur de réseau neuronal qui fonctionne sur FPGA
Je veux créer un Dockerfile pour le moment.
Je souhaite enregistrer l'heure d'exécution et conserver un journal.
Configuration MacBookPro Après tout, je veux faire une installation propre
Qiskit: Je veux créer un circuit qui crée des états arbitraires! !!
Je souhaite rechercher le texte intégral avec elasticsearch + python
Je veux créer un système pour éviter d'oublier de serrer la clé 1
Gratter et manger des bûches - je veux trouver un bon restaurant! ~ (Travail)
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
Je veux créer un fichier pip et le refléter dans le menu fixe