Zatwierdź git tylko, jeśli testy się powiodą

Ostatnio zacząłem używać git, a także rozpocząłem testy jednostkowe (używając Pythonaunittest moduł). Chciałbym uruchamiać moje testy za każdym razem, gdy popełniam błąd, i zatwierdzam tylko, jeśli przejdą.

Zgaduję, że muszę użyćpre-commit w/hooksi udało mi się uruchomić testy, ale nie mogę znaleźć sposobu na zatrzymanie zatwierdzenia, jeśli testy się nie powiodą. Przeprowadzam testy zmake test, który z kolei działapython3.1 foo.py --test. Wygląda na to, że nie dostaję innego warunku wyjścia, niezależnie od tego, czy testy zdadzą, czy nie, ale mogę szukać w niewłaściwym miejscu.

Edytować: Czy to coś niezwykłego, co chcę tutaj zrobić? Myślałem, że to powszechny wymóg ...

Edit2: Na wypadek gdyby ludzie nie mogli się przejmować czytaniem komentarzy, problem polegał na tymunittest.TextTestRunner nie wychodzi z niezerowym statusem, bez względu na to, czy pakiet testowy powiódł się, czy nie. Aby to złapać, zrobiłem:

result = runner.run(allTests)
if not result.wasSuccessful():
    sys.exit(1)

questionAnswers(3)

yourAnswerToTheQuestion