apidae 0.9.30 → 0.9.33

Sign up to get free protection for your applications and to get access to all the features.
@@ -153,6 +153,29 @@ module Apidae
153
153
  assert_equal 0, Selection.count
154
154
  end
155
155
 
156
+ test "object deletion cancelled if used by another project" do
157
+ proj = Project.create(apidae_id: 123)
158
+ other_proj = Project.create(apidae_id: 456)
159
+ sel = Selection.create(apidae_id: 49063, apidae_project_id: proj.id, label: 'Sélection 2', reference: 'selection-2')
160
+ other_sel = Selection.create(apidae_id: 49999, apidae_project_id: other_proj.id, label: 'Sélection 99', reference: 'selection-99')
161
+ sel.objects << Obj.create(apidae_id: 503, title: 'Société des violoncellistes aixois')
162
+ sel.objects << Obj.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
163
+ other_sel.objects << Obj.find_by_apidae_id(504)
164
+
165
+ assert_equal 2, sel.objects.count
166
+ assert_equal 1, other_sel.objects.count
167
+
168
+ selections_json = File.read('test/data/shared_selections.json')
169
+ FileImport.add_or_update_selections(proj, selections_json, @result)
170
+ deletion_json = File.read('test/data/deletion.json')
171
+ FileImport.delete_objects(deletion_json, @result)
172
+
173
+ assert_equal 2, Obj.count
174
+ assert_equal({created: 0, updated: 0, deleted: 1, selections:
175
+ [{:apidae_id=>49063, :reference=>"selection-2", :objects=>1}]}, @result)
176
+ assert_equal 1, other_sel.objects.count
177
+ end
178
+
156
179
  test "full import process" do
157
180
  Obj.create(apidae_id: 123, title: 'Objet à supprimer')
158
181
  Obj.create(apidae_id: 4826186, title: 'Objet à mettre à jour')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apidae
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.30
4
+ version: 0.9.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Baptiste Vilain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-21 00:00:00.000000000 Z
11
+ date: 2022-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -194,6 +194,7 @@ files:
194
194
  - test/data/hot_fr_en.json
195
195
  - test/data/json_export.zip
196
196
  - test/data/selections.json
197
+ - test/data/shared_selections.json
197
198
  - test/data/structure.json
198
199
  - test/data/update_selections.json
199
200
  - test/dummy/README.rdoc
@@ -269,8 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
269
270
  - !ruby/object:Gem::Version
270
271
  version: '0'
271
272
  requirements: []
272
- rubyforge_project:
273
- rubygems_version: 2.6.13
273
+ rubygems_version: 3.1.6
274
274
  signing_key:
275
275
  specification_version: 4
276
276
  summary: A Ruby on Rails engine for projects that involve Apidae data
@@ -336,6 +336,7 @@ test_files:
336
336
  - test/controllers/apidae/dashboard_controller_test.rb
337
337
  - test/controllers/apidae/references_controller_test.rb
338
338
  - test/controllers/apidae/import_controller_test.rb
339
+ - test/data/shared_selections.json
339
340
  - test/data/equ_groups.json
340
341
  - test/data/update_selections.json
341
342
  - test/data/json_export.zip