opencpu 0.7.8 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://public.opencpu.org/ocpu/library/base/R/identity/json
6
+ body:
7
+ encoding: UTF-8
8
+ string: x=data.frame(x%3D1%2Cy%3D1)
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/1.4.6 (Ubuntu)
17
+ Date:
18
+ - Tue, 14 Oct 2014 19:01:39 GMT
19
+ Content-Type:
20
+ - application/json
21
+ Location:
22
+ - https://public.opencpu.org/ocpu/tmp/x0c19f32080/
23
+ Transfer-Encoding:
24
+ - chunked
25
+ Connection:
26
+ - keep-alive
27
+ Cache-Control:
28
+ - max-age=300, public
29
+ X-Ocpu-Session:
30
+ - x0c19f32080
31
+ Access-Control-Allow-Origin:
32
+ - "*"
33
+ Access-Control-Allow-Headers:
34
+ - Origin, Content-Type, Accept, Accept-Encoding, Cache-Control
35
+ Access-Control-Expose-Headers:
36
+ - Location, X-ocpu-session, Content-Type, Cache-Control
37
+ X-Ocpu-R:
38
+ - R version 3.1.1 (2014-07-10)
39
+ X-Ocpu-Locale:
40
+ - en_US.UTF-8
41
+ X-Ocpu-Time:
42
+ - 2014-10-14 12:01:39 PDT
43
+ X-Ocpu-Version:
44
+ - 1.4.4
45
+ X-Ocpu-Server:
46
+ - rApache
47
+ X-Ocpu-Cache:
48
+ - MISS
49
+ body:
50
+ encoding: UTF-8
51
+ string: |+
52
+ [
53
+ {
54
+ "x": 1,
55
+ "y": 1
56
+ }
57
+ ]
58
+
59
+ http_version:
60
+ recorded_at: Tue, 14 Oct 2014 19:01:39 GMT
61
+ recorded_with: VCR 2.9.3
@@ -58,7 +58,7 @@ describe OpenCPU::Client do
58
58
 
59
59
  it 'returns a DelayedCalculation with correct path' do
60
60
  VCR.use_cassette :prepare do
61
- expect(delayed_calculation.location).to eq "https://public.opencpu.org/ocpu/tmp/x0a79915480/"
61
+ expect(delayed_calculation.location).to match "https://public.opencpu.org/ocpu/tmp/x[0-9a-f]+/"
62
62
  end
63
63
  end
64
64
  end
@@ -70,9 +70,9 @@ describe OpenCPU::Client do
70
70
  let(:client) { described_class.new }
71
71
 
72
72
  it 'is used to quickly return JSON results' do
73
- VCR.use_cassette :animation_flip_coin do
73
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
74
74
  response = client.execute(:animation, 'flip.coin')
75
- expect(response).to eq "freq" => [0.56, 0.44], "nmax" => [50]
75
+ expect(response).to include('freq', 'nmax')
76
76
  end
77
77
  end
78
78
 
@@ -89,6 +89,36 @@ describe OpenCPU::Client do
89
89
  end
90
90
  end
91
91
 
92
+ context 'url encoded request' do
93
+ it 'sends the parameters url_encoded' do
94
+ VCR.use_cassette :url_encoded_request do |cassette|
95
+ response = client.execute(:base, :identity, format: nil, data: { x: 'data.frame(x=1,y=1)' })
96
+ params = cassette.serializable_hash['http_interactions'][0]['request']['body']['string']
97
+ expect(params).to eq "x=data.frame(x%3D1%2Cy%3D1)"
98
+ end
99
+ end
100
+ it 'accepts R-code as parameters' do
101
+ VCR.use_cassette :url_encoded_request do |cassette|
102
+ response = client.execute(:base, :identity, format: nil, data: { x: 'data.frame(x=1,y=1)' })
103
+ expect(response).to eq [{"x"=>1, "y"=>1}]
104
+ end
105
+ end
106
+ end
107
+
108
+ context 'multipart form / file uploads' do
109
+ it "works" do
110
+ skip # vcr is broken for file uploads https://github.com/vcr/vcr/issues/441
111
+ VCR.use_cassette :multi_part_request do |cassette|
112
+ # VCR.turn_off!
113
+ # WebMock.disable!
114
+ response = client.execute(:utils, 'read.csv', format: nil, data: { file: File.new('spec/fixtures/test.csv') })
115
+ # WebMock.enable!
116
+ # VCR.turn_on!
117
+ expect(response).to eq [{"head1"=>1, "head2"=>2, "head3"=>3}, {"head1"=>4, "head2"=>5, "head3"=>6}]
118
+ end
119
+ end
120
+ end
121
+
92
122
  context 'user packages' do
