@@ -252,193 +252,195 @@ def should_support_postgresql_import_functionality
252252 end
253253 end
254254
255- describe 'with :omit_columns option' do
256- let ( :values ) do
257- [
258- {
259- title : "Invictus" ,
260- author_name : "William Ernest Henley" ,
261- url : 'https://www.poetryfoundation.org/poems/51642/invictus' ,
262- guid : '' # guid is blank, but will be ignored
263- } ,
264- {
265- title : 'If' ,
266- author_name : 'Rudyard Kipling' ,
267- guid : SecureRandom . uuid , # this will still be ignored
268- url : 'https://www.poetryfoundation.org/poems/46473/if---'
269- }
270- ]
271- end
272-
273- context 'with array of hashes' do
274- context ':omit_columns is a Proc' do
275- it "should succeed with guid being generated" do
276- assert_difference "Redirection.count" , +2 do
277- Redirection . import values , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
255+ if ENV [ 'AR_VERSION' ] . to_f >= 5.0
256+ describe 'with :omit_columns option' do
257+ let ( :values ) do
258+ [
259+ {
260+ title : "Invictus" ,
261+ author_name : "William Ernest Henley" ,
262+ url : 'https://www.poetryfoundation.org/poems/51642/invictus' ,
263+ guid : '' # guid is blank, but will be ignored
264+ } ,
265+ {
266+ title : 'If' ,
267+ author_name : 'Rudyard Kipling' ,
268+ guid : SecureRandom . uuid , # this will still be ignored
269+ url : 'https://www.poetryfoundation.org/poems/46473/if---'
270+ }
271+ ]
272+ end
273+
274+ context 'with array of hashes' do
275+ context ':omit_columns is a Proc' do
276+ it "should succeed with guid being generated" do
277+ assert_difference "Redirection.count" , +2 do
278+ Redirection . import values , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
279+ end
278280 end
279- end
280281
281- it "should generate guid on match" do
282- Redirection . import! values , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
283- assert_not_nil Redirection . last . guid
284- assert_not_equal Redirection . last . guid , values . last [ :guid ]
285- end
282+ it "should generate guid on match" do
283+ Redirection . import! values , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
284+ assert_not_nil Redirection . last . guid
285+ assert_not_equal Redirection . last . guid , values . last [ :guid ]
286+ end
286287
287- it "should not generate guid when not ignored" do
288- Redirection . import! values , omit_columns : -> ( model , _column_names ) { [ :guid ] unless model == Redirection }
289- assert_nil Redirection . first . guid
290- assert_equal values . last [ :guid ] , Redirection . last . guid
288+ it "should not generate guid when not ignored" do
289+ Redirection . import! values , omit_columns : -> ( model , _column_names ) { [ :guid ] unless model == Redirection }
290+ assert_nil Redirection . first . guid
291+ assert_equal values . last [ :guid ] , Redirection . last . guid
292+ end
291293 end
292- end
293294
294- context ':omit_columns is an Array' do
295- it "should succeed with guid being generated" do
296- assert_difference "Redirection.count" , +2 do
297- Redirection . import values , omit_columns : [ :guid ]
295+ context ':omit_columns is an Array' do
296+ it "should succeed with guid being generated" do
297+ assert_difference "Redirection.count" , +2 do
298+ Redirection . import values , omit_columns : [ :guid ]
299+ end
298300 end
299- end
300301
301- it "should generate guid" do
302- Redirection . import! values , omit_columns : [ :guid ]
303- assert_not_nil Redirection . last . guid
304- assert_not_equal Redirection . last . guid , values . last [ :guid ]
305- end
302+ it "should generate guid" do
303+ Redirection . import! values , omit_columns : [ :guid ]
304+ assert_not_nil Redirection . last . guid
305+ assert_not_equal Redirection . last . guid , values . last [ :guid ]
306+ end
306307
307- it "should not generate guid when not ignored" do
308- Redirection . import! values
309- assert_nil Redirection . first . guid
310- assert_equal values . last [ :guid ] , Redirection . last . guid
308+ it "should not generate guid when not ignored" do
309+ Redirection . import! values
310+ assert_nil Redirection . first . guid
311+ assert_equal values . last [ :guid ] , Redirection . last . guid
312+ end
311313 end
312- end
313314
314- context ':omit_columns is a Hash' do
315- it "should succeed with guid being generated" do
316- assert_difference "Redirection.count" , +2 do
317- Redirection . import values , omit_columns : { Redirection => [ :guid ] }
315+ context ':omit_columns is a Hash' do
316+ it "should succeed with guid being generated" do
317+ assert_difference "Redirection.count" , +2 do
318+ Redirection . import values , omit_columns : { Redirection => [ :guid ] }
319+ end
318320 end
319- end
320321
321- it "should generate guid" do
322- Redirection . import! values , omit_columns : { Redirection => [ :guid ] }
323- assert_not_nil Redirection . last . guid
324- assert_not_equal Redirection . last . guid , values . last [ :guid ]
325- end
322+ it "should generate guid" do
323+ Redirection . import! values , omit_columns : { Redirection => [ :guid ] }
324+ assert_not_nil Redirection . last . guid
325+ assert_not_equal Redirection . last . guid , values . last [ :guid ]
326+ end
326327
327- it "should not generate guid when not ignored" do
328- Redirection . import! values , omit_columns : { Book => [ :guid ] }
329- assert_nil Redirection . first . guid
330- assert_equal values . last [ :guid ] , Redirection . last . guid
328+ it "should not generate guid when not ignored" do
329+ Redirection . import! values , omit_columns : { Book => [ :guid ] }
330+ assert_nil Redirection . first . guid
331+ assert_equal values . last [ :guid ] , Redirection . last . guid
332+ end
331333 end
332334 end
333- end
334335
335- context 'with array of models' do
336- let ( :models ) { values . map { |hash | Redirection . new ( hash ) } }
337- context ':omit_columns is a Proc' do
338- it "should succeed with guid being generated" do
339- assert_difference "Redirection.count" , +2 do
340- Redirection . import models , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
336+ context 'with array of models' do
337+ let ( :models ) { values . map { |hash | Redirection . new ( hash ) } }
338+ context ':omit_columns is a Proc' do
339+ it "should succeed with guid being generated" do
340+ assert_difference "Redirection.count" , +2 do
341+ Redirection . import models , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
342+ end
341343 end
342- end
343344
344- it "should generate guid on match" do
345- Redirection . import! models , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
346- assert_not_nil Redirection . last . guid
347- assert_not_equal Redirection . last . guid , models . last [ :guid ]
348- end
345+ it "should generate guid on match" do
346+ Redirection . import! models , omit_columns : -> ( model , _column_names ) { [ :guid ] if model == Redirection }
347+ assert_not_nil Redirection . last . guid
348+ assert_not_equal Redirection . last . guid , models . last [ :guid ]
349+ end
349350
350- it "should not generate guid when not ignored" do
351- Redirection . import! models , omit_columns : -> ( model , _column_names ) { [ :guid ] unless model == Redirection }
352- assert_nil Redirection . first . guid
353- assert_equal values . last [ :guid ] , Redirection . last . guid
351+ it "should not generate guid when not ignored" do
352+ Redirection . import! models , omit_columns : -> ( model , _column_names ) { [ :guid ] unless model == Redirection }
353+ assert_nil Redirection . first . guid
354+ assert_equal values . last [ :guid ] , Redirection . last . guid
355+ end
354356 end
355- end
356357
357- context ':omit_columns is an Array' do
358- it "should succeed with guid being generated" do
359- assert_difference "Redirection.count" , +2 do
360- Redirection . import models , omit_columns : [ :guid ]
358+ context ':omit_columns is an Array' do
359+ it "should succeed with guid being generated" do
360+ assert_difference "Redirection.count" , +2 do
361+ Redirection . import models , omit_columns : [ :guid ]
362+ end
361363 end
362- end
363364
364- it "should generate guid" do
365- Redirection . import! models , omit_columns : [ :guid ]
366- assert_not_nil Redirection . last . guid
367- assert_not_equal Redirection . last . guid , values . last [ :guid ]
365+ it "should generate guid" do
366+ Redirection . import! models , omit_columns : [ :guid ]
367+ assert_not_nil Redirection . last . guid
368+ assert_not_equal Redirection . last . guid , values . last [ :guid ]
369+ end
370+
371+ it "should not generate guid when not ignored" do
372+ Redirection . import! models
373+ assert_nil Redirection . first . guid
374+ assert_equal values . last [ :guid ] , Redirection . last . guid
375+ end
368376 end
369377
370- it "should not generate guid when not ignored" do
371- Redirection . import! models
372- assert_nil Redirection . first . guid
373- assert_equal values . last [ :guid ] , Redirection . last . guid
378+ context ':omit_columns is a Hash' do
379+ it "should succeed with guid being generated" do
380+ assert_difference "Redirection.count" , +2 do
381+ Redirection . import models , omit_columns : { Redirection => [ :guid ] }
382+ end
383+ end
384+
385+ it "should generate guid" do
386+ Redirection . import! models , omit_columns : { Redirection => [ :guid ] }
387+ assert_not_nil Redirection . last . guid
388+ assert_not_equal Redirection . last . guid , models . last [ :guid ]
389+ end
390+
391+ it "should not generate guid when not ignored" do
392+ Redirection . import! models , omit_columns : { Book => [ :guid ] }
393+ assert_nil Redirection . first . guid
394+ assert_equal values . last [ :guid ] , Redirection . last . guid
395+ end
374396 end
375397 end
398+ end
399+
400+ describe 'with :omit_columns_with_default_functions option' do
401+ let ( :values ) do
402+ [
403+ {
404+ title : "Invictus" ,
405+ author_name : "William Ernest Henley" ,
406+ url : 'https://www.poetryfoundation.org/poems/51642/invictus' ,
407+ guid : '' # guid is blank, but will be ignored
408+ } ,
409+ {
410+ title : 'If' ,
411+ author_name : 'Rudyard Kipling' ,
412+ guid : SecureRandom . uuid , # this will still be ignored
413+ url : 'https://www.poetryfoundation.org/poems/46473/if---'
414+ }
415+ ]
416+ end
376417
377- context ':omit_columns is a Hash ' do
418+ context 'with array of hashes ' do
378419 it "should succeed with guid being generated" do
379420 assert_difference "Redirection.count" , +2 do
380- Redirection . import models , omit_columns : { Redirection => [ :guid ] }
421+ Redirection . import values , omit_columns_with_default_functions : true
381422 end
382423 end
383424
384425 it "should generate guid" do
385- Redirection . import! models , omit_columns : { Redirection => [ :guid ] }
426+ Redirection . import values , omit_columns_with_default_functions : true
386427 assert_not_nil Redirection . last . guid
387- assert_not_equal Redirection . last . guid , models . last [ :guid ]
388- end
389-
390- it "should not generate guid when not ignored" do
391- Redirection . import! models , omit_columns : { Book => [ :guid ] }
392- assert_nil Redirection . first . guid
393- assert_equal values . last [ :guid ] , Redirection . last . guid
394428 end
395429 end
396- end
397- end
398430
399- describe 'with :omit_columns_with_default_functions option' do
400- let ( :values ) do
401- [
402- {
403- title : "Invictus" ,
404- author_name : "William Ernest Henley" ,
405- url : 'https://www.poetryfoundation.org/poems/51642/invictus' ,
406- guid : '' # guid is blank, but will be ignored
407- } ,
408- {
409- title : 'If' ,
410- author_name : 'Rudyard Kipling' ,
411- guid : SecureRandom . uuid , # this will still be ignored
412- url : 'https://www.poetryfoundation.org/poems/46473/if---'
413- }
414- ]
415- end
416-
417- context 'with array of hashes' do
418- it "should succeed with guid being generated" do
419- assert_difference "Redirection.count" , +2 do
420- Redirection . import values , omit_columns_with_default_functions : true
431+ context 'with array of models' do
432+ let ( :models ) { values . map { |hash | Redirection . new ( hash ) } }
433+ it "should succeed with guid being generated" do
434+ assert_difference "Redirection.count" , +2 do
435+ Redirection . import models , omit_columns_with_default_functions : true
436+ end
421437 end
422- end
423-
424- it "should generate guid" do
425- Redirection . import values , omit_columns_with_default_functions : true
426- assert_not_nil Redirection . last . guid
427- end
428- end
429438
430- context 'with array of models' do
431- let ( :models ) { values . map { |hash | Redirection . new ( hash ) } }
432- it "should succeed with guid being generated" do
433- assert_difference "Redirection.count" , +2 do
439+ it "should generate guid" do
434440 Redirection . import models , omit_columns_with_default_functions : true
441+ assert_not_nil Redirection . last . guid
435442 end
436443 end
437-
438- it "should generate guid" do
439- Redirection . import models , omit_columns_with_default_functions : true
440- assert_not_nil Redirection . last . guid
441- end
442444 end
443445 end
444446 end
0 commit comments