apidae 0.1.2 → 0.1.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.
@@ -0,0 +1,15 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ one:
4
+ status: MyString
5
+ oneshot: false
6
+ reset: false
7
+ file_url: MyString
8
+ project_id: 1
9
+
10
+ two:
11
+ status: MyString
12
+ oneshot: false
13
+ reset: false
14
+ file_url: MyString
15
+ project_id: 1
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Apidae
4
+ class ExportTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -2,8 +2,87 @@ require 'test_helper'
2
2
 
3
3
  module Apidae
4
4
  class FileImportTest < ActiveSupport::TestCase
5
- # test "the truth" do
6
- # assert true
7
- # end
8
- end
5
+ setup do
6
+ Apidae::Object.delete_all
7
+ Apidae::Selection.delete_all
8
+ @result = {created: 0, updated: 0, deleted: 0, selections: []}
9
+ end
10
+
11
+ test "new object insertion" do
12
+ objects_json = File.read('test/data/structure.json')
13
+ FileImport.add_or_update_objects(objects_json, @result)
14
+ assert_equal 1, Apidae::Object.count
15
+ new_obj = Apidae::Object.first
16
+ assert_equal 504, new_obj.apidae_id
17
+ assert_equal({created: 1, updated: 0, deleted: 0, selections: []}, @result)
18
+ end
19
+
20
+ test "existing object update" do
21
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
22
+ objects_json = File.read('test/data/structure.json')
23
+ FileImport.add_or_update_objects(objects_json, @result)
24
+ assert_equal 1, Apidae::Object.count
25
+ updated_obj = Apidae::Object.first
26
+ assert_equal 504, updated_obj.apidae_id
27
+ assert_equal 'Société des accordéonistes aixois', updated_obj.title
28
+ assert_equal({created: 0, updated: 1, deleted: 0, selections: []}, @result)
29
+ end
30
+
31
+ test "existing object deletion" do
32
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
33
+ objects_json = File.read('test/data/deletion.json')
34
+ FileImport.delete_objects(objects_json, @result)
35
+ assert_equal 0, Apidae::Object.count
36
+ assert_equal({created: 0, updated: 0, deleted: 1, selections: []}, @result)
37
+ end
38
+
39
+ test "new selection insertion" do
40
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
41
+ objects_json = File.read('test/data/selections.json')
42
+ FileImport.add_or_update_selections(objects_json, @result)
43
+ assert_equal 1, Apidae::Selection.count
44
+ new_sel = Apidae::Selection.first
45
+ assert_equal 49063, new_sel.apidae_id
46
+ assert_equal 'Sélection 1', new_sel.label
47
+ assert_equal 'selection-1', new_sel.reference
48
+ assert_equal({created: 0, updated: 0, deleted: 0,
49
+ selections: [{apidae_id: 49063, reference: 'selection-1', objects: 1}]}, @result)
50
+ end
51
+
52
+ test "existing selection update" do
53
+ obj = Apidae::Object.create(apidae_id: 503, title: 'Société des contrebassistes aixois')
54
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
55
+ sel = Apidae::Selection.create(apidae_id: 49063, label: 'Sélection 2', reference: 'selection-2')
56
+ sel.objects << obj
57
+ assert_equal 1, sel.objects.count
58
+ objects_json = File.read('test/data/update_selections.json')
59
+ FileImport.add_or_update_selections(objects_json, @result)
60
+ assert_equal 1, Apidae::Selection.count
61
+ assert_equal 49063, sel.apidae_id
62
+ assert_equal 'Sélection 2', sel.label
63
+ assert_equal 'selection-2', sel.reference
64
+ assert_equal({created: 0, updated: 0, deleted: 0,
65
+ selections: [{apidae_id: 49063, reference: 'selection-2', objects: 2}]}, @result)
66
+ end
67
+
68
+ test "existing selection deletion" do
69
+ Apidae::Selection.create(apidae_id: 49063, label: 'Sélection 3', reference: 'selection-3')
70
+ objects_json = File.read('test/data/delete_selections.json')
71
+ assert_equal 1, Apidae::Selection.count
72
+ FileImport.add_or_update_selections(objects_json, @result)
73
+ assert_equal 0, Apidae::Selection.count
74
+ end
75
+
76
+ test "full import process" do
77
+ Apidae::Object.create(apidae_id: 123, title: 'Objet à supprimer')
78
+ Apidae::Object.create(apidae_id: 4826186, title: 'Objet à mettre à jour')
79
+ result = FileImport.import('test/data/json_export.zip')
80
+ assert_equal 2, Apidae::Selection.all.count
81
+ assert_equal 5, Apidae::Object.all.count
82
+ assert_equal({created: 4, updated: 1, deleted: 1, selections: [
83
+ {apidae_id: 49063, reference: 'selection-1', objects: 2},
84
+ {apidae_id: 49073, reference: 'selection-2', objects: 3}
85
+ ]}, result)
86
+ end
87
+ end
9
88
  end
data/test/test_helper.rb CHANGED
@@ -17,5 +17,6 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
17
17
  if ActiveSupport::TestCase.respond_to?(:fixture_path=)
18
18
  ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
19
19
  ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
20
- ActiveSupport::TestCase.fixtures :all
20
+ # ActiveSupport::TestCase.fixtures :all
21
+ ActiveSupport::TestCase.fixtures []
21
22
  end
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.1.2
4
+ version: 0.1.3
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: 2017-07-30 00:00:00.000000000 Z
11
+ date: 2017-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.20'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubyzip
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.0
55
69
  description: To be completed
