MuranoCLI 3.2.0.beta.9 → 3.2.1.pre.beta.3
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/Rakefile +5 -0
- data/dockers/README.rst +7 -0
- data/dockers/RELEASE.rst +6 -3
- data/dockers/docker-test.sh +45 -17
- data/docs/completions/murano_completion-bash +211 -86
- data/lib/MrMurano/Account.rb +72 -4
- data/lib/MrMurano/Business.rb +163 -2
- data/lib/MrMurano/Commander-Entry.rb +1 -2
- data/lib/MrMurano/Config.rb +19 -18
- data/lib/MrMurano/Content.rb +26 -19
- data/lib/MrMurano/Gateway.rb +51 -10
- data/lib/MrMurano/ReCommander.rb +1 -1
- data/lib/MrMurano/Solution-Services.rb +80 -35
- data/lib/MrMurano/Solution-Users.rb +1 -0
- data/lib/MrMurano/SyncRoot.rb +10 -3
- data/lib/MrMurano/SyncUpDown-Core.rb +47 -36
- data/lib/MrMurano/SyncUpDown-Item.rb +46 -14
- data/lib/MrMurano/SyncUpDown.rb +22 -20
- data/lib/MrMurano/Webservice-Endpoint.rb +20 -18
- data/lib/MrMurano/Webservice-File.rb +63 -20
- data/lib/MrMurano/commands/business.rb +14 -1
- data/lib/MrMurano/commands/child.rb +148 -0
- data/lib/MrMurano/commands/devices.rb +298 -149
- data/lib/MrMurano/commands/element.rb +2 -1
- data/lib/MrMurano/commands/globals.rb +3 -0
- data/lib/MrMurano/commands/network.rb +152 -33
- data/lib/MrMurano/commands/sync.rb +2 -2
- data/lib/MrMurano/commands.rb +1 -0
- data/lib/MrMurano/verbosing.rb +13 -2
- data/lib/MrMurano/version.rb +1 -1
- data/spec/Account_spec.rb +43 -11
- data/spec/Content_spec.rb +5 -3
- data/spec/GatewayBase_spec.rb +1 -1
- data/spec/GatewayDevice_spec.rb +47 -8
- data/spec/GatewayResource_spec.rb +1 -1
- data/spec/GatewaySettings_spec.rb +1 -1
- data/spec/HttpAuthed_spec.rb +17 -3
- data/spec/ProjectFile_spec.rb +59 -23
- data/spec/Setting_spec.rb +2 -1
- data/spec/Solution-ServiceConfig_spec.rb +1 -1
- data/spec/Solution-ServiceEventHandler_spec.rb +27 -20
- data/spec/Solution-ServiceModules_spec.rb +7 -5
- data/spec/Solution-UsersRoles_spec.rb +7 -1
- data/spec/Solution_spec.rb +9 -1
- data/spec/SyncRoot_spec.rb +5 -5
- data/spec/SyncUpDown_spec.rb +262 -211
- data/spec/Verbosing_spec.rb +49 -8
- data/spec/Webservice-Cors_spec.rb +10 -1
- data/spec/Webservice-Endpoint_spec.rb +84 -65
- data/spec/Webservice-File_spec.rb +16 -11
- data/spec/Webservice-Setting_spec.rb +7 -1
- data/spec/_workspace.rb +9 -0
- data/spec/cmd_business_spec.rb +5 -10
- data/spec/cmd_common.rb +67 -32
- data/spec/cmd_config_spec.rb +9 -14
- data/spec/cmd_content_spec.rb +15 -26
- data/spec/cmd_cors_spec.rb +9 -12
- data/spec/cmd_device_spec.rb +31 -45
- data/spec/cmd_domain_spec.rb +12 -10
- data/spec/cmd_element_spec.rb +18 -17
- data/spec/cmd_exchange_spec.rb +1 -4
- data/spec/cmd_init_spec.rb +56 -72
- data/spec/cmd_keystore_spec.rb +17 -26
- data/spec/cmd_link_spec.rb +13 -17
- data/spec/cmd_password_spec.rb +9 -10
- data/spec/cmd_setting_application_spec.rb +95 -68
- data/spec/cmd_setting_product_spec.rb +59 -37
- data/spec/cmd_status_spec.rb +46 -84
- data/spec/cmd_syncdown_application_spec.rb +28 -50
- data/spec/cmd_syncdown_both_spec.rb +44 -93
- data/spec/cmd_syncdown_unit_spec.rb +858 -0
- data/spec/cmd_syncup_spec.rb +21 -56
- data/spec/cmd_token_spec.rb +0 -3
- data/spec/cmd_usage_spec.rb +15 -10
- data/spec/dry_run_formatter.rb +1 -0
- data/spec/fixtures/dumped_config +4 -4
- data/spec/spec_helper.rb +3 -0
- metadata +4 -2
data/spec/Verbosing_spec.rb
CHANGED
|
@@ -65,14 +65,19 @@ RSpec.describe MrMurano::Verbose do
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
it 'takes Array' do
|
|
68
|
+
stdout_saved = $stdout
|
|
68
69
|
$stdout = StringIO.new
|
|
69
70
|
|
|
70
71
|
@tst.tabularize([[1, 2, 3, 4, 5, 6, 7], [10, 20, 30, 40, 50, 60, 70]])
|
|
71
72
|
|
|
72
|
-
expect($stdout.string).to eq(
|
|
73
|
+
expect($stdout.string).to eq(
|
|
74
|
+
%("1","2","3","4","5","6","7"\n"10","20","30","40","50","60","70"\n)
|
|
75
|
+
)
|
|
76
|
+
$stdout = stdout_saved
|
|
73
77
|
end
|
|
74
78
|
|
|
75
79
|
it 'ducks to_a' do
|
|
80
|
+
stdout_saved = $stdout
|
|
76
81
|
$stdout = StringIO.new
|
|
77
82
|
|
|
78
83
|
class DuckToATest
|
|
@@ -82,10 +87,12 @@ RSpec.describe MrMurano::Verbose do
|
|
|
82
87
|
end
|
|
83
88
|
@tst.tabularize(DuckToATest.new)
|
|
84
89
|
|
|
85
|
-
expect($stdout.string).to eq("12\
|
|
90
|
+
expect($stdout.string).to eq(%("12"\n"13"\n))
|
|
91
|
+
$stdout = stdout_saved
|
|
86
92
|
end
|
|
87
93
|
|
|
88
94
|
it 'ducks each' do
|
|
95
|
+
stdout_saved = $stdout
|
|
89
96
|
$stdout = StringIO.new
|
|
90
97
|
|
|
91
98
|
class DuckEachTest
|
|
@@ -96,7 +103,9 @@ RSpec.describe MrMurano::Verbose do
|
|
|
96
103
|
end
|
|
97
104
|
@tst.tabularize(DuckEachTest.new)
|
|
98
105
|
|
|
99
|
-
expect($stdout.string).to eq("22\
|
|
106
|
+
expect($stdout.string).to eq(%("22"\n"44"\n))
|
|
107
|
+
|
|
108
|
+
$stdout = stdout_saved
|
|
100
109
|
end
|
|
101
110
|
|
|
102
111
|
context 'takes Hash' do
|
|
@@ -106,11 +115,26 @@ RSpec.describe MrMurano::Verbose do
|
|
|
106
115
|
title: 'Test output',
|
|
107
116
|
rows: [[1, 2, 3], [10, 20, 30]],
|
|
108
117
|
}
|
|
118
|
+
@stdout_saved = $stdout
|
|
109
119
|
$stdout = StringIO.new
|
|
110
120
|
end
|
|
121
|
+
|
|
122
|
+
after(:example) do
|
|
123
|
+
$stdout = @stdout_saved
|
|
124
|
+
end
|
|
125
|
+
|
|
111
126
|
it 'has all' do
|
|
112
127
|
@tst.tabularize(@hsh)
|
|
113
|
-
expect($stdout.string).to eq(
|
|
128
|
+
expect($stdout.string).to eq(
|
|
129
|
+
%("one","two","three"\n"1","2","3"\n"10","20","30"\n)
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
it 'not quoted' do
|
|
134
|
+
@tst.tabularize(@hsh, no_quotes: true)
|
|
135
|
+
expect($stdout.string).to eq(
|
|
136
|
+
%(one,two,three\n1,2,3\n10,20,30\n)
|
|
137
|
+
)
|
|
114
138
|
end
|
|
115
139
|
|
|
116
140
|
it 'is empty' do
|
|
@@ -121,43 +145,48 @@ RSpec.describe MrMurano::Verbose do
|
|
|
121
145
|
it 'no headers' do
|
|
122
146
|
@hsh.delete :headers
|
|
123
147
|
@tst.tabularize(@hsh)
|
|
124
|
-
expect($stdout.string).to eq("1,2,3\
|
|
148
|
+
expect($stdout.string).to eq(%("1","2","3"\n"10","20","30"\n))
|
|
125
149
|
end
|
|
126
150
|
|
|
127
151
|
it 'no title' do
|
|
128
152
|
@hsh.delete :title
|
|
129
153
|
@tst.tabularize(@hsh)
|
|
130
|
-
expect($stdout.string).to eq("one,two,three\
|
|
154
|
+
expect($stdout.string).to eq(%("one","two","three"\n"1","2","3"\n"10","20","30"\n))
|
|
131
155
|
end
|
|
132
156
|
|
|
133
157
|
it 'no rows' do
|
|
134
158
|
@hsh.delete :rows
|
|
135
159
|
@tst.tabularize(@hsh)
|
|
136
|
-
expect($stdout.string).to eq("one,two,three\n\n
|
|
160
|
+
expect($stdout.string).to eq(%("one","two","three"\n\n))
|
|
137
161
|
end
|
|
138
162
|
end
|
|
139
163
|
|
|
140
164
|
it "errors if it can't" do
|
|
165
|
+
stdout_saved = $stdout
|
|
141
166
|
$stdout = StringIO.new
|
|
142
167
|
# 2017-07-03: [lb] converted to class func.
|
|
143
168
|
#expect(@tst).to receive(:error).with(MrMurano::Verbose::TABULARIZE_DATA_FORMAT_ERROR).once
|
|
144
169
|
expect(MrMurano::Verbose).to receive(:error).with(MrMurano::Verbose::TABULARIZE_DATA_FORMAT_ERROR).once
|
|
145
170
|
@tst.tabularize(12)
|
|
171
|
+
$stdout = stdout_saved
|
|
146
172
|
end
|
|
147
173
|
|
|
148
174
|
it 'takes Array, to custom stream' do
|
|
175
|
+
stdout_saved = $stdout
|
|
149
176
|
$stdout = StringIO.new
|
|
150
177
|
outer = StringIO.new
|
|
151
178
|
|
|
152
179
|
@tst.tabularize([[1, 2, 3, 4, 5, 6, 7], [10, 20, 30, 40, 50, 60, 70]], outer)
|
|
153
180
|
|
|
154
|
-
expect(outer.string).to eq("1,2,3,4,5,6,7\
|
|
181
|
+
expect(outer.string).to eq(%("1","2","3","4","5","6","7"\n"10","20","30","40","50","60","70"\n))
|
|
155
182
|
expect($stdout.string).to eq('')
|
|
183
|
+
$stdout = stdout_saved
|
|
156
184
|
end
|
|
157
185
|
end
|
|
158
186
|
|
|
159
187
|
context 'generating a table' do
|
|
160
188
|
it 'takes Array' do
|
|
189
|
+
stdout_saved = $stdout
|
|
161
190
|
$stdout = StringIO.new
|
|
162
191
|
@tst.tabularize([[1, 2, 3, 4, 5, 6, 7], [10, 20, 30, 40, 50, 60, 70]])
|
|
163
192
|
expect($stdout.string).to eq(
|
|
@@ -167,6 +196,7 @@ RSpec.describe MrMurano::Verbose do
|
|
|
167
196
|
+----+----+----+----+----+----+----+
|
|
168
197
|
).gsub(/^\s+/, '')
|
|
169
198
|
)
|
|
199
|
+
$stdout = stdout_saved
|
|
170
200
|
end
|
|
171
201
|
|
|
172
202
|
context 'takes Hash' do
|
|
@@ -176,8 +206,14 @@ RSpec.describe MrMurano::Verbose do
|
|
|
176
206
|
title: 'Test output',
|
|
177
207
|
rows: [[1, 2, 3], [10, 20, 30]],
|
|
178
208
|
}
|
|
209
|
+
@stdout_saved = $stdout
|
|
179
210
|
$stdout = StringIO.new
|
|
180
211
|
end
|
|
212
|
+
|
|
213
|
+
after(:example) do
|
|
214
|
+
$stdout = @stdout_saved
|
|
215
|
+
end
|
|
216
|
+
|
|
181
217
|
it 'has all' do
|
|
182
218
|
@tst.tabularize(@hsh)
|
|
183
219
|
expect($stdout.string).to eq(
|
|
@@ -249,9 +285,14 @@ RSpec.describe MrMurano::Verbose do
|
|
|
249
285
|
one: 'three',
|
|
250
286
|
two: [{ one: 3 }, { one: 4 }],
|
|
251
287
|
}
|
|
288
|
+
@stdout_saved = $stdout
|
|
252
289
|
$stdout = StringIO.new
|
|
253
290
|
end
|
|
254
291
|
|
|
292
|
+
after(:example) do
|
|
293
|
+
$stdout = @stdout_saved
|
|
294
|
+
end
|
|
295
|
+
|
|
255
296
|
it 'outputs yaml' do
|
|
256
297
|
$cfg['tool.outformat'] = 'yaml'
|
|
257
298
|
@tst.outf(@data)
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
# Unauthorized copying of this file is strictly prohibited.
|
|
7
7
|
|
|
8
8
|
require 'tempfile'
|
|
9
|
+
require 'webmock'
|
|
9
10
|
require 'yaml'
|
|
11
|
+
|
|
10
12
|
require 'MrMurano/version'
|
|
11
13
|
require 'MrMurano/HttpAuthed'
|
|
12
14
|
require 'MrMurano/ProjectFile'
|
|
@@ -17,8 +19,8 @@ require 'HttpAuthed_spec'
|
|
|
17
19
|
|
|
18
20
|
RSpec.describe MrMurano::Webservice::Cors do
|
|
19
21
|
include_context 'WORKSPACE'
|
|
22
|
+
|
|
20
23
|
before(:example) do
|
|
21
|
-
MrMurano::SyncRoot.instance.reset
|
|
22
24
|
$cfg = MrMurano::Config.new
|
|
23
25
|
$cfg.load
|
|
24
26
|
$cfg['net.host'] = 'bizapi.hosted.exosite.io'
|
|
@@ -31,6 +33,10 @@ RSpec.describe MrMurano::Webservice::Cors do
|
|
|
31
33
|
@base_uri = 'https://bizapi.hosted.exosite.io/api:1/solution/XYZ/cors'
|
|
32
34
|
end
|
|
33
35
|
|
|
36
|
+
after(:example) do
|
|
37
|
+
WebMock.reset!
|
|
38
|
+
end
|
|
39
|
+
|
|
34
40
|
it 'initializes' do
|
|
35
41
|
uri = @srv.endpoint('/')
|
|
36
42
|
expect(uri.to_s).to eq("#{@base_uri}/")
|
|
@@ -58,6 +64,7 @@ RSpec.describe MrMurano::Webservice::Cors do
|
|
|
58
64
|
ret = @srv.fetch
|
|
59
65
|
expect(ret).to eq(cors)
|
|
60
66
|
end
|
|
67
|
+
|
|
61
68
|
it 'as a block' do
|
|
62
69
|
cors = {
|
|
63
70
|
origin: true,
|
|
@@ -109,6 +116,7 @@ RSpec.describe MrMurano::Webservice::Cors do
|
|
|
109
116
|
ret = @srv.fetch
|
|
110
117
|
expect(ret).to eq(cors)
|
|
111
118
|
end
|
|
119
|
+
|
|
112
120
|
it 'as a block' do
|
|
113
121
|
cors = {
|
|
114
122
|
origin: true,
|
|
@@ -149,6 +157,7 @@ RSpec.describe MrMurano::Webservice::Cors do
|
|
|
149
157
|
credentials: true,
|
|
150
158
|
}
|
|
151
159
|
end
|
|
160
|
+
|
|
152
161
|
it 'specified file' do
|
|
153
162
|
File.open(File.join(@project_dir, 'bob.yaml'), 'w') { |io| io << @cors.to_yaml }
|
|
154
163
|
stub_request(
|
|
@@ -16,11 +16,18 @@ require 'HttpAuthed_spec'
|
|
|
16
16
|
|
|
17
17
|
RSpec.describe MrMurano::Webservice::Endpoint do
|
|
18
18
|
include_context 'WORKSPACE'
|
|
19
|
+
|
|
19
20
|
before(:example) do
|
|
20
21
|
$cfg = MrMurano::Config.new
|
|
21
22
|
$cfg.load
|
|
22
23
|
$project = MrMurano::ProjectFile.new
|
|
23
24
|
$project.load
|
|
25
|
+
|
|
26
|
+
@pswd = create_instance_double_passwords
|
|
27
|
+
allow(@pswd).to receive(:get).and_return('built')
|
|
28
|
+
|
|
29
|
+
$cfg['user.name'] = 'bob'
|
|
30
|
+
|
|
24
31
|
$cfg['net.host'] = 'bizapi.hosted.exosite.io'
|
|
25
32
|
$cfg['application.id'] = 'XYZ'
|
|
26
33
|
stub_request_email_password
|
|
@@ -46,16 +53,21 @@ RSpec.describe MrMurano::Webservice::Endpoint do
|
|
|
46
53
|
content_type: 'application/json',
|
|
47
54
|
script: "--#ENDPOINT WEBSOCKET /api/v1/bar\nresponse.message = \"HI\"\n\n",
|
|
48
55
|
},
|
|
49
|
-
{
|
|
56
|
+
{
|
|
57
|
+
id: 'B76',
|
|
50
58
|
method: 'websocket',
|
|
51
59
|
path: '/api/v1/foo/{id}',
|
|
52
60
|
content_type: 'application/json',
|
|
53
|
-
script: "--#ENDPOINT WEBSOCKET /api/v1/foo/{id}\nresponse.message = \"HI\"\n\n-- BOB WAS HERE\n",
|
|
61
|
+
script: "--#ENDPOINT WEBSOCKET /api/v1/foo/{id}\nresponse.message = \"HI\"\n\n-- BOB WAS HERE\n",
|
|
62
|
+
},
|
|
54
63
|
]
|
|
55
64
|
stub_request(:get, @base_uri)
|
|
56
|
-
.with(
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
.with(
|
|
66
|
+
headers: {
|
|
67
|
+
'Authorization' => 'token TTTTTTTTTT',
|
|
68
|
+
'Content-Type' => 'application/json',
|
|
69
|
+
}
|
|
70
|
+
).to_return(body: body.to_json)
|
|
59
71
|
|
|
60
72
|
ret = @srv.list
|
|
61
73
|
expect(ret).to eq(body)
|
|
@@ -471,26 +483,29 @@ RSpec.describe MrMurano::Webservice::Endpoint do
|
|
|
471
483
|
end
|
|
472
484
|
end
|
|
473
485
|
|
|
474
|
-
context '
|
|
486
|
+
context 'to_remote_items' do
|
|
475
487
|
it 'reads one' do
|
|
476
488
|
Tempfile.open('foo') do |tio|
|
|
477
489
|
tio << %(--#ENDPOINT GET /one/two
|
|
478
490
|
return request
|
|
479
491
|
|
|
480
|
-
).gsub(
|
|
492
|
+
).gsub(/^ +/, '')
|
|
481
493
|
tio.close
|
|
482
494
|
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
495
|
+
want = [
|
|
496
|
+
{
|
|
497
|
+
content_type: 'application/json',
|
|
498
|
+
header: '--#ENDPOINT GET /one/two',
|
|
499
|
+
line_beg: 1,
|
|
500
|
+
line_end: 3,
|
|
501
|
+
local_path: Pathname.new(tio.path),
|
|
502
|
+
method: 'GET',
|
|
503
|
+
path: '/one/two',
|
|
504
|
+
script: "return request\n\n",
|
|
505
|
+
},
|
|
506
|
+
]
|
|
507
|
+
ret = @srv.to_remote_items(nil, tio.path)
|
|
508
|
+
expect(ret.collect(&:to_h)).to eq(want)
|
|
494
509
|
end
|
|
495
510
|
end
|
|
496
511
|
|
|
@@ -503,42 +518,43 @@ RSpec.describe MrMurano::Webservice::Endpoint do
|
|
|
503
518
|
|
|
504
519
|
--#ENDPOINT DELETE /three/two
|
|
505
520
|
return request
|
|
506
|
-
).gsub(
|
|
521
|
+
).gsub(/^ +/, '')
|
|
507
522
|
tio.close
|
|
508
523
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
)
|
|
524
|
+
want = [
|
|
525
|
+
{
|
|
526
|
+
content_type: 'application/json',
|
|
527
|
+
header: '--#ENDPOINT GET /one/two',
|
|
528
|
+
line_beg: 1,
|
|
529
|
+
line_end: 2,
|
|
530
|
+
local_path: Pathname.new(tio.path),
|
|
531
|
+
method: 'GET',
|
|
532
|
+
path: '/one/two',
|
|
533
|
+
script: "return request\n",
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
content_type: 'application/json',
|
|
537
|
+
header: '--#ENDPOINT PUT /one/two',
|
|
538
|
+
line_beg: 3,
|
|
539
|
+
line_end: 5,
|
|
540
|
+
local_path: Pathname.new(tio.path),
|
|
541
|
+
method: 'PUT',
|
|
542
|
+
path: '/one/two',
|
|
543
|
+
script: "return request\n\n",
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
content_type: 'application/json',
|
|
547
|
+
header: '--#ENDPOINT DELETE /three/two',
|
|
548
|
+
line_beg: 6,
|
|
549
|
+
line_end: 7,
|
|
550
|
+
local_path: Pathname.new(tio.path),
|
|
551
|
+
method: 'DELETE',
|
|
552
|
+
path: '/three/two',
|
|
553
|
+
script: "return request\n",
|
|
554
|
+
},
|
|
555
|
+
]
|
|
556
|
+
ret = @srv.to_remote_items(nil, tio.path)
|
|
557
|
+
expect(ret.collect(&:to_h)).to eq(want)
|
|
542
558
|
end
|
|
543
559
|
end
|
|
544
560
|
|
|
@@ -550,8 +566,8 @@ RSpec.describe MrMurano::Webservice::Endpoint do
|
|
|
550
566
|
).gsub(/^\s+/, '')
|
|
551
567
|
tio.close
|
|
552
568
|
|
|
553
|
-
ret = @srv.
|
|
554
|
-
expect(ret).to eq([])
|
|
569
|
+
ret = @srv.to_remote_items(nil, tio.path)
|
|
570
|
+
expect(ret.collect(&:to_h)).to eq([])
|
|
555
571
|
end
|
|
556
572
|
end
|
|
557
573
|
|
|
@@ -565,17 +581,20 @@ RSpec.describe MrMurano::Webservice::Endpoint do
|
|
|
565
581
|
).gsub(/^\s+/, '')
|
|
566
582
|
tio.close
|
|
567
583
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
584
|
+
want = [
|
|
585
|
+
{
|
|
586
|
+
content_type: 'application/json',
|
|
587
|
+
header: '--#ENDPOINT GET /one/two',
|
|
588
|
+
line_beg: 2,
|
|
589
|
+
line_end: 3,
|
|
590
|
+
local_path: Pathname.new(tio.path),
|
|
591
|
+
method: 'GET',
|
|
592
|
+
path: '/one/two',
|
|
593
|
+
script: "return request\n",
|
|
594
|
+
},
|
|
595
|
+
]
|
|
596
|
+
ret = @srv.to_remote_items(nil, tio.path)
|
|
597
|
+
expect(ret.collect(&:to_h)).to eq(want)
|
|
579
598
|
end
|
|
580
599
|
end
|
|
581
600
|
end
|
|
@@ -251,25 +251,30 @@ RSpec.describe MrMurano::Webservice::File do
|
|
|
251
251
|
end
|
|
252
252
|
end
|
|
253
253
|
|
|
254
|
-
context '
|
|
254
|
+
context 'to_remote_items' do
|
|
255
255
|
before(:example) do
|
|
256
256
|
FileUtils.mkpath(@project_dir + '/files')
|
|
257
257
|
@lp = Pathname.new(@project_dir + '/files/one.text')
|
|
258
258
|
@lp.open('w') { |io| io << %(Just some text) }
|
|
259
259
|
@lp = @lp.realpath
|
|
260
260
|
end
|
|
261
|
+
|
|
261
262
|
it 'gets item' do
|
|
262
263
|
prj = Pathname.new(@project_dir).realpath
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
264
|
+
want = [
|
|
265
|
+
MrMurano::Webservice::File::FileItem.new(
|
|
266
|
+
path: '/files/one.text',
|
|
267
|
+
mime_type: 'text/plain',
|
|
268
|
+
# 2018-04-16: Did backend change from SHA1 to MD5 hash function?
|
|
269
|
+
# You can calculate this with `sha1sum one.text`
|
|
270
|
+
#checksum: 'd1af3dadf08479a1d43b282f95d61dda8efda5e7'
|
|
271
|
+
# You can calculate this with `md5sum one.text`
|
|
272
|
+
checksum: 'e9ea4a5be73a09f541ad0b611083f0df',
|
|
273
|
+
size: %(Just some text).length,
|
|
274
|
+
),
|
|
275
|
+
]
|
|
276
|
+
ret = @srv.to_remote_items(prj, @lp)
|
|
277
|
+
expect(ret).to eq(want)
|
|
273
278
|
end
|
|
274
279
|
end
|
|
275
280
|
end
|