testdroid-api-client 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +39 -43
  3. data/README.md +8 -2
  4. data/lib/testdroid-api-client.rb +0 -1
  5. data/lib/testdroid_api/apikey_client.rb +43 -2
  6. data/sample/sample.rb +1 -3
  7. data/spec/client_spec.rb +1 -1
  8. data/spec/device_groups_spec.rb +1 -1
  9. data/spec/files_spec.rb +2 -2
  10. data/spec/fixtures/app.apk +0 -0
  11. data/spec/fixtures/cassettes/device_groups_authorize.json +1 -1
  12. data/spec/fixtures/cassettes/device_groups_create.json +1 -1
  13. data/spec/fixtures/cassettes/device_groups_delete.json +1 -1
  14. data/spec/fixtures/cassettes/device_groups_get_all.json +1 -1
  15. data/spec/fixtures/cassettes/device_groups_get_one.json +1 -1
  16. data/spec/fixtures/cassettes/files_authorize.json +1 -1
  17. data/spec/fixtures/cassettes/files_delete.json +1 -1
  18. data/spec/fixtures/cassettes/files_get_all.json +1 -1
  19. data/spec/fixtures/cassettes/files_get_one.json +1 -1
  20. data/spec/fixtures/cassettes/files_upload.json +1 -1
  21. data/spec/fixtures/cassettes/files_upload_with_wait.json +1 -1
  22. data/spec/fixtures/cassettes/label_groups_authorize.json +1 -1
  23. data/spec/fixtures/cassettes/label_groups_create.json +1 -1
  24. data/spec/fixtures/cassettes/label_groups_delete.json +1 -1
  25. data/spec/fixtures/cassettes/label_groups_get_all.json +1 -1
  26. data/spec/fixtures/cassettes/label_groups_get_labels.json +1 -1
  27. data/spec/fixtures/cassettes/label_groups_get_one.json +1 -1
  28. data/spec/fixtures/cassettes/projects_authorize.json +1 -1
  29. data/spec/fixtures/cassettes/projects_create.json +1 -1
  30. data/spec/fixtures/cassettes/projects_delete.json +1 -1
  31. data/spec/fixtures/cassettes/projects_get_all.json +1 -1
  32. data/spec/fixtures/cassettes/projects_get_one.json +1 -1
  33. data/spec/fixtures/cassettes/runs_abort_run.json +1 -1
  34. data/spec/fixtures/cassettes/runs_authorize.json +1 -1
  35. data/spec/fixtures/cassettes/runs_get_project_runs.json +1 -1
  36. data/spec/fixtures/cassettes/runs_start_run.json +1 -1
  37. data/spec/fixtures/test.apk +0 -0
  38. data/spec/label_groups_spec.rb +2 -2
  39. data/spec/projects_spec.rb +1 -1
  40. data/spec/runs_spec.rb +6 -4
  41. data/spec/spec_helper.rb +2 -2
  42. data/testdroid-api-client.gemspec +1 -1
  43. metadata +4 -5
  44. data/lib/testdroid_api/client.rb +0 -161
  45. data/spec/fixtures/apk.apk +0 -0
Binary file
@@ -18,7 +18,7 @@ describe TestdroidAPI::LabelGroups do
18
18
 
19
19
  it 'create label group' do
20
20
  VCR.use_cassette(File.basename(__FILE__).split('_spec')[0] + '_create') do
21
- label_group = client_local_host.label_groups.create({:params => {:displayName => 'Empty', :name => 'empty'}})
21
+ label_group = client_local_host.label_groups.create({:displayName => 'Empty', :name => 'empty'})
22
22
  LG_ID = label_group.id
23
23
  end
24
24
  end
@@ -27,7 +27,7 @@ describe TestdroidAPI::LabelGroups do
27
27
  VCR.use_cassette(File.basename(__FILE__).split('_spec')[0] + '_get_one') do
28
28
  label_group = client_local_host.label_groups.get(LG_ID)
29
29
  expect(label_group.id).to be(LG_ID)
30
- expect(label_group.display_name).to eq("Empty")
30
+ expect(label_group.display_name).to eq('Empty')
31
31
  end
32
32
  end
33
33
 
@@ -11,7 +11,7 @@ describe TestdroidAPI::Project do
11
11
 
12
12
  it 'create project' do
13
13
  VCR.use_cassette(File.basename(__FILE__).split('_spec')[0] + '_create') do
14
- project = @user.projects.create({:params => {:name => 'My Project'}})
14
+ project = @user.projects.create({:name => 'My Project'})
15
15
  expect(project.name).to eq 'My Project'
16
16
  P_ID = project.id
17
17
  end
data/spec/runs_spec.rb CHANGED
@@ -12,11 +12,13 @@ describe TestdroidAPI::Project do
12
12
 
13
13
  it 'start test run' do
