Skip to main content

Light weight BDD Pattern

Project description

# Light weight BDD Pattern

## Installation
* `pip install apple-mango`

## Goal
* Easy to Use
* Compatible with Python unittest
* Compatible with existing test code
* Support Python3

## Next Step
* Register to pypi
* Add CI
* Support pytest

## Usage
* Define regular test class
* Define regular test method with `@mango.given()`
* Define inner `when` method with `@mango.when()`
* Define inner `then` method with `@mango.then()`
* Run python test: `python -m unittest`
* No need to call inner `when` and `then` method becuase `given(), when(), then()` decorators will take care of it

### Example

class MangoUseCase(TestCase):
def setUp(self):
self.user = 'jun'

@mango.given('I am logged-in user')
def test_profile(self):
self.given.user_profile = 'my_profile'
self.given.user_photo = 'my_photo'

self.given.notifications_count = 3
self.given.unread_notifications_count = 1

@mango.when('I click profile')
def when_click_profile():

@mango.then('I see profile')
def then_profile():
self.assertEqual(self.given.user_profile, 'my_profile')

@mango.then('I see my photo')
def then_photo():
self.assertEqual(self.given.user_photo, 'my_photo')

@mango.when('I click notification')
def when_click_notification():

@mango.then('I see 3 notifications')
def then_notification():
self.assertEqual(self.given.notifications_count, 3)

@mango.then('I see 1 unread notification')
def then_unread_notification():
self.assertEqual(self.given.unread_notifications_count, 1)

@mango.given('I am logged-out user')
def test_auth(self):
self.given.status_code = 401

@mango.when('I access profile by url')
def when_access_profile():
print('access profile')

@mango.then('I see 401 error')
def then_error():
self.assertEqual(self.given.status_code, 401)


### Run Example
python -m unittest

## Contributing

### Run Test
python -m unittest tests/

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for apple-mango, version 0.2
Filename, size File type Python version Upload date Hashes
Filename, size apple_mango-0.2-py3-none-any.whl (4.6 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page