Lean Testing Ruby SDK
Ruby client for Lean Testing API
You can sign up for a Lean Testing account at https://leantesting.com.
Requirements
- Ruby 2.0 or greater
Installation
Add this line to your application's Gemfile:
gem 'leantesting'
And then execute:
$ bundle
Or install it yourself as:
$ gem install leantesting
Usage
require 'leantesting'
leantesting = LeanTesting::Client.new
leantesting.attachToken('<token>')
# Listing projects
projects = leantesting.projects.all()
# Fetching project bugs
bugs = leantesting.projects.find(123).bugs.all()
Methods
Get Current Token
leantesting.getCurrentToken
Attach New Token
leantesting.attachToken('<token>')
Generate Authorization URL
generatedURL = leantesting.auth.generateAuthLink( '<client id>', '<redirect URL>', '<scope>', '<random string>' ) p generatedURL
Exchange authorization code For access token
token = leantesting.auth.exchangeAuthCode( '<client id>', '<client secret>', 'authorization_code', '<auth code>', '<redirect URL>' ) p 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 }) p 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' }) p 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' }) p 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 }) p 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 }) p updatedBug.data
Delete A Bug
leantesting.bugs.delete(118622)
- List Bug Comments
ruby leantesting.bugs.find(38483).comments.all.toArray
List Bug Attachments
leantesting.bugs.find(38483)..all.toArray
Upload An Attachment
filePath = '/place/Downloads/Images/1370240743_2294218.jpg' newAttachment = leantesting.bugs.find(38483)..upload(filePath) p newAttachment.data
Retrieve An Existing Attachment
leantesting..find(21515).data
Delete An Attachment
leantesting..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 p browsers.total p browsers.totalPages p browsers.count p 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 instancingpage
filter setting in order not to cause useless API request calls.comments = leantesting.bugs.find(38483).comments.all({'limit' => 1}) comments.each{ |page| p page }
Entity List Manual Iteration
comments = leantesting.bugs.find(38483).comments.all({'limit' => 1}) p comments.toArray
Will return false if unable to move forwards
comments.next; p comments.toArray
Will return false if already on last page
comments.last; p comments.toArray
Will return false if unable to move backwards
comments.previous; p comments.toArray
Will return false if already on first page
comments.first; p comments.toArray
## Security
Need to report a security vulnerability? Send us an email to [email protected] or go directly to our security bug bounty site [https://hackerone.com/leantesting](https://hackerone.com/leantesting).
## Development
Install dependencies:
```bash
bundle install
Tests
Install dependencies as mentioned above, then you can run the test suite:
rake test