On Sun, Apr 16, 2017 at 11:50 PM, Mats Wichmann <m...@wichmann.us> wrote:
> > You got me thinking as well, as I don't much care for unittest, at least > partly because it forces you to use classes even when it doesn't feel > all that natural. I have looked into pytest multiple times, but have decided to stick with unittest until I feel I have mastered its use. While it forces the use of classes, this is an advantage for me as I am still in the beginning stages of learning OOP. But if I ever make it through these learning journeys, I will probably switch to using pytest. Everything I have read on it to this point has favorably impressed me. [snip] > === reverser.py == > def slicerev(collection): > return collection[::-1] > > if __name__ == "__main__": > print slicerev([1,2,3,4]) > print slicerev((1,2,3,4)) > print slicerev('abcd') > === [snip] > The actual test function should be pretty straightforward. > > === test_slicerev.py === > import pytest > > from reverser import slicerev > > @pytest.fixture(params=[ > ([1,2,3,4], [4,3,2,1]), > ((1,2,3,4), (4,3,2,1)), > ('abcd', 'edcba') > ]) > def slicedata(request): > return request.param > > def test_slicerev(slicedata): > input, expected = slicedata > output = slicerev(input) > assert output == expected > === It's funny you picked this type of example. Last year I was struggling with getting unittest to feed in data to my test of a function (or was it a method?), and almost took the plunge and went all in on pytest because of the apparent ease of handling these types of situations while respecting DRY. I did find a way to do something similar in unittest, so put off pytest for another day. I cannot remember now what I did. I need to go back and find that code (If I still have it.) and compare it with this Mixin approach that I started this whole thread with. Nonetheless pytest is definitely on my radar and I will get to it at some point. Thanks! -- boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor