- 
      
- 
        Save yumike/1446309 to your computer and use it in GitHub Desktop. 
| # codec: blocks | |
| describe('articles.views.ArticleView'): | |
| context('when user has permissions'): | |
| it('should add new article'): | |
| # some code | |
| it('should delete existing article'): | |
| # some code | |
| context('when user has no permissions'): | |
| it('should not add new article') | |
| it('should not even show article form') | 
| from bdd import describe, context, it | |
| with describe('articles.views.ArticleView'): | |
| with context('when user has permissions'): | |
| @it('should add new article') | |
| def test(): | |
| # some code | |
| @it('should delete existing article') | |
| def test(): | |
| # some code | |
| with context('when user has no permissions'): | |
| # pending tests | |
| it('should not add new article') | |
| it('should not even show article form') | 
sheesh people. Years later and nothing?
Check out mamba https://github.com/nestorsalceda/mamba
We ended up not using it, but now I wish we had.
@gabrielfalcao sure surely looks like a nice assertion library, thanks for that! :)
However, the discussion here is about a library that helps to structure tests, like RSpec does.
Namely, something that helps you to write test names and their structure, even before you actually write any assertion.
This is a powerful communication and designing tool, that gives you a lot more than simply a cool way to do assertions: it helps you to think, to plan and to adapt later on.
Assertions are probably not that important when it comes to high-level design, except when deciding to use mocks vs stubs.
This excerpt from the RSpec book might be a good introduction to these ideas: http://media.pragprog.com/titles/achbd/outside-in.pdf
I haven't find a really good tool in Python ecossystem for that yet.
mamba looks promising.
There are some other alternatives behave, pytest-bdd, lettuce and etc, but none seems to attempt to help the upfront thinking when design -- they always get in the way, requiring you to write boilerplate stuff.
Im just starting python and come form ruby so rspec Ill let you know what I think and end up using but i like sure