93
123
  before do
94
124
  OpenCPU.configure do |config|
@@ -98,6 +128,7 @@ describe OpenCPU::Client do
98
128
  config.timeout = 123
99
129
  end
100
130
  end
131
+ after { OpenCPU.reset_configuration! }
101
132
  let(:client) { described_class.new }
102
133
 
103
134
  it "can access user packages" do
@@ -131,4 +162,14 @@ describe OpenCPU::Client do
131
162
  end
132
163
  end
133
164
  end
165
+
166
+ describe '#request_options' do
167
+ it 'uses verify_ssl setting' do
168
+ expect(described_class.new.send(:request_options, {}, nil)[:verify]).to be_truthy
169
+ OpenCPU.configure do |config|
170
+ config.verify_ssl = false
171
+ end
172
+ expect(described_class.new.send(:request_options, {}, nil)[:verify]).to be_falsy
173
+ end
174
+ end
134
175
  end
@@ -89,4 +89,16 @@ describe OpenCPU::Configuration do
89
89
  expect(config.fake_responses).to eq({})
90
90
  end
91
91
  end
92
+
93
+ describe "#verify_ssl" do
94
+ let(:config) { described_class.new }
95
+ it "defaults to true" do
96
+ expect(config.verify_ssl).to be_truthy
97
+ end
98
+
99
+ it 'can be changed' do
100
+ config.verify_ssl = false
101
+ expect(config.verify_ssl).to be_falsy
102
+ end
103
+ end
92
104
  end
@@ -29,43 +29,31 @@ describe OpenCPU::DelayedCalculation do
29
29
  end
30
30
 
31
31
  let(:location) { "https://public.opencpu.org/ocpu/tmp/x09dd995a16/" }
32
- let(:resources) do
33
- [
34
- "/ocpu/tmp/x09dd995a16/R/.val",
35
- "/ocpu/tmp/x09dd995a16/graphics/1",
36
- "/ocpu/tmp/x09dd995a16/graphics/2",
37
- "/ocpu/tmp/x09dd995a16/graphics/3",
38
- "/ocpu/tmp/x09dd995a16/graphics/4",
39
- "/ocpu/tmp/x09dd995a16/source",
40
- "/ocpu/tmp/x09dd995a16/console",
41
- "/ocpu/tmp/x09dd995a16/info"
42
- ]
43
- end
44
- let(:delayed_calculation) { described_class.new location, resources }
32
+ let(:delayed_calculation) { OpenCPU::client.prepare('animation', 'flip.coin') }
45
33
 
46
34
  describe "#graphics" do
47
35
 
48
36
  it 'defines methods to access graphic functions' do
49
- VCR.use_cassette :animation_flip_coin do
37
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
50
38
  expect { delayed_calculation.graphics }.not_to raise_error
51
39
  expect { delayed_calculation.stdout }.to raise_error OpenCPU::ResponseNotAvailableError
52
40
  end
53
41
  end
54
42
 
55
43
  it "returns a SVG by default" do
56
- VCR.use_cassette :animation_flip_coin do
44
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
57
45
  expect(delayed_calculation.graphics).to include 'svg xmlns'
58
46
  end
59
47
  end
60
48
 
61
49
  it "can return a PNG" do
62
- VCR.use_cassette :animation_flip_coin do
50
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
63
51
  expect(delayed_calculation.graphics(0, :png)).to include 'PNG'
