coalescing_panda 4.1.0 → 4.1.1
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 +4 -4
- data/app/models/coalescing_panda/assignment.rb +1 -0
- data/app/models/coalescing_panda/assignment_group.rb +11 -0
- data/app/models/coalescing_panda/course.rb +1 -0
- data/app/models/coalescing_panda/workers/course_miner.rb +23 -2
- data/db/migrate/20150506183335_create_coalescing_panda_assignment_groups.rb +18 -0
- data/db/migrate/20150506192717_add_assignment_group_id_to_assignments.rb +5 -0
- data/lib/coalescing_panda/version.rb +1 -1
- data/spec/dummy/db/schema.rb +99 -82
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +7803 -0
- data/spec/factories/assignment_groups.rb +14 -0
- data/spec/models/coalescing_panda/assignment_group_spec.rb +32 -0
- data/spec/models/coalescing_panda/assignment_spec.rb +1 -0
- data/spec/models/coalescing_panda/course_spec.rb +5 -0
- data/spec/models/coalescing_panda/workers/course_miner_spec.rb +13 -2
- metadata +9 -2
@@ -0,0 +1,14 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
factory :assignment_group, class: CoalescingPanda::AssignmentGroup do
|
3
|
+
name "test assignment group"
|
4
|
+
course
|
5
|
+
context_id '1'
|
6
|
+
context_type 'Course'
|
7
|
+
position '1'
|
8
|
+
group_weight 50.5
|
9
|
+
workflow_state 'active'
|
10
|
+
sequence :canvas_assignment_group_id do |n|
|
11
|
+
"#{n}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
RSpec.describe CoalescingPanda::AssignmentGroup, :type => :model do
|
4
|
+
let(:assignment_group) { FactoryGirl.create(:assignment_group) }
|
5
|
+
|
6
|
+
context "associations" do
|
7
|
+
it 'should belong_to a course' do
|
8
|
+
expect(CoalescingPanda::AssignmentGroup.reflect_on_association(:course)).to_not be_nil
|
9
|
+
expect(CoalescingPanda::AssignmentGroup.reflect_on_association(:course).macro).to eql(:belongs_to)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should have many assignments' do
|
13
|
+
expect(CoalescingPanda::AssignmentGroup.reflect_on_association(:assignments)).to_not be_nil
|
14
|
+
expect(CoalescingPanda::AssignmentGroup.reflect_on_association(:assignments).macro).to eql(:has_many)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "validations" do
|
19
|
+
it "should require a canvas id" do
|
20
|
+
expect(FactoryGirl.build(:assignment_group, canvas_assignment_group_id: "")).to_not be_valid
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should require a course" do
|
24
|
+
expect(FactoryGirl.build(:assignment_group, coalescing_panda_course_id: "")).to_not be_valid
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should be valid with valid data" do
|
28
|
+
expect(FactoryGirl.build(:assignment_group)).to be_valid
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -7,6 +7,7 @@ RSpec.describe CoalescingPanda::Assignment, :type => :model do
|
|
7
7
|
it 'should belong_to a course' do
|
8
8
|
expect(CoalescingPanda::Assignment.reflect_on_association(:course)).to_not be_nil
|
9
9
|
expect(CoalescingPanda::Assignment.reflect_on_association(:course).macro).to eql(:belongs_to)
|
10
|
+
expect(CoalescingPanda::Assignment.reflect_on_association(:assignment_group).macro).to eql(:belongs_to)
|
10
11
|
end
|
11
12
|
|
12
13
|
it 'should have many submisssions' do
|
@@ -43,6 +43,11 @@ RSpec.describe CoalescingPanda::Course, :type => :model do
|
|
43
43
|
expect(CoalescingPanda::Course.reflect_on_association(:users)).to_not be_nil
|
44
44
|
expect(CoalescingPanda::Course.reflect_on_association(:users).macro).to eql(:has_many)
|
45
45
|
end
|
46
|
+
|
47
|
+
it 'should have many assignment groups' do
|
48
|
+
expect(CoalescingPanda::Course.reflect_on_association(:assignment_groups)).to_not be_nil
|
49
|
+
expect(CoalescingPanda::Course.reflect_on_association(:assignment_groups).macro).to eql(:has_many)
|
50
|
+
end
|
46
51
|
end
|
47
52
|
|
48
53
|
context "validations" do
|
@@ -2,7 +2,7 @@ require 'rails_helper'
|
|
2
2
|
|
3
3
|
RSpec.describe CoalescingPanda::Workers::CourseMiner, :type => :model do
|
4
4
|
let(:course) { FactoryGirl.create(:course) }
|
5
|
-
let(:worker) { CoalescingPanda::Workers::CourseMiner.new(course, [:sections, :users, :enrollments, :assignments, :submissions, :groups, :group_memberships]) }
|
5
|
+
let(:worker) { CoalescingPanda::Workers::CourseMiner.new(course, [:sections, :users, :enrollments, :assignments, :assignment_groups, :submissions, :groups, :group_memberships]) }
|
6
6
|
let(:users_response) {[
|
7
7
|
{"id"=>1, "name"=>"teacher@test.com", "sortable_name"=>"teacher@test.com", "short_name"=>"teacher@test.com", "login_id"=>"teacher@test.com"},
|
8
8
|
{"id"=>2, "name"=>"student1@test.com", "sortable_name"=>"student1@test.com", "short_name"=>"student1@test.com", "login_id"=>"student1@test.com"},
|
@@ -36,6 +36,9 @@ RSpec.describe CoalescingPanda::Workers::CourseMiner, :type => :model do
|
|
36
36
|
{"group_id"=> 4, "id"=> 13, "moderator"=> false, "user_id"=> 2, "workflow_state"=> "accepted"},
|
37
37
|
{"group_id"=> 4, "id"=> 14, "moderator"=> false, "user_id"=> 3, "workflow_state"=> "accepted"}
|
38
38
|
]}
|
39
|
+
let(:assignment_groups_response) {[
|
40
|
+
{"group_weight" => 500, "id" => 3, "name" => "Assignments", "position" => 3, "rules" => {} }
|
41
|
+
]}
|
39
42
|
|
40
43
|
before do
|
41
44
|
Bearcat::Client.any_instance.stub(:list_course_users) { double(Bearcat::ApiArray, :all_pages! => users_response) }
|
@@ -47,13 +50,14 @@ RSpec.describe CoalescingPanda::Workers::CourseMiner, :type => :model do
|
|
47
50
|
Bearcat::Client.any_instance.stub(:get_course_submissions).with("1", "2") { double(Bearcat::ApiArray, :all_pages! => submissions_response2) }
|
48
51
|
Bearcat::Client.any_instance.stub(:course_groups) { double(Bearcat::ApiArray, :all_pages! => groups_response) }
|
49
52
|
Bearcat::Client.any_instance.stub(:list_group_memberships) { double(Bearcat::ApiArray, :all_pages! => membership_response) }
|
53
|
+
Bearcat::Client.any_instance.stub(:list_assignment_groups) { double(Bearcat::ApiArray, :all_pages! => assignment_groups_response) }
|
50
54
|
end
|
51
55
|
|
52
56
|
describe '#initialize' do
|
53
57
|
it 'should set instance variables a user' do
|
54
58
|
expect(worker.course).to eq course
|
55
59
|
expect(worker.account).to eq course.account
|
56
|
-
expect(worker.options).to eq [:sections, :users, :enrollments, :assignments, :submissions, :groups, :group_memberships]
|
60
|
+
expect(worker.options).to eq [:sections, :users, :enrollments, :assignments, :assignment_groups, :submissions, :groups, :group_memberships]
|
57
61
|
expect(worker.batch).to eq CoalescingPanda::CanvasBatch.last
|
58
62
|
end
|
59
63
|
end
|
@@ -99,6 +103,13 @@ RSpec.describe CoalescingPanda::Workers::CourseMiner, :type => :model do
|
|
99
103
|
expect(CoalescingPanda::Assignment.count).to eq 2
|
100
104
|
end
|
101
105
|
|
106
|
+
it 'creates assignment groups' do
|
107
|
+
CoalescingPanda::AssignmentGroup.destroy_all
|
108
|
+
expect(CoalescingPanda::AssignmentGroup.count).to eq 0
|
109
|
+
worker.sync_assignment_groups(assignment_groups_response)
|
110
|
+
expect(CoalescingPanda::AssignmentGroup.count).to eq 1
|
111
|
+
end
|
112
|
+
|
102
113
|
it 'creates submissions' do
|
103
114
|
CoalescingPanda::Submission.destroy_all
|
104
115
|
submissions_response = submissions_response1 + submissions_response2
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coalescing_panda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1.
|
4
|
+
version: 4.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Mills
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-05-
|
13
|
+
date: 2015-05-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -328,6 +328,7 @@ files:
|
|
328
328
|
- app/controllers/coalescing_panda/oauth2_controller.rb
|
329
329
|
- app/helpers/coalescing_panda/canvas_batches_helper.rb
|
330
330
|
- app/models/coalescing_panda/assignment.rb
|
331
|
+
- app/models/coalescing_panda/assignment_group.rb
|
331
332
|
- app/models/coalescing_panda/canvas_api_auth.rb
|
332
333
|
- app/models/coalescing_panda/canvas_batch.rb
|
333
334
|
- app/models/coalescing_panda/course.rb
|
@@ -371,6 +372,8 @@ files:
|
|
371
372
|
- db/migrate/20150107205405_create_coalescing_panda_groups.rb
|
372
373
|
- db/migrate/20150107205413_create_coalescing_panda_group_memberships.rb
|
373
374
|
- db/migrate/20150210180516_add_context_to_canvas_batch.rb
|
375
|
+
- db/migrate/20150506183335_create_coalescing_panda_assignment_groups.rb
|
376
|
+
- db/migrate/20150506192717_add_assignment_group_id_to_assignments.rb
|
374
377
|
- lib/coalescing_panda/controller_helpers.rb
|
375
378
|
- lib/coalescing_panda/engine.rb
|
376
379
|
- lib/coalescing_panda/route_helpers.rb
|
@@ -419,6 +422,7 @@ files:
|
|
419
422
|
- spec/dummy/Rakefile
|
420
423
|
- spec/dummy/README.rdoc
|
421
424
|
- spec/factories/accounts.rb
|
425
|
+
- spec/factories/assignment_groups.rb
|
422
426
|
- spec/factories/assignments.rb
|
423
427
|
- spec/factories/canvas_batches.rb
|
424
428
|
- spec/factories/courses.rb
|
@@ -427,6 +431,7 @@ files:
|
|
427
431
|
- spec/factories/submissions.rb
|
428
432
|
- spec/factories/terms.rb
|
429
433
|
- spec/factories/users.rb
|
434
|
+
- spec/models/coalescing_panda/assignment_group_spec.rb
|
430
435
|
- spec/models/coalescing_panda/assignment_spec.rb
|
431
436
|
- spec/models/coalescing_panda/canvas_api_auth_spec.rb
|
432
437
|
- spec/models/coalescing_panda/canvas_batch_spec.rb
|
@@ -508,6 +513,7 @@ test_files:
|
|
508
513
|
- spec/dummy/Rakefile
|
509
514
|
- spec/dummy/README.rdoc
|
510
515
|
- spec/factories/accounts.rb
|
516
|
+
- spec/factories/assignment_groups.rb
|
511
517
|
- spec/factories/assignments.rb
|
512
518
|
- spec/factories/canvas_batches.rb
|
513
519
|
- spec/factories/courses.rb
|
@@ -516,6 +522,7 @@ test_files:
|
|
516
522
|
- spec/factories/submissions.rb
|
517
523
|
- spec/factories/terms.rb
|
518
524
|
- spec/factories/users.rb
|
525
|
+
- spec/models/coalescing_panda/assignment_group_spec.rb
|
519
526
|
- spec/models/coalescing_panda/assignment_spec.rb
|
520
527
|
- spec/models/coalescing_panda/canvas_api_auth_spec.rb
|
521
528
|
- spec/models/coalescing_panda/canvas_batch_spec.rb
|