ro-crate 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/test/reader_test.rb CHANGED
@@ -279,4 +279,28 @@ class ReaderTest < Test::Unit::TestCase
279
279
  assert entity.has_type?('RepositoryCollection')
280
280
  assert entity.payload.empty?
281
281
  end
282
+
283
+ test 'reading RO-Crate with absolute URI files/directories' do
284
+ crate = ROCrate::Reader.read(fixture_file('uri_heavy_crate').path)
285
+
286
+ dir = crate.get('nih:sha-256;f70e-eb2e-89d0-b3dc-5c99-8541-fa4b-6e64-a194-cf9d-ebd8-ca58-24e7-c47a-553f-86fa;c/')
287
+ assert dir
288
+ assert dir.is_a?(ROCrate::Directory)
289
+ assert dir.remote?
290
+ assert_empty dir.payload
291
+
292
+ file = crate.get('nih:sha-256;3a2c-8d14-a40b-3755-4abc-5af8-a56d-ba3a-e159-d688-c9b3-f169-6751-4b88-fbd2-6a9f;7')
293
+ assert file
294
+ assert file.is_a?(ROCrate::File)
295
+ assert file.remote?
296
+ assert_empty file.payload
297
+
298
+ real_file = crate.get('main.nf')
299
+ assert real_file
300
+ assert real_file.is_a?(ROCrate::File)
301
+ refute real_file.remote?
302
+ assert_not_empty real_file.payload
303
+ refute real_file.payload.values.first.remote?
304
+ refute real_file.payload.values.first.directory?
305
+ end
282
306
  end
data/test/writer_test.rb CHANGED
@@ -227,4 +227,39 @@ class WriterTest < Test::Unit::TestCase
227
227
  end
228
228
  end
229
229
  end
230
+
231
+ test 'write crate with remote files and directories' do
232
+ orig = ROCrate::Reader.read(fixture_file('uri_heavy_crate').path)
233
+ Tempfile.create do |file|
234
+ ROCrate::Writer.new(orig).write_zip(file)
235
+
236
+ Zip::File.open(file) do |zipfile|
237
+ refute zipfile.find_entry('nih:sha-256;3a2c-8d14-a40b-3755-4abc-5af8-a56d-ba3a-e159-d688-c9b3-f169-6751-4b88-fbd2-6a9f;7')
238
+ end
239
+
240
+ file.rewind
241
+
242
+ crate = ROCrate::Reader.read(file)
243
+
244
+ dir = crate.get('nih:sha-256;f70e-eb2e-89d0-b3dc-5c99-8541-fa4b-6e64-a194-cf9d-ebd8-ca58-24e7-c47a-553f-86fa;c/')
245
+ assert dir
246
+ assert dir.is_a?(ROCrate::Directory)
247
+ assert dir.remote?
248
+ assert_empty dir.payload
249
+
250
+ file = crate.get('nih:sha-256;3a2c-8d14-a40b-3755-4abc-5af8-a56d-ba3a-e159-d688-c9b3-f169-6751-4b88-fbd2-6a9f;7')
251
+ assert file
252
+ assert file.is_a?(ROCrate::File)
253
+ assert file.remote?
254
+ assert_empty file.payload
255
+
256
+ real_file = crate.get('main.nf')
257
+ assert real_file
258
+ assert real_file.is_a?(ROCrate::File)
259
+ refute real_file.remote?
260
+ assert_not_empty real_file.payload
261
+ refute real_file.payload.values.first.remote?
262
+ refute real_file.payload.values.first.directory?
263
+ end
264
+ end
230
265
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ro-crate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Finn Bacall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-06 00:00:00.000000000 Z
11
+ date: 2022-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -217,6 +217,9 @@ files:
217
217
  - test/fixtures/unlinked_entity_crate/test/test1/input.bed
218
218
  - test/fixtures/unlinked_entity_crate/test/test1/output_exp.bed
219
219
  - test/fixtures/unlinked_entity_crate/test/test1/sort-and-change-case-test.yml
220
+ - test/fixtures/uri_heavy_crate/main.nf
221
+ - test/fixtures/uri_heavy_crate/ro-crate-metadata.json
222
+ - test/fixtures/uri_heavy_crate/ro-crate-preview.html
220
223
  - test/fixtures/workflow-0.2.0.zip
221
224
  - test/fixtures/workflow-0.2.0/Dockerfile
222
225
  - test/fixtures/workflow-0.2.0/README.md