From 7e5b2356686e987718d74453e0f8c29299218877 Mon Sep 17 00:00:00 2001 From: rebuilt Date: Tue, 5 Jul 2022 14:54:31 -0700 Subject: [PATCH] Print out invalid values when loading admin data --- app/services/admin_data_loader.rb | 6 +++++- spec/fixtures/sample_admin_data.csv | 3 ++- spec/services/admin_data_loader_spec.rb | 25 +++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/services/admin_data_loader.rb b/app/services/admin_data_loader.rb index 296703bf..22424fc7 100644 --- a/app/services/admin_data_loader.rb +++ b/app/services/admin_data_loader.rb @@ -6,7 +6,11 @@ class AdminDataLoader likert_score = row['LikertScore'] || row['Likert Score'] || row['Likert_Score'] likert_score = likert_score.to_f likert_score = 1 if likert_score > 0 && likert_score < 1 - next unless valid_likert_score(likert_score:) + + unless valid_likert_score(likert_score:) + puts "This value is not valid #{likert_score}" + next + end ay = row['Academic Year'] || row['AcademicYear'] dese_id = row['DESE ID'] || row['Dese ID'] || row['Dese Id'] diff --git a/spec/fixtures/sample_admin_data.csv b/spec/fixtures/sample_admin_data.csv index 39991252..689ec5d1 100644 --- a/spec/fixtures/sample_admin_data.csv +++ b/spec/fixtures/sample_admin_data.csv @@ -9,5 +9,6 @@ Revere,Beachmont Elementary School,2480013,3-A-i,a-reso-i1,Average class size,17 Winchester,Winchester High School,3440505,3-A-i,a-reso-i1,Average class size,17,4.3,20,,2018-19 Attleboro,Attleboro High School,160505,3-A-ii,a-sust-i3,Student to instructional support staff ratio,15.28896673,0.4,43.4,,2018-19 Milford,Woodland Elementary School,1850090,3-A-ii,a-sust-i3,Student to instructional support staff ratio,22.85714286,2.106649112,43.4,,2018-19 -Revere,Beachmont Elementary School,2480013,3-A-ii,a-sust-i3,Student to instructional support staff ratio,38,3.502304147,43.4,,2018-19 +Revere,Beachmont Elementary School,2480013,3-A-ii,a-sust-i3,Student to instructional support staff ratio,38,3.5,43.4,,2018-19 Winchester,Winchester High School,3440505,3-A-ii,a-sust-i3,Student to instructional support staff ratio,135.9,5,43.4,,2018-19 +Attleboro,Attleboro High School,160505,3-A-i,a-sust-i3,Average class size,20.6,100,20,,2018-19 diff --git a/spec/services/admin_data_loader_spec.rb b/spec/services/admin_data_loader_spec.rb index 49bae3d6..975a3fe8 100644 --- a/spec/services/admin_data_loader_spec.rb +++ b/spec/services/admin_data_loader_spec.rb @@ -10,8 +10,6 @@ describe AdminDataLoader do before :each do Rails.application.load_seed - - AdminDataLoader.load_data filepath: path_to_admin_data end after :each do @@ -19,6 +17,9 @@ describe AdminDataLoader do end describe 'self.load_data' do + before :each do + AdminDataLoader.load_data filepath: path_to_admin_data + end it 'loads the correct admin data values' do # it 'assigns the academic year to admin data value' do expect(AdminDataValue.where(school: attleboro, @@ -51,7 +52,27 @@ describe AdminDataLoader do # it 'rejects importing rows with a value of 0' do expect(AdminDataValue.where(school: attleboro, academic_year: ay_2018_19, admin_data_item: AdminDataItem.find_by_admin_data_item_id('a-reso-i1'))).not_to exist + expect(AdminDataValue.where(school: attleboro, academic_year: ay_2018_19, + admin_data_item: AdminDataItem.find_by_admin_data_item_id('a-sust-i3'))).not_to exist # end end end + + describe 'output to console' do + it 'outputs a messsage saying a value has been rejected' do + output = capture_stdout { AdminDataLoader.load_data filepath: path_to_admin_data }.gsub("\n", '') + expect(output).to eq 'This value is not valid 0.0This value is not valid 100.0' + end + end +end + +def capture_stdout + original_stdout = $stdout + $stdout = fake = StringIO.new + begin + yield + ensure + $stdout = original_stdout + end + fake.string end