2012-04-12 1 views
1

Ich bin dabei, meine Google AppEngine-Lösung von Python 2.5 auf 2.7 zu migrieren. Die Anwendungsmigration war relativ einfach, aber ich habe Probleme mit den Unittests.So legen Sie die Standardbibliotheken beim Durchführen von Komponententests unter Python fest 2.7

In der Version 2.5 habe ich die Funktion use_library verwendet, um die Django-Version auf 1.2 zu setzen, aber das wird nicht mehr unter 2.7 unterstützt. Jetzt stelle ich die Standardversion in der App.Yaml ein.

Wenn ich jetzt meine Unittests ausführe, wird die Standard-Django-Version 0.96 und ich kann es nicht schaffen, 1.2 als Standardversion zu setzen.

Wer weiß, wie ich die Standardbibliotheken für den Komponententest einstellen kann, damit die Einstellungen in der app.yaml übereinstimmen?

+0

Haben Sie eine Lösung gefunden? Ich jetzt, dass Ihr Problem vor langer Zeit war, aber ich habe das gleiche Problem. – ccsakuweb

Antwort

3

die folgende Syntax in app.yaml Verwenden Sie die Django-Version durchgehend verwendet zu setzen:

libraries: 
- name: django 
    version: "1.3" 

Weitere Einzelheiten dazu, wie die Verwendung von 3rd-Party-Bibliotheken in Python einzurichten 2,7 here.

+0

Ich habe getan, was Sie gesagt haben, und es funktioniert gut, wenn Sie die Anwendung auf Dev-Server und Produktion ausführen. Allerdings, wenn ich Unit-Test laufen diese app.yaml Konfiguration ist nicht gelesen und ich bekomme die Standard-0.96-Version – aadjemonkeyrock

+0

@aadjemonkeyrock Ah, überprüfen Sie, wo Django importiert wird, indem zuerst 'import django' und dann' django .__ file__'. Denken Sie daran, dass Sie bei der Ausführung von Tests nicht in der GAE-Umgebung arbeiten, sondern die Konfiguration Ihrer eigenen Box verwenden. –

+0

Dies funktioniert nicht bei Unit-Tests. Auch use_library funktioniert nicht, weil aus irgendeinem Grund, wenn von Unittests läuft dann Max Avail django Version ist 1.3 (scheint zuletzt in Python 2.5 verfügbar sein), während ich Django 1.5 benötigen –

0

app.yaml Konfiguration wird nicht angewendet, wenn Komponententests mit Webtest-App und NoseGAE durchgeführt werden. use_library funktioniert auch nicht.

Die richtige Lösung für diesen Fall besteht darin, einen geeigneten Python-Pfad zur bevorzugten lib-Version bereitzustellen, z. PYTHONPATH=../google_appengine/lib/django-1.5 beim Ausführen von nosetests.

Verwandte Themen