tox mit Python2 und Python3 nutzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Hallo,
ich habe vor, mein Projekt mittels tox so testen zu lassen, dass bei Verwendung von Python3 automatisch 2to3 aufgerufen wird. Ich dachte, das dies mit einem ``use_2to3=True`` in der setup.py getan sei — anscheinend ist das aber nicht der Fall.

Die Verzeichnisstruktur vom Testprojekt sieht so aus:

Code: Alles auswählen

├── foo.py
├── setup.py
├── test_foo.py
└── tox.ini
Hier der Inhalt der einzelnen Dateien: http://paste.pocoo.org/show/311738/

Und hier die Ausgabe von tox: http://paste.pocoo.org/show/311739/
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Update: Habe meine setup.py aktualisiert: http://paste.pocoo.org/show/311763/. Leider hat es aber nichts gebracht :(
lunar

Eine in "setup.py" angegebene Option wirkt sich selbstverständlich nur auf jene Module aus, die auch mittels "setup.py" installiert werden. Bei Deinem Test-Modul ist das nicht der Fall. Du musst das Test-Modul entweder richtig installieren, oder "python setup.py test" konfigurieren und nutzen. Steht im Übrigen alles in der Dokumentation
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

OK, dann werde ich "python setup.py test" konfigurieren.
lunar

Ach ja, eine Alternative wäre natürlich noch, die Tests einfach zu schreiben, dass sie sowohl unter Python 2 als auch Python 3 laufen. Dank __future__ ist das nicht so schwer.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Ah stimmt, hab vergessen, dass es

Code: Alles auswählen

from __future__ import unicode_literals
gibt. Das macht es natürlich deutlich einfacher :)
Antworten