Tag: spöttische

Testen argparse mit unbescheidenen und verspotten

Ich habe ein Codebeispiel: from argparse import ArgumentParser class Wrapper(object): def __init__(self): self.modules = set(['gpfs_server', 'gpfs_client']) self.services = set(['gpfs']) def get_opts(): parse_wrapper = Wrapper() parser = ArgumentParser() parser.add_argument("-i", "–info", dest="show_all", action = "store_true", default=False, help="Show supported services") args, unknown = parser.parse_known_args() args.sub_args = [] if unknown: if unknown[0] not in parse_wrapper.services: unknown.insert(0, 'base') args.service = […]

Python spöttische Drittanbieter-Module

Ich versuche, einige Klassen zu testen, die Tweets verarbeiten. Im mit sixohsix twitter, um mit Twitter-API umzugehen. Ich habe eine Klasse, die als Fassade für die Twitter-Klassen fungiert, und meine Idee war, die tatsächlichen sixohsix Klassen zu verspotten, um die Ankunft von Tweets zu simulieren, indem sie zufällig neue Tweets erzeugen oder sie aus einer […]

Wie kann ich einen Redis-Client in Python verspotten?

Ich habe gerade festgestellt, dass eine Reihe von Unit-Tests fehlschlagen, weil ein Entwickler hat nicht verspottet die Abhängigkeit zu einem Redis-Client innerhalb des Tests. Ich versuche, in dieser Angelegenheit eine Hand zu geben, habe aber selbst Schwierigkeiten. Die Methode schreibt an einen Redis-Client: redis_client = get_redis_client() redis_client.set('temp-facility-data', cPickle.dumps(df)) Später in der Behauptung wird das Ergebnis […]

Abfangen von subprocess.Popen call in Python

Ich schreibe einen funktionalen Test für ein Legacy-Python-Skript, so dass ich eine einzeilige Änderung daran machen kann, ohne von Angst gelähmt zu werden. 😉 Das betreffende Skript ruft wget (1) mit subprocess.Popen auf, um eine XML-Datei herunterzuladen, die dann analysiert wird: def download_files(): os.mkdir(FEED_DIR) os.chdir(FEED_DIR) wget_process = Popen( ["wget", "–quiet", "–output-document", "-", "ftp://foo.com/bar.tar"], stdout=PIPE ) […]

Pythonschock und Bibliotheken, die nicht installiert sind

Ich arbeite an Software für einen Roboter, der normalerweise auf dem Raspberry Pi läuft. Betrachten wir die Importe von zwei Dateien: motor.py (läuft die motor.py ): from RPi import GPIO as gpio Und client.py (kommuniziert mit dem Server und leitet Befehle an die Motoren): from rpi.motor import Motor Beide Dateien befinden sich in einem Verzeichnis […]

Nosetests und Abdeckung auf Skripten

Ich versuche, nosetests und Abdeckung zu führen, um zu sehen, dass meine Tests in einem Gruppenprojekt ordnungsgemäß funktionieren. Wenn ich fahre, ist die Abdeckung immer noch bei 0% und ich frage mich, warum. Ich habe versucht, die Testklasse zu TestSteam zu ändern, da das helfen würde, aber scheint nicht zu funktionieren: Skriptcode (hackathon / scripts […]

Einen Wrapper für `mock.patch` machen

Einige maßgeschneiderte Patches von mock.patch Ich möchte immer und immer wieder verwenden, ohne meinen mock.patch mit Kopierpasten des Patch-Setups zu verletzen. datetime.date dieser sehr handliche Patch von datetime.date , der, für datetime angepasst, würde meinen Code mit füllen with patch('mymodule.datetime') as mock_datetime: mock_datetime.datetime.utcnow.return_value = datetime.datetime(2010, 10, 8, 9, 10) mock_date.datetime.side_effect = lambda *args, **kw: datetime.datetime(*args, […]

Mock / patch os.path.exists mit mehreren Rückgabewerten

Ich versuche, eine Funktion zu testen, die ich gemacht habe, dass es durch eine Liste iteriert, und ruft os.path.exists für jedes Element in der Liste. Mein Test übergibt die Funktion einer Liste von 2 Objekten. Ich brauche os.path.exists , um True für einen von ihnen und False für den anderen zurückzugeben. Ich habe das versucht: […]

Mock offen für Unit-Testing in Python

Ich möchte testen, mit unittest, eine Methode, die aus einer Datei mit einem Kontext-Manager liest: with open(k_file, 'r') as content_file: content = content_file.read() Ich möchte nicht, dass ich eine Datei auf meinem System erstellen muss, also wollte ich es verspotten, aber ich bin im Moment nicht viel im Gange. Ich habe mock_open gefunden, aber ich […]

Wie kann ich autospec eine verspottete Sellerie-Funktion

Angesichts einer Sellerie-Aufgabe genannt werden, was ist der einfachste Weg, um die Funktion mit autospec zu verspotten? Zum Beispiel in Python Python 2.7.5 dieser Code wird gut passieren: from mock import create_autospec from celery import task @task def function(a, b, c): pass mock_function = create_autospec(function) mock_function.delay('wrong arguments') Wenn es eine Ausnahme auslösen sollte, weil die […]

Python ist die beste Programmiersprache der Welt.