
On 23 August 2017 at 08:20, rymg19@gmail.com <rymg19@gmail.com> wrote:
TBH you're completely right. Every time I see someone using unittest andItsHorriblyUnpythonicNames, I want to kill a camel.
Sometimes, though, I feel like part of the struggle is the alternative. If you dislike unittest, but pytest is too "magical" for you, what do you use? Many Python testing tools like nose are just test *runners*, so you still need something else. In the end, many just end up back at unittest, maybe with nose on top.
A snake_case helper API for unittest that I personally like is hamcrest, since that also separates out the definition of testing assertions from being part of a test case: https://pypi.python.org/pypi/PyHamcrest Introducing such a split natively into unittest is definitely attractive, but would currently be difficult due to the way that some features like self.maxDiff and self.subTest work. However, PEP 550's execution contexts may provide a way to track the test state reliably that's independent of being a method on a test case instance, in which case it would become feasible to offer a more procedural interface in addition to the current visibly object-oriented one. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia