Metadata-Version: 1.0
Name: pytest-bdd
Version: 0.4.5
Summary: BDD for pytest
Home-page: https://github.com/olegpidsadnyi/pytest-bdd
Author: Oleg Pidsadnyi
Author-email: oleg.podsadny@gmail.com
License: MIT license
Description: 
        PyTest-BDD
        ==========
        
        Implements a subset of Gherkin language for the behavior-driven development and
        automated testing. Benefits from the pytest and its dependency injection pattern
        for the true just enough specifications and maximal reusability of the BDD
        definitions.
        
        Example
        ```````
        
        publish_article.feature:
        
        .. code:: gherkin
        
            Scenario: Publishing the article
                Given I'm an author user
                And I have an article
                When I go to the article page
                And I press the publish button
                Then I should not see the error message
                And the article should be published  # Note: will query the database
        
        
        test_publish_article.py:
        
        .. code:: python
        
            from pytest_bdd import scenario, given, when, then
        
            test_publish = scenario('publish_article.feature', 'Publishing the article')
        
        
            @given('I have an article')
            def article(author):
                return create_test_article(author=author)
        
        
            @when('I go to the article page')
            def go_to_article(article, browser):
                browser.visit(urljoin(browser.url, '/manage/articles/{0}/'.format(article.id)))
        
        
            @when('I press the publish button')
            def publish_article(browser):
                browser.find_by_css('button[name=publish]').first.click()
        
        
            @then('I should not see the error message')
            def no_error_message(browser):
                with pytest.raises(ElementDoesNotExist):
                    browser.find_by_css('.message.error').first
        
        
            @then('And the article should be published')
            def article_is_published(article):
                article.refresh()  # Refresh the object in the SQLAlchemy session
                assert article.is_published
        
        Installation
        ````````````
        
        .. code:: bash
        
            $ pip install pytest-bdd
        
        Links
        `````
        
        * `website <https://github.com/olegpidsadnyi/pytest-bdd>`_
        * `documentation <https://pytest-bdd.readthedocs.org/en/latest/>`_
        
        
Platform: UNKNOWN
Classifier: Development Status :: 6 - Mature
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