14
14
  VCR.use_cassette(File.basename(__FILE__).split('_spec')[0] + '_start_run') do
15
- framework_id = @user.available_frameworks.list({:filter => "s_osType_eq_ANDROID;s_name_like_%AppCrawler"})[0].id
16
- app_file_id = @user.files.upload(File.join(File.dirname(__FILE__), 'fixtures', 'apk.apk')).id
15
+ framework_id = @user.available_frameworks.list({:filter => "s_osType_eq_ANDROID;s_name_like_%Android Instrumentation"})[0].id
16
+ app_file_id = @user.files.upload(File.join(File.dirname(__FILE__), 'fixtures', 'app.apk')).id
17
+ test_file_id = @user.files.upload(File.join(File.dirname(__FILE__), 'fixtures', 'test.apk')).id
17
18
 
18
19
  test_run = @user.runs.create("{\"osType\": \"ANDROID\", \"projectName\": \"My new Project\",
19
- \"frameworkId\":#{framework_id}, \"files\": [{\"id\": #{app_file_id}, \"action\": \"INSTALL\" }]}")
20
+ \"frameworkId\":#{framework_id}, \"files\": [{\"id\": #{app_file_id}, \"action\": \"INSTALL\" },
21
+ {\"id\": #{test_file_id}, \"action\": \"RUN_TEST\" }]}")
20
22
 
21
23
  P_ID = test_run.project_id
22
24
  TR_ID = test_run.id
@@ -26,7 +28,7 @@ describe TestdroidAPI::Project do
26
28
  it 'get project test runs' do
27
29
  VCR.use_cassette(File.basename(__FILE__).split('_spec')[0] + '_get_project_runs') do
28
30
  test_runs = @user.projects.get(P_ID).runs
29
- expect(test_runs.total).to eq(1)
31
+ expect(test_runs.total).to satisfy {|n| n > 0}
30
32
  end
31
33
  end
32
34
 
data/spec/spec_helper.rb CHANGED
@@ -20,14 +20,14 @@ end
20
20
 
21
21
  def client
22
22
  @client ||= begin
23
- client = Client.new('defaultuser', 'password')
23
+ client = ApikeyClient.new('API_KEY')
24
24
  rescue Exception => e
25
25
  end
26
26
  end
27
27
 
28
28
  def client_local_host(local_cloud='http://localhost/testdroid-cloud')
29
29
  @client_local_host ||= begin
30
- client_local_host = Client.new('admin@localhost', 'admin', local_cloud)
30
+ client_local_host = ApikeyClient.new('API_KEY', local_cloud)
31
31
  rescue Exception => e
32
32
  end
33
33
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "testdroid-api-client"
3
- s.version = "0.5.0"
3
+ s.version = "0.6.0"
4
4
 
5
5
 
6
6
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testdroid-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sakari Rautiainen
@@ -192,7 +192,6 @@ files:
192
192
  - lib/testdroid_api/admin_device_statuses.rb
193
193
  - lib/testdroid_api/admin_devices.rb
194
194
  - lib/testdroid_api/apikey_client.rb
195
- - lib/testdroid_api/client.rb
196
195
  - lib/testdroid_api/cloud_list_resource.rb
197
196
  - lib/testdroid_api/cloud_resource.rb
198
197
  - lib/testdroid_api/device_groups.rb
@@ -214,7 +213,7 @@ files:
214
213
  - spec/client_spec.rb
215
214
  - spec/device_groups_spec.rb
216
215
  - spec/files_spec.rb
217
- - spec/fixtures/apk.apk
216
+ - spec/fixtures/app.apk
218
217
  - spec/fixtures/cassettes/device_groups_authorize.json
219
218
  - spec/fixtures/cassettes/device_groups_create.json
220
219
  - spec/fixtures/cassettes/device_groups_delete.json
@@ -243,6 +242,7 @@ files:
243
242
  - spec/fixtures/cassettes/runs_start_run.json
244
243
  - spec/fixtures/data.txt
245
244
  - spec/fixtures/data2.txt
245
+ - spec/fixtures/test.apk
246
246
  - spec/label_groups_spec.rb
247
247
  - spec/projects_spec.rb
248
248
  - spec/runs_spec.rb
@@ -267,8 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
267
267
  - !ruby/object:Gem::Version
268
268
  version: '0'
269
269
  requirements: []
270
- rubyforge_project:
271
- rubygems_version: 2.7.7
270
+ rubygems_version: 3.3.5
272
271
  signing_key:
273
272
  specification_version: 3
274
273
  summary: Testdroid API Client!
