Lean Testing Python SDK
Project description
Lean Testing Python SDK
Python client for `Lean Testing API <https://leantesting.com/en/api-docs>`__
You can sign up for a Lean Testing account at https://leantesting.com.
Requirements
Python 3.0 or greater
Installation
You don’t need this source code unless you want to modify the package. If you just want to use the Lean Testing Python SDK, you should run:
pip install --upgrade leantesting
or
easy_install --upgrade leantesting
See http://www.pip-installer.org/en/latest/index.html for instructions on installing pip. If you are on a system with easy_install but not pip, you can use easy_install instead. If you’re not using virtualenv, you may have to prefix those commands with sudo. You can learn more about virtualenv at http://www.virtualenv.org/
To install from source, run:
python setup.py install
Usage
Including Lean Testing Python SDK
from leantesting.Client import Client as LeanTestingClient
Creating a new instance
LT = LeanTestingClient()
Get Current Token
leantesting.getCurrentToken()
Attach New Token
leantesting.attachToken('9ErdKZXpGPnvHuJ9di92eAFqrp14GKvfHMyclGGh')
Generate Authorization URL
generatedURL = leantesting.auth.generateAuthLink( 'DHxaSvtpl91Xos4vb7d0GKkXRu0GJxd5Rdha2HHx', 'https://www.example.com/appurl/', 'admin', 'a3ahdh2iqhdasdasfdjahf26' ) print( generatedURL )
Exchange Authorization Code For Access TOKEN
token = leantesting.auth.exchangeAuthCode( 'DHxaSvtpl91Xos4vb7d0GKkXRu0GJxd5Rdha2HHx', 'DpOZxNbeL1arVbjUINoA9pOhgS8FNQsOkpE4CtXU', 'authorization_code', 'sOgY2DT47B2K0bqashnk0E6wUaYgbbspwdy9kGrk', 'https://www.example.com/appurl/' ) print( token )
Get User Information
leantesting.user.getInformation()
Get User Organizations
leantesting.user.organizations.all().toArray()
List All Projects
leantesting.projects.all().toArray()
Create A New Project
newProject = leantesting.projects.create({ 'name': 'Project135', 'organization_id': 5779 }) print( newProject.data )
Retrieve An Existing Project
leantesting.projects.find(3515).data
List Project Sections
leantesting.projects.find(3515).sections.all().toArray()
Adding A Project Section
newSection = leantesting.projects.find(3515).sections.create({ 'name': 'SectionName' }) print( newSection.data )
List Project Versions
leantesting.projects.find(3515).versions.all().toArray()
Adding A Project Version
newVersion = leantesting.projects.find(3515).versions.create({ 'number': 'v0.3.1104' }) print( newVersion.data )
List Project Users
leantesting.projects.find(3515).users.all().toArray()
List Bug Type Scheme
leantesting.projects.find(3515).bugTypeScheme.all().toArray()
List Bug Status Scheme
leantesting.projects.find(3515).bugStatusScheme.all().toArray()
List Bug Severity Scheme
leantesting.projects.find(3515).bugSeverityScheme.all().toArray()
List Bug Reproducibility Scheme
leantesting.projects.find(3515).bugReproducibilityScheme.all().toArray()
List All Bugs In A Project
leantesting.projects.find(3515).bugs.all().toArray()
Create A New Bug
newBug = leantesting.projects.find(3515).bugs.create({ 'title': 'Something bad happened...', 'status_id': 1, 'severity_id': 2, 'project_version_id': 10242 }) print( newBug.data )
Retrieve Existing Bug
leantesting.bugs.find(38483).data
Update A Bug
updatedBug = leantesting.bugs.update(118622, { 'title': 'Updated title', 'status_id': 1, 'severity_id': 2, 'project_version_id': 10242 }) print( updatedBug.data )
Delete A Bug
leantesting.bugs.delete(118622)
List Bug Comments
leantesting.bugs.find(38483).comments.all().toArray()
List Bug Attachments
leantesting.bugs.find(38483).attachments.all().toArray()
Upload An Attachment
filePath = '/place/Downloads/Images/1370240743_2294218.jpg' newAttachment = leantesting.bugs.find(38483).attachments.upload(filePath) print( newAttachment.data )
Retrieve An Existing Attachment
leantesting.attachments.find(21515).data
Delete An Attachment
leantesting.attachments.delete(75258)
List Platform Types
leantesting.platform.types.all().toArray()
Retrieve Platform Type
leantesting.platform.types.find(1).data
List Platform Devices
leantesting.platform.types.find(1).devices.all().toArray()
Retrieve Existing Device
leantesting.platform.devices.find(11).data
List OS
leantesting.platform.os.all().toArray()
Retrieve Existing OS
leantesting.platform.os.find(1).data
List OS Versions
leantesting.platform.os.find(1).versions.all().toArray()
List Browsers
leantesting.platform.browsers.all().toArray()
Retrieve Existing Browser
leantesting.platform.browsers.find(1).data
List Browser Versions
leantesting.platform.browsers.find(1).versions.all().toArray()
Using Filters
leantesting.projects.find(3515).bugs.all({'limit': 2, 'page': 5}).toArray()
Entity List Functions
browsers = leantesting.platform.browsers.all() print( browsers.total() ) print( browsers.totalPages() ) print( browsers.count() ) print( browsers.toArray() )
Entity List Iterator When used in for loops, entity lists will automatically cycle to first page, regardless of page filter. After ending the loop, the entity list will NOT revert to first page or the initial instancing page filter setting in order not to cause useless API request calls.
comments = leantesting.bugs.find(38483).comments.all({'limit': 1}) for page in comments: print( page )
Entity List Manual Iteration ```python comments = leantesting.bugs.find(38483).comments.all({‘limit’: 1}) print( comments.toArray() )
Will return false if unable to move forwards
comments.next(); print( comments.toArray() )
Will return false if already on last page
comments.last(); print( comments.toArray() )
Will return false if unable to move backwards
comments.previous(); print( comments.toArray() )
Will return false if already on first page
comments.first(); print( comments.toArray() ) ```
Security
Need to report a security vulnerability? Send us an email to support@crowdsourcedtesting.com or go directly to our security bug bounty site https://hackerone.com/leantesting.
Development
Install dependencies:
pip install -e .
Tests
Install dependencies as mentioned above, then you can run the test suite:
python -m unittest2 discover
Contributing
Please see CONTRIBUTING for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.