56
70
  email:
57
71
  - jbvilain@gmail.com
@@ -62,19 +76,27 @@ files:
62
76
  - MIT-LICENSE
63
77
  - README.rdoc
64
78
  - Rakefile
79
+ - app/assets/images/apidae/logo-apidae-grey.svg
65
80
  - app/assets/javascripts/apidae/application.js
66
81
  - app/assets/stylesheets/apidae/application.css
67
82
  - app/controllers/apidae/application_controller.rb
83
+ - app/controllers/apidae/dashboard_controller.rb
84
+ - app/controllers/apidae/import_controller.rb
68
85
  - app/controllers/apidae/objects_controller.rb
69
86
  - app/controllers/apidae/selections_controller.rb
70
87
  - app/helpers/apidae/application_helper.rb
88
+ - app/helpers/apidae/dashboard_helper.rb
89
+ - app/helpers/apidae/import_helper.rb
71
90
  - app/helpers/apidae/objects_helper.rb
72
91
  - app/helpers/apidae/selections_helper.rb
73
92
  - app/models/apidae/attached_file.rb
93
+ - app/models/apidae/export.rb
74
94
  - app/models/apidae/file_import.rb
75
95
  - app/models/apidae/object.rb
76
96
  - app/models/apidae/selection.rb
77
97
  - app/models/apidae/town.rb
98
+ - app/views/apidae/dashboard/index.html.erb
99
+ - app/views/apidae/import/callback.html.erb
78
100
  - app/views/apidae/objects/_form.html.erb
79
101
  - app/views/apidae/objects/edit.html.erb
80
102
  - app/views/apidae/objects/index.html.erb
@@ -97,13 +119,22 @@ files:
97
119
  - db/migrate/20170513205932_rename_objects_selections_table.rb
98
120
  - db/migrate/20170720161134_add_entity_data_to_objects.rb
99
121
  - db/migrate/20170730102424_create_apidae_file_imports.rb
122
+ - db/migrate/20171025075304_create_apidae_exports.rb
100
123
  - lib/apidae.rb
101
124
  - lib/apidae/engine.rb
102
125
  - lib/apidae/version.rb
103
126
  - lib/tasks/apidae_tasks.rake
104
127
  - test/apidae_test.rb
128
+ - test/controllers/apidae/dashboard_controller_test.rb
129
+ - test/controllers/apidae/import_controller_test.rb
105
130
  - test/controllers/apidae/objects_controller_test.rb
106
131
  - test/controllers/apidae/selections_controller_test.rb
132
+ - test/data/delete_selections.json
133
+ - test/data/deletion.json
134
+ - test/data/json_export.zip
135
+ - test/data/selections.json
136
+ - test/data/structure.json
137
+ - test/data/update_selections.json
107
138
  - test/dummy/README.rdoc
108
139
  - test/dummy/Rakefile
109
140
  - test/dummy/app/assets/javascripts/application.js
@@ -143,11 +174,13 @@ files:
143
174
  - test/dummy/public/500.html
144
175
  - test/dummy/public/favicon.ico
145
176
  - test/fixtures/apidae/attached_files.yml
177
+ - test/fixtures/apidae/exports.yml
146
178
  - test/fixtures/apidae/objects.yml
147
179
  - test/fixtures/apidae/selections.yml
148
180
  - test/fixtures/apidae/towns.yml
149
181
  - test/integration/navigation_test.rb
150
182
  - test/models/apidae/attached_file_test.rb
183
+ - test/models/apidae/export_test.rb
151
184
  - test/models/apidae/file_import_test.rb
152
185
  - test/models/apidae/object_test.rb
153
186
  - test/models/apidae/selection_test.rb
@@ -179,8 +212,16 @@ specification_version: 4
179
212
  summary: A Ruby on Rails engine for projects that involve Apidae data
180
213
  test_files:
181
214
  - test/apidae_test.rb
215
+ - test/controllers/apidae/dashboard_controller_test.rb
216
+ - test/controllers/apidae/import_controller_test.rb
182
217
  - test/controllers/apidae/objects_controller_test.rb
183
218
  - test/controllers/apidae/selections_controller_test.rb
219
+ - test/data/delete_selections.json
220
+ - test/data/deletion.json
221
+ - test/data/json_export.zip
222
+ - test/data/selections.json
223
+ - test/data/structure.json
224
+ - test/data/update_selections.json
184
225
  - test/dummy/app/assets/javascripts/application.js
185
226
  - test/dummy/app/assets/stylesheets/application.css
186
227
  - test/dummy/app/controllers/application_controller.rb
@@ -220,11 +261,13 @@ test_files:
220
261
  - test/dummy/Rakefile
221
262
  - test/dummy/README.rdoc
222
263
  - test/fixtures/apidae/attached_files.yml
264
+ - test/fixtures/apidae/exports.yml
223
265
  - test/fixtures/apidae/objects.yml
224
266
  - test/fixtures/apidae/selections.yml
225
267
  - test/fixtures/apidae/towns.yml
226
268
  - test/integration/navigation_test.rb
227
269
  - test/models/apidae/attached_file_test.rb
270
+ - test/models/apidae/export_test.rb
228
271
  - test/models/apidae/file_import_test.rb
229
272
  - test/models/apidae/object_test.rb
230
273
  - test/models/apidae/selection_test.rb