Skip to content

Commit 61dc5b6

Browse files
committed
don't assign a random term with no sis id if none is given in sis import
it was doing a find_by_sis_source_id(nil) also, don't find deleted terms fixes #11465 test plan: create an enrollment term in the UI, separate from the default term, with no sis id. do a course sis import and don't specify a term, it should get assigned to the default term not the one you created. Change-Id: I4ff8e9df35b7f29237840314f118fe249d699838 Reviewed-on: https://gerrit.instructure.com/14738 Tested-by: Jenkins <jenkins@instructure.com> Reviewed-by: Cody Cutrer <cody@instructure.com>
1 parent f77b1d7 commit 61dc5b6

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

lib/sis/course_importer.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ def add_course(course_id, term_id, account_id, fallback_account_id, status, star
6868
course = Course.find_by_root_account_id_and_sis_source_id(@root_account.id, course_id)
6969
course ||= Course.new
7070
course_enrollment_term_id_stuck = course.stuck_sis_fields.include?(:enrollment_term_id)
71-
term = course_enrollment_term_id_stuck ? nil : @root_account.enrollment_terms.find_by_sis_source_id(term_id)
71+
if !course_enrollment_term_id_stuck && term_id
72+
term = @root_account.enrollment_terms.active.find_by_sis_source_id(term_id)
73+
end
7274
course.enrollment_term = term if term
7375
course.root_account = @root_account
7476

spec/lib/sis/csv/course_importer_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,18 @@
459459
end
460460
end
461461

462+
it "should use the default term if none given" do
463+
@default_term = @account.default_enrollment_term
464+
@default_term.should be_present
465+
@nil_id_term = @account.enrollment_terms.create!(:name => "nil")
466+
@with_id_term = @account.enrollment_terms.create!(:name => "test") { |t| t.sis_source_id = "test" }
467+
process_csv_data_cleanly(
468+
"course_id,short_name,long_name,status",
469+
"c1,c1,c1,active")
470+
@course = @account.courses.find_by_sis_source_id("c1")
471+
@course.enrollment_term.should == @default_term
472+
end
473+
462474
context 'account associations' do
463475
before(:each) do
464476
process_csv_data_cleanly(

0 commit comments

Comments
 (0)