@@ -290,20 +290,45 @@ def process_csv_data(*lines)
290290 before_count = Enrollment . count
291291 importer = process_csv_data (
292292 "course_id,user_id,role,section_id,status" ,
293- ",U001,student,1B ,active" ,
293+ ",U001,student,,active" ,
294294 "C001,,student,1B,active" ,
295295 "C001,U001,cheater,1B,active" ,
296296 "C001,U001,student,1B,semi-active"
297297 )
298298 Enrollment . count . should == before_count
299299
300300 errors = importer . errors . map { |r | r . last }
301- errors . should == [ "No course_id given for an enrollment" ,
302- "No user_id given for an enrollment" ,
303- "Improper role \" cheater\" for an enrollment" ,
301+ errors . should == [ "No course_id or section_id given for an enrollment" ,
302+ "No user_id given for an enrollment" ,
303+ "Improper role \" cheater\" for an enrollment" ,
304304 "Improper status \" semi-active\" for an enrollment" ]
305305 end
306-
306+
307+ it 'should warn about inconsistent data' do
308+ process_csv_data (
309+ "course_id,short_name,long_name,account_id,term_id,status" ,
310+ "C001,TC 101,Test Course 101,,,active" ,
311+ "C002,TC 102,Test Course 102,,,active"
312+ )
313+ process_csv_data (
314+ "section_id,course_id,name,start_date,end_date,status" ,
315+ "1B,C001,Sec1,2011-1-05 00:00:00,2011-4-14 00:00:00,active"
316+ )
317+ process_csv_data (
318+ "user_id,login_id,first_name,last_name,email,status" ,
319+ "U001,user1,User,Uno,user@example.com,active"
320+ )
321+ importer = process_csv_data (
322+ "course_id,user_id,role,section_id,status" ,
323+ "NONEXISTENT,U001,student,1B,active" ,
324+ "C001,U001,student,NONEXISTENT,active" ,
325+ "C002,U001,student,1B,active" )
326+ warnings = importer . warnings . map { |r | r . last }
327+ warnings . should == [ "An enrollment referenced a non-existent course NONEXISTENT" ,
328+ "An enrollment referenced a non-existent section NONEXISTENT" ,
329+ "An enrollment listed a section and a course that are unrelated" ]
330+ end
331+
307332 it "should enroll users" do
308333 #create course, users, and sections
309334 process_csv_data (
@@ -315,27 +340,32 @@ def process_csv_data(*lines)
315340 "user_1,user1,User,Uno,user@example.com,active" ,
316341 "user_2,user2,User,Dos,user2@example.com,active" ,
317342 "user_3,user4,User,Tres,user3@example.com,active" ,
318- "user_5,user5,User,Quatro,user5@example.com,active"
343+ "user_5,user5,User,Quatro,user5@example.com,active" ,
344+ "user_6,user6,User,Cinco,user6@example.com,active"
319345 )
320346 process_csv_data (
321347 "section_id,course_id,name,status,start_date,end_date" ,
322348 "S001,test_1,Sec1,active,,"
323349 )
324350 # the enrollments
325351 process_csv_data (
326- "course_id,user_id,role,section_name ,status,associated_user_id" ,
327- "test_1,user_1,teacher,S001 ,active," ,
328- "test_1 ,user_2,student,S001,active," ,
352+ "course_id,user_id,role,section_id ,status,associated_user_id" ,
353+ "test_1,user_1,teacher,,active," ,
354+ ",user_2,student,S001,active," ,
329355 "test_1,user_3,ta,S001,active," ,
330- "test_1,user_5,observer,S001,active,user_2"
356+ "test_1,user_5,observer,S001,active,user_2" ,
357+ "test_1,user_6,designer,S001,active,"
331358 )
332359 course = @account . courses . find_by_sis_source_id ( "test_1" )
333360 course . teachers . first . name . should == "User Uno"
334361 course . students . first . name . should == "User Dos"
335362 course . tas . first . name . should == "User Tres"
336363 course . observers . first . name . should == "User Quatro"
337364 course . observer_enrollments . first . associated_user_id . should == course . students . first . id
365+ course . designers . first . name . should == "User Cinco"
338366 end
367+
368+
339369 end
340370
341371 context 'account importing' do
0 commit comments