class TestdroidApi::Client::Project
Attributes
app_file[R]
description[R]
id[R]
name[R]
test_file[R]
Public Class Methods
new(client, config)
click to toggle source
# File lib/testdroid-api/client/project.rb, line 6 def initialize(client, config) @client = client @id = config['id'] @name = config['name'] @description = config['description'] #TODO: Add uploadTimeslate @app_file = config['appFile'] && config['appFile']['originalName'] #TODO: Add uploadTime @test_file = config['testFile'] && config['testFile']['originalName'] end
Public Instance Methods
config()
click to toggle source
# File lib/testdroid-api/client/project.rb, line 89 def config raise NotImplementedError end
create_test_run(device_group = 'all devices', instatest = false, screenshots = false)
click to toggle source
Start new test run @return [TestdroidApi::Client::Project::TestRun]
@param device_group [TestdroidApi::Client::DeviceGroup] devices to be tested @param instatest [Boolean] run project in instatest mode @param screenshots [Boolean] take screenshots automatically
# File lib/testdroid-api/client/project.rb, line 63 def create_test_run(device_group = 'all devices', instatest = false, screenshots = false) res_name = "project/run/#{id}" endpoint = "projects/#{id}/run" params = { :instatestMode => instatest, :autoScreenshots => screenshots, :usedClusterId => get_group_id(device_group) } test_run = @client.post_api_request(endpoint, params, res_name) TestdroidApi::Client::Project::TestRun.new(@client, self, test_run) end
delete!()
click to toggle source
Delete project
# File lib/testdroid-api/client/project.rb, line 50 def delete! res_name = "project/#{id}" endpoint = "projects/#{id}/delete" @client.post_api_request(endpoint, nil, res_name) end
test_runs()
click to toggle source
Returns project runs from project @return [Array<Project>]
# File lib/testdroid-api/client/project.rb, line 78 def test_runs res_name = "runs" endpoint = "projects/#{id}/runs" configs = @client.get_api_request(endpoint, res_name) configs.map{|config| TestdroidApi::Client::Project::TestRun.new(@client, self, config) } end
update_config(new_config)
click to toggle source
# File lib/testdroid-api/client/project.rb, line 93 def update_config(new_config) raise NotImplementedError end
upload_app_file(path)
click to toggle source
Upload application binary @param path path to application file
# File lib/testdroid-api/client/project.rb, line 21 def upload_app_file(path) endpoint = "projects/#{id}/apks/application" file = File.new(path) digest = mh5digest(file) params = { :file => file, :multipart => true } res_name = "upload#{id}application#{digest}" extra_headers = {'X-Testdroid-MD5' => digest} @client.post_api_request(endpoint, params, res_name, extra_headers ) end
upload_test_file(path)
click to toggle source
Upload test binary @param path path to test file
# File lib/testdroid-api/client/project.rb, line 36 def upload_test_file(path) endpoint = "projects/#{id}/apks/instrumentation" file = File.new(path) digest = mh5digest(file) params = { :file => file, :multipart => true } res_name = "upload#{id}instrumentation#{digest}" extra_headers = {'X-Testdroid-MD5' => digest} @client.post_api_request(endpoint, params, res_name, extra_headers ) end
Private Instance Methods
get_group_id(object)
click to toggle source
# File lib/testdroid-api/client/project.rb, line 101 def get_group_id(object) (object.respond_to? :id) ? object.id : object end
mh5digest(file)
click to toggle source
# File lib/testdroid-api/client/project.rb, line 97 def mh5digest(file) Digest::MD5.hexdigest(file.read) end