@@ -1,161 +0,0 @@
1
- module TestdroidAPI
2
-
3
- class Client
4
- attr_reader :config
5
- attr_accessor :logger
6
- attr_reader :token
7
-
8
- API_VERSION = 'api/v2'
9
- CLOUD_ENDPOINT = 'https://cloud.bitbar.com'
10
-
11
- def initialize(username, password, cloud_url = CLOUD_ENDPOINT, logger = nil)
12
- # Instance variables
13
- @username = username
14
- @password = password
15
- @cloud_url = cloud_url
16
- @logger = logger
17
-
18
- if @logger.nil?
19
- @logger = Logger.new(STDOUT)
20
- @logger.info("Logger is not defined => output to STDOUT")
21
- end
22
- end
23
-
24
- def authorize
25
- @client = OAuth2::Client.new(
26
- 'testdroid-cloud-api', nil, :site => @cloud_url, :token_url => 'oauth/token') do |faraday|
27
- faraday.request :multipart
28
- faraday.request :url_encoded
29
- faraday.response :logger, @logger
30
- faraday.adapter Faraday.default_adapter
31
- end
32
-
33
- @token = @client.password.get_token(@username, @password)
34
-
35
- if @cloud_user.nil?
36
- @cloud_user = TestdroidAPI::User.new("/#{API_VERSION}/me", self).refresh
37
- @cloud_user = TestdroidAPI::User.new("/#{API_VERSION}/users/#{@cloud_user.id}", self).refresh
38
-
39
- end
40
- @cloud_user
41
- end
42
-
43
- def mime_for(path)
44
- mime = MIME::Types.type_for path
45
- mime.empty? ? 'text/plain' : mime[0].content_type
46
- end
47
-
48
- def upload(uri, filename)
49
- begin
50
- @token = @token.refresh! if @token.expired?
51
- connection = @token.client.connection
52
- payload = {:file => Faraday::UploadIO.new(filename, mime_for(filename))}
53
- response = connection.post(@cloud_url + "#{uri}", payload, @token.headers)
54
- rescue => e
55
- @logger.error e
56
- return nil
57
- end
58
- JSON.parse(response.body)
59
- end
60
-
61
- def post(uri, params = {})
62
-
63
- @token = @token.refresh! if @token.expired?
64
-
65
- begin
66
- resp = @token.post("#{@cloud_url}#{uri}", params)
67
- rescue => e
68
- @logger.error "Failed to post resource #{uri} #{e}"
69
- return nil
70
- end
71
-
72
- if resp.body.nil? || resp.body.length == 0
73
- return nil
74
- end
75
-
76
- JSON.parse(resp.body)
77
- end
78
-
79
- def get(uri, params = {})
80
-
81
- @token = @token.refresh! if @token.expired?
82
-
83
- begin
84
- resp = @token.get(@cloud_url + "#{uri}", :params => params)
85
- rescue => e
86
- @logger.error "Failed to get resource #{uri} #{e}"
87
- return nil
88
- end
89
- JSON.parse(resp.body)
90
- end
91
-
92
- def delete(uri)
93
-
94
- @token = @token.refresh! if @token.expired?
95
-
96
- begin
97
- resp = @token.delete(@cloud_url + "#{uri}")
98
- rescue => e
99
- @logger.error "Failed to delete resource #{uri} #{e}"
100
- return nil
101
- end
102
-
103
- if resp.status != 204
104
- @logger.error "Failed to delete resource #{uri} #{e}"
105
- else
106
- @logger.info "response: #{resp.status}"
107
- end
108
- end
109
-
110
- def download(uri, file_name)
111
- begin
112
- @token = @token.refresh! if @token.expired?
113
- ::File.open(file_name, "w+b") do |file|
114
- full_uri = uri.start_with?(@cloud_url) ? uri : @cloud_url + uri
115
- resp = @token.get(full_uri)
116
- file.write(resp.body)
117
- end
118
- rescue => e
119
- @logger.error "Failed to get resource #{uri} #{e}"
120
- return nil
121
- end
122
- end
123
-
124
- # Resources
125
-
126
- # public read-only
127
-
128
- def info
129
- TestdroidAPI::CloudResource.new("/#{API_VERSION}/info", self, "info")
130
- end
131
-
132
- def devices
133
- TestdroidAPI::Devices.new("/#{API_VERSION}/devices", self)
134
- end
135
-
136
- def label_groups
137
- TestdroidAPI::LabelGroups.new("/#{API_VERSION}/label-groups", self)
138
- end
139
-
140
- # user read-write
141
-
142
- def me
143
- TestdroidAPI::User.new("/#{API_VERSION}/me", self).load
144
- end
145
-
146
- def properties
147
- TestdroidAPI::Properties.new("/#{API_VERSION}/properties", self)
148
- end
149
-
150
- def device_session_connections
151
- TestdroidAPI::DeviceSessionConnections.new("/#{API_VERSION}/device-session-connections", self)
152
- end
153
-
154
- # admin only
155
-
156
- def admin
157
- TestdroidAPI::Admin.new("/#{API_VERSION}/admin", self)
158
- end
159
-
160
- end
161
- end
Binary file