canvas_sync 0.17.0.beta1 → 0.17.0.beta6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/canvas_sync.rb +2 -1
- data/lib/canvas_sync/job_batches/batch.rb +13 -9
- data/lib/canvas_sync/job_batches/callback.rb +14 -15
- data/lib/canvas_sync/job_batches/chain_builder.rb +17 -0
- data/lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb +1 -0
- data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +3 -1
- data/lib/canvas_sync/job_batches/sidekiq.rb +2 -0
- data/lib/canvas_sync/job_batches/status.rb +21 -1
- data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +2 -1
- data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +0 -3
- data/lib/canvas_sync/jobs/sync_terms_job.rb +3 -1
- data/lib/canvas_sync/version.rb +1 -1
- data/spec/canvas_sync/canvas_sync_spec.rb +20 -10
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +1248 -0
- data/spec/dummy/log/test.log +43258 -0
- data/spec/job_batching/batch_spec.rb +12 -3
- data/spec/job_batching/flow_spec.rb +0 -3
- data/spec/spec_helper.rb +7 -0
- data/spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv +3 -0
- data/spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv +4 -0
- metadata +19 -10
@@ -182,12 +182,12 @@ RSpec.describe CanvasSync::JobBatches::Batch do
|
|
182
182
|
context 'complete' do
|
183
183
|
before { batch.on(:complete, Object) }
|
184
184
|
# before { batch.increment_job_queue(bid) }
|
185
|
-
before { batch.jobs do TestWorker.perform_async end }
|
186
|
-
before { CanvasSync::JobBatches::Batch.process_failed_job(bid, 'failed-job-id') }
|
185
|
+
# before { batch.jobs do TestWorker.perform_async end }
|
186
|
+
# before { CanvasSync::JobBatches::Batch.process_failed_job(bid, 'failed-job-id') }
|
187
187
|
|
188
188
|
it 'tries to call complete callback' do
|
189
189
|
expect(CanvasSync::JobBatches::Batch).to receive(:enqueue_callbacks).with(:complete, bid)
|
190
|
-
CanvasSync::JobBatches::Batch.
|
190
|
+
CanvasSync::JobBatches::Batch.process_failed_job(bid, 'failed-job-id')
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
@@ -199,6 +199,15 @@ RSpec.describe CanvasSync::JobBatches::Batch do
|
|
199
199
|
CanvasSync::JobBatches::Batch.process_successful_job(bid, jid)
|
200
200
|
end
|
201
201
|
|
202
|
+
it 'tries to call success callback after a previous failure' do
|
203
|
+
expect(CanvasSync::JobBatches::Batch).to receive(:enqueue_callbacks).with(:complete, bid).ordered
|
204
|
+
CanvasSync::JobBatches::Batch.process_failed_job(bid, jid)
|
205
|
+
|
206
|
+
expect(CanvasSync::JobBatches::Batch).to receive(:enqueue_callbacks).with(:complete, bid).ordered
|
207
|
+
expect(CanvasSync::JobBatches::Batch).to receive(:enqueue_callbacks).with(:success, bid).ordered
|
208
|
+
CanvasSync::JobBatches::Batch.process_successful_job(bid, jid)
|
209
|
+
end
|
210
|
+
|
202
211
|
it 'cleanups redis key' do
|
203
212
|
CanvasSync::JobBatches::Batch.process_successful_job(bid, jid)
|
204
213
|
expect(CanvasSync::JobBatches::Batch.redis { |r| r.get("BID-#{bid}-pending") }.to_i).to eq(0)
|
@@ -2,19 +2,16 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
class WorkerA < BatchTestJobBase
|
4
4
|
def perform
|
5
|
-
puts 'A'
|
6
5
|
end
|
7
6
|
end
|
8
7
|
|
9
8
|
class WorkerB < BatchTestJobBase
|
10
9
|
def perform
|
11
|
-
puts 'B'
|
12
10
|
end
|
13
11
|
end
|
14
12
|
|
15
13
|
class WorkerC < BatchTestJobBase
|
16
14
|
def perform
|
17
|
-
puts 'C'
|
18
15
|
end
|
19
16
|
end
|
20
17
|
|
data/spec/spec_helper.rb
CHANGED
@@ -19,6 +19,13 @@ Sidekiq::Testing.fake!
|
|
19
19
|
require 'fakeredis/rspec'
|
20
20
|
Dir[File.dirname(__FILE__) + "/job_batching/support/**/*.rb"].each {|f| require f }
|
21
21
|
|
22
|
+
# Fix an issue with fakeredis with Redis >=4.2
|
23
|
+
class Redis::Connection::Memory
|
24
|
+
def exists(*keys)
|
25
|
+
keys.count { |key| data.key?(key) }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
22
29
|
ActiveRecord::Migration.maintain_test_schema!
|
23
30
|
|
24
31
|
RSpec.configure do |config|
|
@@ -0,0 +1,3 @@
|
|
1
|
+
canvas_course_id,course_id,integration_id,short_name,long_name,canvas_account_id,account_id,canvas_term_id,term_id,status,start_date,end_date,course_format,created_by_sis
|
2
|
+
1,course_sis_id_1,,C1,Course #1,1,,1,term_sis_id_1,active,2017-03-27T15:53:18-06:00,2017-04-27T06:21:18-06:00,,FALSE
|
3
|
+
2,course_sis_id_2,,C2,Course #2,1,,1,term_sis_id_2,unpublished,2017-03-27T15:53:18-06:00,2017-04-27T06:21:18-06:00,,FALSE
|
@@ -0,0 +1,4 @@
|
|
1
|
+
canvas_user_id,user_id,integration_id,authentication_provider_id,login_id,first_name,last_name,full_name,sortable_name,short_name,email,status,created_by_sis
|
2
|
+
1,sis_id_1,,123,spiderdude1337,Patches,the Spider,Patches the Spider,"the Spider, Patches",,poorbastard@yharnam.com,active,FALSE
|
3
|
+
2,sis_id_2,,1234,retireddude109,Hunter,Djura,Hunter Djura,"Djura, Hunter",,dreamer@yharnam.com,active,FALSE
|
4
|
+
2,sis_id_2,,1234,retireddude110,Hunter,Djura,Hunter Djura,"Djura, Hunter",,dreamer@yharnam.com,active,FALSE
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canvas_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.0.
|
4
|
+
version: 0.17.0.beta6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nate Collings
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -280,14 +280,14 @@ dependencies:
|
|
280
280
|
name: redis
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
|
-
- - "
|
283
|
+
- - ">="
|
284
284
|
- !ruby/object:Gem::Version
|
285
285
|
version: '4.2'
|
286
286
|
type: :runtime
|
287
287
|
prerelease: false
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
|
-
- - "
|
290
|
+
- - ">="
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: '4.2'
|
293
293
|
- !ruby/object:Gem::Dependency
|
@@ -346,7 +346,7 @@ dependencies:
|
|
346
346
|
- - ">="
|
347
347
|
- !ruby/object:Gem::Version
|
348
348
|
version: '0'
|
349
|
-
description:
|
349
|
+
description:
|
350
350
|
email:
|
351
351
|
- ncollings@instructure.com
|
352
352
|
executables: []
|
@@ -576,6 +576,9 @@ files:
|
|
576
576
|
- spec/dummy/db/migrate/20200416214248_create_group_memberships.rb
|
577
577
|
- spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb
|
578
578
|
- spec/dummy/db/schema.rb
|
579
|
+
- spec/dummy/db/test.sqlite3
|
580
|
+
- spec/dummy/log/development.log
|
581
|
+
- spec/dummy/log/test.log
|
579
582
|
- spec/factories/account_factory.rb
|
580
583
|
- spec/factories/admin_factory.rb
|
581
584
|
- spec/factories/assignment_factory.rb
|
@@ -620,6 +623,8 @@ files:
|
|
620
623
|
- spec/support/fixtures/reports/group_memberships.csv
|
621
624
|
- spec/support/fixtures/reports/groups.csv
|
622
625
|
- spec/support/fixtures/reports/provisioning_csv
|
626
|
+
- spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv
|
627
|
+
- spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv
|
623
628
|
- spec/support/fixtures/reports/sections.csv
|
624
629
|
- spec/support/fixtures/reports/submissions.csv
|
625
630
|
- spec/support/fixtures/reports/users.csv
|
@@ -627,7 +632,7 @@ files:
|
|
627
632
|
homepage: https://instructure.com
|
628
633
|
licenses: []
|
629
634
|
metadata: {}
|
630
|
-
post_install_message:
|
635
|
+
post_install_message:
|
631
636
|
rdoc_options: []
|
632
637
|
require_paths:
|
633
638
|
- lib
|
@@ -642,9 +647,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
642
647
|
- !ruby/object:Gem::Version
|
643
648
|
version: 1.3.1
|
644
649
|
requirements: []
|
645
|
-
|
646
|
-
|
647
|
-
signing_key:
|
650
|
+
rubygems_version: 3.1.2
|
651
|
+
signing_key:
|
648
652
|
specification_version: 4
|
649
653
|
summary: Gem for generating Canvas models and migrations and syncing data from Canvas
|
650
654
|
test_files:
|
@@ -765,6 +769,9 @@ test_files:
|
|
765
769
|
- spec/dummy/db/migrate/20200416214248_create_group_memberships.rb
|
766
770
|
- spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb
|
767
771
|
- spec/dummy/db/schema.rb
|
772
|
+
- spec/dummy/db/test.sqlite3
|
773
|
+
- spec/dummy/log/development.log
|
774
|
+
- spec/dummy/log/test.log
|
768
775
|
- spec/factories/account_factory.rb
|
769
776
|
- spec/factories/admin_factory.rb
|
770
777
|
- spec/factories/assignment_factory.rb
|
@@ -809,6 +816,8 @@ test_files:
|
|
809
816
|
- spec/support/fixtures/reports/group_memberships.csv
|
810
817
|
- spec/support/fixtures/reports/groups.csv
|
811
818
|
- spec/support/fixtures/reports/provisioning_csv
|
819
|
+
- spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv
|
820
|
+
- spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv
|
812
821
|
- spec/support/fixtures/reports/sections.csv
|
813
822
|
- spec/support/fixtures/reports/submissions.csv
|
814
823
|
- spec/support/fixtures/reports/users.csv
|