[PyAthens] Setuptools & warnings

Orestis Markou orestis at orestis.gr
Wed Nov 25 15:15:02 CET 2009


Γιατί δεν μετατρέπεις το warning σε error?

Είτε μέσω του warnings module [1] είτε με python -W  [2]

[1]: http://docs.python.org/library/warnings.html
[2]: http://docs.python.org/using/cmdline.html#cmdoption-W

On 25 Nov 2009, at 15:09, Antonis Christofides wrote:

> Γεια σας,
> 
> έχω ένα module και του έχω φτιάξει easy_setup. Έχει και tests, που
> τρέχουν με
> 
> ./setup.py test
> 
> Μερικά από τα test χρειάζονται σύνδεση με βάση δεδομένων. Για να
> τρέξουν τα τεστ αυτά χρειάζεται να ορίσεις μια μεταβλητή περιβάλλοντος:
> 
> export PSYCOPG_CONNECTION="host=... dbname=... user=... password=..."
> 
> Αν δεν ορίσω αυτή τη μεταβλητή περιβάλλοντος, τότε αυτά τα τεστ δεν
> αποτυγχάνουν μεν, δεν τρέχουν δε. Βγάζουν ένα Warning, που δίνει
> οδηγίες "Δεν έτρεξα τα database tests. Αν θες να τα τρέξεις, κάνε αυτό
> κι αυτό." Το warning βγαίνει με το warnings.warn
> 
> Το πρόβλημα: αυτό το warning βγαίνει πάνω-πάνω, και ακολούθως κάνει
> σκρολ προς τα πάνω και εξαφανίζεται, και αυτό που βλέπει αυτός που
> τρέχει τα τεστ είναι
> 
>    [το πιο πάνω μέρος έχει κάνει scroll και έχει φύγει]
>    test_up3 (tests.test_timeseries._Test_timestep_utilities) ... ok
>    test_up4 (tests.test_timeseries._Test_timestep_utilities) ... ok
>    test_up5 (tests.test_timeseries._Test_timestep_utilities) ... ok
>    test_lastem (tests.test_meteologger._Test_lastem) ... ok
>    test_pc208w (tests.test_meteologger._Test_pc208w) ... ok
> 
>    ----------------------------------------------------------------------
>    Ran 76 tests in 0.082s
> 
>    OK
> 
> Αυτό που θέλω είναι το warning να φαίνεται κάτω απ' το OK, ή τέλος
> πάντων να είναι εύκολα ορατό χωρίς να χρειάζεται να ψυλλιαστεί κάτι ο
> tester.
> 
> Αυτό που δοκίμασα ήταν να αλλάξω την warnings.showwarning ώστε αντί να
> δείχνει το warning να το προσθέτει σε μια λίστα, και να χρησιμοποιήσω
> την atexit.register για να δείχνει αυτά τα warnings στο τέλος. Πλην
> όμως η atexit.register δεν φαίνεται να έχει κανένα αποτέλεσμα. Η
> sys.exitfunc έχει αποτέλεσμα, αλλά έχει άλλα προβλήματα (όταν έρθει η
> ώρα της να τρέξει έχει ξεχάσει τα global variables, κι έτσι δεν
> υπάρχει πια η λίστα των warnings).
> 
> Κάνω κάποιο προφανές λάθος; Μήπως το setuptools κάνει αυτό που θέλω με
> κάποιο άλλο τρόπο;
> _______________________________________________
> PyAthens mailing list
> PyAthens at python.org
> http://mail.python.org/mailman/listinfo/pyathens



More information about the Python-greece mailing list