64
52
  end
65
53
  end
66
54
 
67
55
  it "does not support formats except PNG and SVG" do
68
- VCR.use_cassette :animation_flip_coin do
56
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
69
57
  expect { delayed_calculation.graphics(0, :svg) }.not_to raise_error
70
58
  expect { delayed_calculation.graphics(0, :png) }.not_to raise_error
71
59
  expect { delayed_calculation.graphics(0, :foo) }.to raise_error OpenCPU::UnsupportedFormatError
@@ -81,15 +69,15 @@ describe OpenCPU::DelayedCalculation do
81
69
  describe 'standard getters' do
82
70
  describe '#value' do
83
71
  it "returns raw R calculation result" do
84
- VCR.use_cassette :animation_flip_coin do
85
- expect(delayed_calculation.value).to eq "$freq\n 1 2 \n0.52 0.48 \n\n$nmax\n[1] 50"
72
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
73
+ expect(delayed_calculation.value).to include "$freq"
86
74
  end
87
75
  end
88
76
  end
89
77
 
90
78
  describe '#stdout' do
91
79
  it "returns cached stdout" do
92
- VCR.use_cassette :animation_flip_coin do
80
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
93
81
  expect { delayed_calculation.stdout }.to raise_error OpenCPU::ResponseNotAvailableError
94
82
  end
95
83
  end
@@ -97,7 +85,7 @@ describe OpenCPU::DelayedCalculation do
97
85
 
98
86
  describe '#warnings' do
99
87
  it 'returns cached warnings' do
100
- VCR.use_cassette :animation_flip_coin do
88
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
101
89
  expect { delayed_calculation.warnings }.to raise_error OpenCPU::ResponseNotAvailableError
102
90
  end
103
91
  end
@@ -105,7 +93,7 @@ describe OpenCPU::DelayedCalculation do
105
93
 
106
94
  describe '#info' do
107
95
  it 'returns cached info' do
108
- VCR.use_cassette :animation_flip_coin do
96
+ VCR.use_cassette :animation_flip_coin, record: :new_episodes do
109
97
  expect(delayed_calculation.info).to include("R version")
110
98
  end
111
99
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opencpu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.8
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Malykh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-14 00:00:00.000000000 Z
11
+ date: 2014-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yajl-ruby
@@ -206,10 +206,12 @@ files:
206
206
  - lib/opencpu/delayed_calculation.rb
207
207
  - lib/opencpu/version.rb
208
208
  - opencpu.gemspec
209
+ - spec/fixtures/test.csv
209
210
  - spec/fixtures/vcr_cassettes/animation_flip_coin.yml
210
211
  - spec/fixtures/vcr_cassettes/digest_hmac.yml
211
212
  - spec/fixtures/vcr_cassettes/digest_hmac_no_parameters.yml
212
213
  - spec/fixtures/vcr_cassettes/prepare.yml
214
+ - spec/fixtures/vcr_cassettes/url_encoded_request.yml
213
215
  - spec/fixtures/vcr_cassettes/user_digest_hmac.yml
214
216
  - spec/lib/opencpu/client_spec.rb
215
217
  - spec/lib/opencpu/configuration_spec.rb
@@ -241,10 +243,12 @@ signing_key:
241
243
  specification_version: 4
242
244
  summary: Wrapper around OpenCPU REST API
243
245
  test_files:
246
+ - spec/fixtures/test.csv
244
247
  - spec/fixtures/vcr_cassettes/animation_flip_coin.yml
245
248
  - spec/fixtures/vcr_cassettes/digest_hmac.yml
246
249
  - spec/fixtures/vcr_cassettes/digest_hmac_no_parameters.yml
247
250
  - spec/fixtures/vcr_cassettes/prepare.yml
251
+ - spec/fixtures/vcr_cassettes/url_encoded_request.yml
248
252
  - spec/fixtures/vcr_cassettes/user_digest_hmac.yml
249
253
  - spec/lib/opencpu/client_spec.rb
250
254
  - spec/lib/opencpu/configuration_spec.rb