@@ -60,8 +60,8 @@ def run
6060
6161 # check user does exist
6262 user = User . find_by_username ( scraper . username )
63- assert ! user . nil?
64- assert ! user . role . nil?
63+ refute user . nil?
64+ refute user . role . nil?
6565 assert_equal 'registered_user' , user . role . name
6666
6767 # run task
@@ -124,7 +124,7 @@ def run
124124 assert scraper . sources . size > 0
125125
126126 source = scraper . sources [ 0 ]
127- assert ! source . nil?
127+ refute source . nil?
128128 title = source [ :provider ]
129129 provider = ContentProvider . find_by_title ( title )
130130 assert provider . nil?
@@ -148,10 +148,10 @@ def run
148148 assert scraper . sources . size > 1
149149
150150 source = scraper . sources [ 1 ]
151- assert ! source . nil?
151+ refute source . nil?
152152 title = source [ :provider ]
153153 provider = ContentProvider . find_by_title ( title )
154- assert ! provider . nil? , "Provider title[#{ title } ] not found!"
154+ refute provider . nil? , "Provider title[#{ title } ] not found!"
155155
156156 # run task
157157 freeze_time ( stub_time = Time . new ( 2019 ) ) do
@@ -160,7 +160,7 @@ def run
160160
161161 assert check_task_finished ( logfile )
162162 error_message = 'Content provider must exist: ' + title . to_s
163- assert ! logfile_contains ( logfile , error_message ) , "Unexpected error message: #{ error_message } "
163+ refute logfile_contains ( logfile , error_message ) , "Unexpected error message: #{ error_message } "
164164 end
165165
166166 test 'check for invalid source parameters' do
@@ -184,6 +184,55 @@ def run
184184 assert logfile_contains ( logfile , error_message ) , 'Error message not found: ' + error_message
185185 end
186186
187+ test 'handles non-user ingestion methods' do
188+ with_settings ( user_ingestion_methods : [ 'bioschemas' ] ) do
189+ config = load_scraper_config ( 'test_ingestion.yml' )
190+ scraper = Scraper . new ( config )
191+ logfile = scraper . log_file
192+ assert_equal 'test' , scraper . name
193+
194+ freeze_time ( stub_time = Time . new ( 2019 ) ) do
195+ scraper . run
196+ end
197+
198+ refute logfile_contains ( logfile , 'Method is not included in the list: event_csv' )
199+ refute logfile_contains ( logfile , 'Method is not included in the list: material_csv' )
200+ end
201+ end
202+
203+ test 'does not crash for legacy config' do
204+ logfile = nil
205+ Kernel . silence_warnings do
206+ config = load_scraper_config ( 'test_ingestion_legacy.yml' )
207+ scraper = Scraper . new ( config )
208+ logfile = scraper . log_file
209+ assert_equal 'legacy' , scraper . name
210+
211+ freeze_time ( stub_time = Time . new ( 2019 ) ) do
212+ scraper . run
213+ end
214+ end
215+
216+ refute logfile_contains ( logfile , 'Run Scraper failed with' )
217+ assert logfile_contains ( logfile , 'Method is invalid: rest' )
218+ end
219+
220+ test 'logs backtrace on error' do
221+ config = load_scraper_config ( 'test_ingestion_crash.yml' )
222+ scraper = Scraper . new ( config )
223+ logfile = scraper . log_file
224+ assert_equal 'crash' , scraper . name
225+
226+ Ingestors ::IngestorFactory . stub ( :get_ingestor , -> { raise 'oh no' } ) do
227+ scraper . run
228+ end
229+
230+ assert logfile_contains ( logfile , 'Run Scraper failed with' )
231+ assert logfile_contains ( logfile , 'in `block in run' )
232+ assert logfile_contains ( logfile , 'in `map' )
233+ assert logfile_contains ( logfile , 'in `run' )
234+ end
235+
187236 private
188237
189238 def check_task_finished ( logfile )
0 commit comments