canvas_sync 0.1.3 → 0.1.4
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d67da42a99163681e0b38c654370ebe31e8fcb76
|
4
|
+
data.tar.gz: 7ec74a8b1bbbac7878db5b4c81a1d0944acb7c74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e78e38fcc9e151c21d0b562a12cdae647b474aaf13eaa980be2dcbcafa4e45b2a37943d0d2ed4b893fe839927cc61a167d60dbdb3b4af0ed6f49be22f7abdea9
|
7
|
+
data.tar.gz: 2e1bb5e9523491efd415f947340fc9bbf37b49f07c5d2afcb27f9ec5a9da639f47dff83ef372bdfd546fb842f4fca48b0b7f3928ba776dd51b15ad4c1f15f60e
|
@@ -7,26 +7,24 @@ module CanvasSync
|
|
7
7
|
# will be started for each term in that scope. :models should be an array of
|
8
8
|
# models to sync.
|
9
9
|
def perform(job_chain, options)
|
10
|
-
@job_chain = job_chain
|
11
|
-
|
12
10
|
if options[:term_scope]
|
13
11
|
Term.send(options[:term_scope]).find_each do |term|
|
14
|
-
# Deep copy the
|
12
|
+
# Deep copy the job_chain so each report gets the correct term id passed into
|
15
13
|
# its options with no side effects
|
16
|
-
|
17
|
-
|
18
|
-
start_report(report_params(options, term.canvas_term_id),
|
14
|
+
duped_job_chain = Marshal.load(Marshal.dump(job_chain))
|
15
|
+
duped_job_chain[:options][:canvas_term_id] = term.canvas_term_id
|
16
|
+
start_report(report_params(options, term.canvas_term_id), duped_job_chain, options)
|
19
17
|
end
|
20
18
|
else
|
21
|
-
start_report(report_params(options), options)
|
19
|
+
start_report(report_params(options), job_chain, options)
|
22
20
|
end
|
23
21
|
end
|
24
22
|
|
25
23
|
private
|
26
24
|
|
27
|
-
def start_report(report_params, options)
|
25
|
+
def start_report(report_params, job_chain, options)
|
28
26
|
CanvasSync::Jobs::ReportStarter.perform_later(
|
29
|
-
|
27
|
+
job_chain,
|
30
28
|
'proservices_provisioning_csv',
|
31
29
|
report_params,
|
32
30
|
CanvasSync::Processors::ProvisioningReportProcessor.to_s,
|
data/lib/canvas_sync/version.rb
CHANGED
@@ -2,15 +2,20 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
4
4
|
describe '#perform' do
|
5
|
+
let(:job_chain) { {jobs: [], options: {}} }
|
6
|
+
|
5
7
|
context 'a term scope is specified' do
|
6
8
|
let!(:active_term_1) { FactoryGirl.create(:term) }
|
7
9
|
let!(:active_term_2) { FactoryGirl.create(:term) }
|
8
10
|
let!(:inactive_term_1) { FactoryGirl.create(:term, workflow_state: 'inactive') }
|
9
11
|
|
10
12
|
it 'enqueues a ReportStarter for a provisioning report for the specified models for each term' do
|
13
|
+
expected_job_chain = Marshal.load(Marshal.dump(job_chain))
|
14
|
+
expected_job_chain[:options][:canvas_term_id] = active_term_1.canvas_term_id
|
15
|
+
|
11
16
|
expect(CanvasSync::Jobs::ReportStarter).to receive(:perform_later)
|
12
17
|
.with(
|
13
|
-
|
18
|
+
expected_job_chain,
|
14
19
|
'proservices_provisioning_csv',
|
15
20
|
{
|
16
21
|
"parameters[include_deleted]" => true,
|
@@ -19,12 +24,15 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
|
19
24
|
"parameters[enrollment_term_id]" => active_term_1.canvas_term_id
|
20
25
|
},
|
21
26
|
CanvasSync::Processors::ProvisioningReportProcessor.to_s,
|
22
|
-
{ models: ['users', 'courses'], term_scope: 'active'
|
27
|
+
{ models: ['users', 'courses'], term_scope: 'active' }
|
23
28
|
)
|
24
29
|
|
30
|
+
expected_job_chain_2 = Marshal.load(Marshal.dump(job_chain))
|
31
|
+
expected_job_chain_2[:options][:canvas_term_id] = active_term_2.canvas_term_id
|
32
|
+
|
25
33
|
expect(CanvasSync::Jobs::ReportStarter).to receive(:perform_later)
|
26
34
|
.with(
|
27
|
-
|
35
|
+
expected_job_chain_2,
|
28
36
|
'proservices_provisioning_csv',
|
29
37
|
{
|
30
38
|
"parameters[include_deleted]" => true,
|
@@ -33,11 +41,11 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
|
33
41
|
"parameters[enrollment_term_id]" => active_term_2.canvas_term_id
|
34
42
|
},
|
35
43
|
CanvasSync::Processors::ProvisioningReportProcessor.to_s,
|
36
|
-
{ models: ['users', 'courses'], term_scope: 'active'
|
44
|
+
{ models: ['users', 'courses'], term_scope: 'active' }
|
37
45
|
)
|
38
46
|
|
39
47
|
CanvasSync::Jobs::SyncProvisioningReportJob.perform_now(
|
40
|
-
|
48
|
+
job_chain,
|
41
49
|
{ models: ['users', 'courses'], term_scope: 'active' }
|
42
50
|
)
|
43
51
|
end
|
@@ -47,7 +55,7 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
|
47
55
|
it 'enqueues a single ReportStarter for a provisioning report across all terms for the specified models' do
|
48
56
|
expect(CanvasSync::Jobs::ReportStarter).to receive(:perform_later)
|
49
57
|
.with(
|
50
|
-
|
58
|
+
job_chain,
|
51
59
|
'proservices_provisioning_csv',
|
52
60
|
{
|
53
61
|
"parameters[include_deleted]" => true,
|
@@ -59,7 +67,7 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
|
59
67
|
)
|
60
68
|
|
61
69
|
CanvasSync::Jobs::SyncProvisioningReportJob.perform_now(
|
62
|
-
|
70
|
+
job_chain,
|
63
71
|
{ models: ['users', 'courses'] }
|
64
72
|
)
|
65
73
|
end
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|
data/spec/dummy/log/test.log
CHANGED
Binary file
|
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.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nate Collings
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|