pseudo_cleaner 0.0.42 → 0.0.43

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDE4ZjczNTAyNDlkZjcwNjU1OTlmYTcxNWQ3YzA5OTBiYjExMmY4MQ==
4
+ NDZkNTM0YTI5M2ZhMDk4NGNiMzc3Mzk2YmRiMTFhNmNkNDI4NmI1Zg==
5
5
  data.tar.gz: !binary |-
6
- ZDYwOTMyYTEzMDRjMTU2NDg3YzU3MjJmMTUwM2I5YTk3NzhiZmM3Nw==
6
+ NTU1ZDM0NzQxOTg4OTlkNDRkY2YzMWQ1NGQ2ZDhlOGI4NDBmMGI0MQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MzhkZDVmMTE5NTg2MTYwZjc1OTE4NWZlNDhjZTA4YjhmZWVkMGVhZTgxZDhi
10
- MDg3NjExMTRmMzRlMzIyZmJlNjNhZWM2MTc4Zjg4MmZjYTEzYTdlMjFjMmU2
11
- MWYwYTBlZGFiM2Q3Njc0MDFmMTdkMTRlYTEyNjAxZGM4NzJhNmU=
9
+ ZGIyZTI0ODJjMmZiNjBiZDQyODcwMzU1MWI1Y2ZjNmViYjFlOWUzZTQ5Mjc3
10
+ ZmJlNWVhNTJmMDJjMDY3MmMxY2MxM2ZiNGQyNzI3Y2ViZDJiZDE5NmY1N2Q3
11
+ OTQ1NzM3OTQ1NzRjMTVkOTJjNDcwNjAzNjhiYWZlM2UzZGFjMWU=
12
12
  data.tar.gz: !binary |-
13
- NmFhYTM5M2M3MGYyMGU2OGU2MTY5OWI1OTVkZTNkZDJiN2M5OTRmOWM2MGU1
14
- M2Q0MGMwMGNkM2E4MDlhNDQ3MjNmZjIyMTRjZDk4ZDE2NTRmNmQ5NGRkNWY5
15
- NDg3OTBjNGMyYjg4NWFhOWU4MjI2YmI4ODU2MjI0ZmVlNmY3NDg=
13
+ Nzk5OGNkN2ExMTA5MzAwMWMyZDM3NGQyZDJmOTY0MzMzOTM0YTdmNTQ1Y2Q0
14
+ ZTVjOWFhM2U1NTljYjgzMTJiNTY5YTA5Y2JkMTU1MmJlMjdmNmFhZGZjZDg2
15
+ NjIxYjBlY2QwMTk1Zjc5ZjdhZDAyYTRlODdkNWQyN2Q5MDEyOGI=
@@ -1,12 +1,17 @@
1
- require "sorted_seeder"
2
- require "colorize"
3
- require "database_cleaner"
4
- require "pseudo_cleaner/version"
5
- require "pseudo_cleaner/configuration"
6
- require "pseudo_cleaner/table_cleaner"
7
- require "pseudo_cleaner/master_cleaner"
8
- require "pseudo_cleaner/logger"
1
+ require "benchmark"
2
+
3
+ time = Benchmark.measure do
4
+ require "sorted_seeder"
5
+ require "colorize"
6
+ require "database_cleaner"
7
+ require "pseudo_cleaner/version"
8
+ require "pseudo_cleaner/configuration"
9
+ require "pseudo_cleaner/table_cleaner"
10
+ require "pseudo_cleaner/master_cleaner"
11
+ require "pseudo_cleaner/logger"
12
+ end
13
+ puts "PseudoCleaner load time: #{time}"
9
14
 
10
15
  module PseudoCleaner
11
16
  # Your code goes here...
12
- end
17
+ end
@@ -19,6 +19,7 @@ module PseudoCleaner
19
19
  attr_accessor :peek_data_not_on_error
20
20
  attr_accessor :enable_full_data_dump_tag
21
21
  attr_accessor :disable_cornucopia_output
22
+ attr_accessor :benchmark
22
23
 
23
24
  def self.current_instance
24
25
  self.instance
@@ -35,6 +36,7 @@ module PseudoCleaner
35
36
  @peek_data_not_on_error = false
36
37
  @enable_full_data_dump_tag = true
37
38
  @disable_cornucopia_output = false
39
+ @benchmark = false
38
40
  end
39
41
 
40
42
  # Backwards comaptibility...
@@ -66,14 +66,19 @@ module PseudoCleaner
66
66
  def start_suite(description = nil)
67
67
  description ||= "PseudoCleaner::MasterCleaner.start_suite"
68
68
 
69
- within_report_block(description: description) do
70
- if @@suite_cleaner
71
- @@suite_cleaner.reset_suite
69
+ time = Benchmark.measure do
70
+ puts description if PseudoCleaner::Configuration.instance.benchmark
71
+
72
+ within_report_block(description: description) do
73
+ if @@suite_cleaner
74
+ @@suite_cleaner.reset_suite
75
+ end
76
+ @@suite_cleaner = PseudoCleaner::MasterCleaner.new(:suite)
77
+ @@suite_cleaner.start :pseudo_delete
78
+ @@suite_cleaner
72
79
  end
73
- @@suite_cleaner = PseudoCleaner::MasterCleaner.new(:suite)
74
- @@suite_cleaner.start :pseudo_delete
75
- @@suite_cleaner
76
80
  end
81
+ puts "#{description} time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
77
82
  end
78
83
 
79
84
  # def clean_redis(redis)
@@ -92,52 +97,69 @@ module PseudoCleaner
92
97
  def start_example(example_class, strategy, options = {})
93
98
  options[:description] ||= "PseudoCleaner::MasterCleaner.start_example"
94
99
 
95
- within_report_block(options) do
96
- pseudo_cleaner_data = {}
97
- pseudo_cleaner_data[:test_strategy] = strategy
100
+ time = Benchmark.measure do
101
+ puts options[:description] if PseudoCleaner::Configuration.instance.benchmark
102
+
103
+ within_report_block(options) do
104
+ pseudo_cleaner_data = {}
105
+ pseudo_cleaner_data[:test_strategy] = strategy
98
106
 
99
- unless strategy == :none
100
- raise "invalid strategy" unless PseudoCleaner::MasterCleaner::DB_CLEANER_CLEANING_STRATEGIES.has_key? strategy
107
+ unless strategy == :none
108
+ raise "invalid strategy" unless PseudoCleaner::MasterCleaner::DB_CLEANER_CLEANING_STRATEGIES.has_key? strategy
101
109
 
102
- DatabaseCleaner.strategy = PseudoCleaner::MasterCleaner::DB_CLEANER_CLEANING_STRATEGIES[strategy]
103
- unless [:pseudo_delete].include? strategy
104
- PseudoCleaner::MasterCleaner.database_cleaner.start
110
+ DatabaseCleaner.strategy = PseudoCleaner::MasterCleaner::DB_CLEANER_CLEANING_STRATEGIES[strategy]
111
+ unless [:pseudo_delete].include? strategy
112
+ PseudoCleaner::MasterCleaner.database_cleaner.start
113
+ end
114
+
115
+ pseudo_cleaner_data[:pseudo_state] = PseudoCleaner::MasterCleaner.start_test strategy
105
116
  end
106
117
 
107
- pseudo_cleaner_data[:pseudo_state] = PseudoCleaner::MasterCleaner.start_test strategy
118
+ example_class.instance_variable_set(:@pseudo_cleaner_data, pseudo_cleaner_data)
108
119
  end
109
-
110
- example_class.instance_variable_set(:@pseudo_cleaner_data, pseudo_cleaner_data)
111
120
  end
121
+
122
+ puts "#{options[:description]} time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
112
123
  end
113
124
 
114
125
  def end_example(example_class, options = {})
115
126
  options[:description] ||= "PseudoCleaner::MasterCleaner.end_example"
116
127
 
117
- within_report_block(options) do
118
- pseudo_cleaner_data = example_class.instance_variable_get(:@pseudo_cleaner_data)
128
+ time = Benchmark.measure do
129
+ puts options[:description] if PseudoCleaner::Configuration.instance.benchmark
119
130
 
120
- unless pseudo_cleaner_data[:test_strategy] == :none
121
- unless [:pseudo_delete].include? pseudo_cleaner_data[:test_strategy]
122
- PseudoCleaner::MasterCleaner.database_cleaner.clean
123
- end
131
+ within_report_block(options) do
132
+ pseudo_cleaner_data = example_class.instance_variable_get(:@pseudo_cleaner_data)
124
133
 
125
- case pseudo_cleaner_data[:test_strategy]
126
- when :deletion, :truncation
127
- PseudoCleaner::MasterCleaner.database_reset
128
- end
134
+ unless pseudo_cleaner_data[:test_strategy] == :none
135
+ unless [:pseudo_delete].include? pseudo_cleaner_data[:test_strategy]
136
+ PseudoCleaner::MasterCleaner.database_cleaner.clean
137
+ end
138
+
139
+ case pseudo_cleaner_data[:test_strategy]
140
+ when :deletion, :truncation
141
+ PseudoCleaner::MasterCleaner.database_reset
142
+ end
129
143
 
130
- pseudo_cleaner_data[:pseudo_state].end test_type: :test, test_strategy: pseudo_cleaner_data[:test_strategy]
144
+ pseudo_cleaner_data[:pseudo_state].end test_type: :test, test_strategy: pseudo_cleaner_data[:test_strategy]
145
+ end
131
146
  end
132
147
  end
148
+ puts "#{options[:description]} time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
133
149
  end
134
150
 
135
151
  def end_suite(description = nil)
136
152
  description ||= "PseudoCleaner::MasterCleaner.end_suite"
137
153
 
138
- within_report_block(description: description) do
139
- @@suite_cleaner.end test_strategy: :pseudo_delete if @@suite_cleaner
154
+ time = Benchmark.measure do
155
+ puts description if PseudoCleaner::Configuration.instance.benchmark
156
+
157
+ within_report_block(description: description) do
158
+ @@suite_cleaner.end test_strategy: :pseudo_delete if @@suite_cleaner
159
+ end
140
160
  end
161
+
162
+ puts "#{description} time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
141
163
  end
142
164
 
143
165
  def start_test test_strategy
@@ -175,11 +197,16 @@ module PseudoCleaner
175
197
  def reset_database(description = nil)
176
198
  description ||= "PseudoCleaner::MasterCleaner.reset_database"
177
199
 
178
- within_report_block(description: description) do
179
- PseudoCleaner::MasterCleaner.database_cleaner.clean_with(:truncation)
200
+ time = Benchmark.measure do
201
+ puts description if PseudoCleaner::Configuration.instance.benchmark
202
+
203
+ within_report_block(description: description) do
204
+ PseudoCleaner::MasterCleaner.database_cleaner.clean_with(:truncation)
180
205
 
181
- PseudoCleaner::MasterCleaner.database_reset
206
+ PseudoCleaner::MasterCleaner.database_reset
207
+ end
182
208
  end
209
+ puts "#{description} time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
183
210
  end
184
211
 
185
212
  def database_reset
@@ -254,9 +281,14 @@ module PseudoCleaner
254
281
  unless @@cleaner_classes
255
282
  @@cleaner_classes = []
256
283
 
257
- PseudoCleaner::MasterCleaner.create_table_cleaners
258
- PseudoCleaner::MasterCleaner.create_custom_cleaners
259
- # PseudoCleaner::MasterCleaner.create_redis_cleaners
284
+ time = Benchmark.measure do
285
+ puts " Gathering cleaners" if PseudoCleaner::Configuration.instance.benchmark
286
+
287
+ PseudoCleaner::MasterCleaner.create_table_cleaners
288
+ PseudoCleaner::MasterCleaner.create_custom_cleaners
289
+ # PseudoCleaner::MasterCleaner.create_redis_cleaners
290
+ end
291
+ puts " Gathering cleaners time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
260
292
  end
261
293
 
262
294
  @@cleaner_classes
@@ -348,41 +380,54 @@ module PseudoCleaner
348
380
  @@report_error = false
349
381
  @@report_table = nil
350
382
 
351
- if Object.const_defined?("Cornucopia", false) &&
352
- Cornucopia.const_defined?("Util", false) &&
353
- Cornucopia::Util.const_defined?("ReportBuilder", false) &&
354
- !PseudoCleaner::Configuration.current_instance.disable_cornucopia_output
355
- Cornucopia::Util::ReportBuilder.current_report.within_section(options[:description]) do |report|
356
- report.within_hidden_table do |outer_report_table|
357
- Cornucopia::Util::ReportTable.new(
358
- nested_table: outer_report_table,
359
- suppress_blank_table: true) do |report_table|
360
- # redundant, but I like it because it is consistent.
361
- if options[:location]
362
- report_table.write_stats "location", options[:location]
363
- end
383
+ options[:description] ||= "PseudoCleaner::MasterCleaner.peek_data"
364
384
 
365
- @@report_table = report_table
385
+ time = Benchmark.measure do
386
+ puts options[:description] if PseudoCleaner::Configuration.instance.benchmark
387
+
388
+ if Object.const_defined?("Cornucopia", false) &&
389
+ Cornucopia.const_defined?("Util", false) &&
390
+ Cornucopia::Util.const_defined?("ReportBuilder", false) &&
391
+ !PseudoCleaner::Configuration.current_instance.disable_cornucopia_output
392
+ Cornucopia::Util::ReportBuilder.current_report.within_section(options[:description]) do |report|
393
+ report.within_hidden_table do |outer_report_table|
394
+ Cornucopia::Util::ReportTable.new(
395
+ nested_table: outer_report_table,
396
+ suppress_blank_table: true) do |report_table|
397
+ # redundant, but I like it because it is consistent.
398
+ if options[:location]
399
+ report_table.write_stats "location", options[:location]
400
+ end
366
401
 
367
- peek_values
402
+ @@report_table = report_table
403
+
404
+ peek_values
405
+ end
368
406
  end
369
407
  end
370
- end
371
408
 
372
- @@report_table = nil
373
- else
374
- PseudoCleaner::Logger.write(options[:description])
409
+ @@report_table = nil
410
+ else
411
+ PseudoCleaner::Logger.write(options[:description])
375
412
 
376
- peek_values
413
+ peek_values
414
+ end
377
415
  end
416
+
417
+ puts "#{options[:description]} time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
378
418
  end
379
419
 
380
420
  def peek_data_new_test(options = {})
381
421
  options[:description] ||= "PseudoCleaner::MasterCleaner.peek_data"
382
422
 
383
- within_report_block(options) do
384
- peek_values
423
+ time = Benchmark.measure do
424
+ puts options[:description] if PseudoCleaner::Configuration.instance.benchmark
425
+
426
+ within_report_block(options) do
427
+ peek_values
428
+ end
385
429
  end
430
+ puts "#{options[:description]} time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
386
431
  end
387
432
 
388
433
  def peek_values
@@ -403,45 +448,50 @@ module PseudoCleaner
403
448
  @cleaners = []
404
449
  @test_strategy = test_strategy
405
450
 
406
- start_method = "#{test_type}_start".to_sym
407
- end_method = "#{test_type}_end".to_sym
451
+ time = Benchmark.measure do
452
+ puts " Building cleaners" if PseudoCleaner::Configuration.instance.benchmark
408
453
 
409
- PseudoCleaner::MasterCleaner.cleaner_classes.each do |clean_class|
410
- table = clean_class[0]
411
- table ||= clean_class[1]
454
+ start_method = "#{test_type}_start".to_sym
455
+ end_method = "#{test_type}_end".to_sym
412
456
 
413
- begin
414
- @cleaners << clean_class[2].new(start_method, end_method, table, options)
415
- rescue Exception => error
416
- puts error.to_s
417
- raise error
457
+ PseudoCleaner::MasterCleaner.cleaner_classes.each do |clean_class|
458
+ table = clean_class[0]
459
+ table ||= clean_class[1]
460
+
461
+ begin
462
+ @cleaners << clean_class[2].new(start_method, end_method, table, options)
463
+ rescue Exception => error
464
+ puts error.to_s
465
+ raise error
466
+ end
418
467
  end
419
- end
420
468
 
421
- unless @@cleaner_classes_sorted
422
- seed_sorts = @cleaners.map { |cleaner| SortedSeeder::Seeder::SeederSorter.new(cleaner) }
423
- seed_sorts.sort!
469
+ unless @@cleaner_classes_sorted
470
+ seed_sorts = @cleaners.map { |cleaner| SortedSeeder::Seeder::SeederSorter.new(cleaner) }
471
+ seed_sorts.sort!
424
472
 
425
- @cleaners = seed_sorts.map(&:seed_base_object)
473
+ @cleaners = seed_sorts.map(&:seed_base_object)
426
474
 
427
- sorted_classes = []
428
- @cleaners.each do |cleaner|
429
- cleaner_class = PseudoCleaner::MasterCleaner.cleaner_classes.detect do |unsorted_cleaner|
430
- if cleaner.class == unsorted_cleaner[2]
431
- if unsorted_cleaner[2] == PseudoCleaner::TableCleaner
432
- cleaner.table == unsorted_cleaner[0] || cleaner.table == unsorted_cleaner[1]
433
- else
434
- true
475
+ sorted_classes = []
476
+ @cleaners.each do |cleaner|
477
+ cleaner_class = PseudoCleaner::MasterCleaner.cleaner_classes.detect do |unsorted_cleaner|
478
+ if cleaner.class == unsorted_cleaner[2]
479
+ if unsorted_cleaner[2] == PseudoCleaner::TableCleaner
480
+ cleaner.table == unsorted_cleaner[0] || cleaner.table == unsorted_cleaner[1]
481
+ else
482
+ true
483
+ end
435
484
  end
436
485
  end
486
+
487
+ sorted_classes << cleaner_class
437
488
  end
438
489
 
439
- sorted_classes << cleaner_class
490
+ @@cleaner_classes = sorted_classes
491
+ @@cleaner_classes_sorted = true
440
492
  end
441
-
442
- @@cleaner_classes = sorted_classes
443
- @@cleaner_classes_sorted = true
444
493
  end
494
+ puts " Building cleaners time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
445
495
  end
446
496
 
447
497
  start_all_cleaners options
@@ -372,9 +372,15 @@ module PseudoCleaner
372
372
  end
373
373
 
374
374
  def suite_start test_strategy
375
- @test_strategy ||= test_strategy
375
+ time = Benchmark.measure do
376
+ puts " RedisCleaner(#{redis_name})" if PseudoCleaner::Configuration.instance.benchmark
377
+
378
+ @test_strategy ||= test_strategy
376
379
 
377
- start_monitor
380
+ start_monitor
381
+ end
382
+
383
+ puts " RedisCleaner(#{redis_name}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
378
384
  end
379
385
 
380
386
  def suspend_tracking(&block)
@@ -390,52 +396,76 @@ module PseudoCleaner
390
396
  def test_start test_strategy
391
397
  @test_strategy ||= test_strategy
392
398
 
393
- synchronize_test_values do |test_values|
394
- if test_values && !test_values.empty?
395
- report_dirty_values "values altered before the test started", test_values
399
+ time = Benchmark.measure do
400
+ puts " RedisCleaner(#{redis_name})" if PseudoCleaner::Configuration.instance.benchmark
401
+
402
+ synchronize_test_values do |test_values|
403
+ if test_values && !test_values.empty?
404
+ report_dirty_values "values altered before the test started", test_values
396
405
 
397
- test_values.each do |value|
398
- redis.del value unless initial_keys.include?(value)
406
+ test_values.each do |value|
407
+ redis.del value unless initial_keys.include?(value)
408
+ end
399
409
  end
400
410
  end
411
+
412
+ @updated_keys = SortedSet.new
401
413
  end
402
414
 
403
- @updated_keys = SortedSet.new
415
+ puts " RedisCleaner(#{redis_name}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
404
416
  end
405
417
 
406
418
  def test_end test_strategy
407
- synchronize_test_values do |updated_values|
408
- if updated_values && !updated_values.empty?
409
- report_keys = []
419
+ time = Benchmark.measure do
420
+ puts " RedisCleaner(#{redis_name})" if PseudoCleaner::Configuration.instance.benchmark
410
421
 
411
- if @options[:output_diagnostics]
412
- report_dirty_values "updated values", updated_values
413
- end
422
+ synchronize_test_values do |updated_values|
423
+ if updated_values && !updated_values.empty?
424
+ report_keys = []
414
425
 
415
- updated_values.each do |value|
416
- if initial_keys.include?(value)
417
- report_keys << value
418
- @suite_altered_keys << value unless ignore_key(value)
419
- else
420
- redis.del(value)
426
+ if @options[:output_diagnostics]
427
+ report_dirty_values "updated values", updated_values
421
428
  end
422
- end
423
429
 
424
- report_dirty_values "initial values altered by test", report_keys
430
+ updated_values.each do |value|
431
+ if initial_keys.include?(value)
432
+ report_keys << value
433
+ @suite_altered_keys << value unless ignore_key(value)
434
+ else
435
+ redis.del(value)
436
+ end
437
+ end
438
+
439
+ report_dirty_values "initial values altered by test", report_keys
440
+ end
425
441
  end
442
+
443
+ @updated_keys = SortedSet.new
426
444
  end
427
445
 
428
- @updated_keys = SortedSet.new
446
+ puts " RedisCleaner(#{redis_name}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
429
447
  end
430
448
 
431
449
  def suite_end test_strategy
432
- report_end_of_suite_state "suite end"
450
+ time = Benchmark.measure do
451
+ puts " RedisCleaner(#{redis_name})" if PseudoCleaner::Configuration.instance.benchmark
452
+
453
+ report_end_of_suite_state "suite end"
454
+ end
455
+
456
+ puts " RedisCleaner(#{redis_name}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
433
457
  end
434
458
 
435
459
  def reset_suite
436
- report_end_of_suite_state "reset suite"
460
+ time = Benchmark.measure do
461
+ puts " RedisCleaner(#{redis_name})" if PseudoCleaner::Configuration.instance.benchmark
437
462
 
438
- start_monitor
463
+ report_end_of_suite_state "reset suite"
464
+
465
+ start_monitor
466
+ end
467
+
468
+ puts " RedisCleaner(#{redis_name}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
439
469
  end
440
470
 
441
471
  def ignore_regexes
@@ -456,47 +486,59 @@ module PseudoCleaner
456
486
  end
457
487
 
458
488
  def review_rows(&block)
459
- synchronize_test_values do |updated_values|
460
- if updated_values && !updated_values.empty?
461
- updated_values.each do |updated_value|
462
- unless ignore_key(updated_value)
463
- block.yield redis_name, report_record(updated_value)
489
+ time = Benchmark.measure do
490
+ puts " RedisCleaner(#{redis_name})" if PseudoCleaner::Configuration.instance.benchmark
491
+
492
+ synchronize_test_values do |updated_values|
493
+ if updated_values && !updated_values.empty?
494
+ updated_values.each do |updated_value|
495
+ unless ignore_key(updated_value)
496
+ block.yield redis_name, report_record(updated_value)
497
+ end
464
498
  end
465
499
  end
466
500
  end
467
501
  end
502
+
503
+ puts " RedisCleaner(#{redis_name}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
468
504
  end
469
505
 
470
506
  def peek_values
471
- synchronize_test_values do |updated_values|
472
- if updated_values && !updated_values.empty?
473
- output_values = false
474
-
475
- if PseudoCleaner::MasterCleaner.report_table
476
- Cornucopia::Util::ReportTable.new(nested_table: PseudoCleaner::MasterCleaner.report_table,
477
- nested_table_label: redis_name,
478
- suppress_blank_table: true) do |report_table|
507
+ time = Benchmark.measure do
508
+ puts " RedisCleaner(#{redis_name})" if PseudoCleaner::Configuration.instance.benchmark
509
+
510
+ synchronize_test_values do |updated_values|
511
+ if updated_values && !updated_values.empty?
512
+ output_values = false
513
+
514
+ if PseudoCleaner::MasterCleaner.report_table
515
+ Cornucopia::Util::ReportTable.new(nested_table: PseudoCleaner::MasterCleaner.report_table,
516
+ nested_table_label: redis_name,
517
+ suppress_blank_table: true) do |report_table|
518
+ updated_values.each_with_index do |updated_value, index|
519
+ unless ignore_key(updated_value)
520
+ output_values = true
521
+ report_table.write_stats index.to_s, report_record(updated_value)
522
+ end
523
+ end
524
+ end
525
+ else
526
+ PseudoCleaner::Logger.write(" #{redis_name}")
527
+
479
528
  updated_values.each_with_index do |updated_value, index|
480
529
  unless ignore_key(updated_value)
481
530
  output_values = true
482
- report_table.write_stats index.to_s, report_record(updated_value)
531
+ PseudoCleaner::Logger.write(" #{index}: #{report_record(updated_value)}")
483
532
  end
484
533
  end
485
534
  end
486
- else
487
- PseudoCleaner::Logger.write(" #{redis_name}")
488
535
 
489
- updated_values.each_with_index do |updated_value, index|
490
- unless ignore_key(updated_value)
491
- output_values = true
492
- PseudoCleaner::Logger.write(" #{index}: #{report_record(updated_value)}")
493
- end
494
- end
536
+ PseudoCleaner::MasterCleaner.report_error if output_values
495
537
  end
496
-
497
- PseudoCleaner::MasterCleaner.report_error if output_values
498
538
  end
499
539
  end
540
+
541
+ puts " RedisCleaner(#{redis_name}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
500
542
  end
501
543
 
502
544
  def report_end_of_suite_state report_reason
@@ -5,7 +5,15 @@ module PseudoCleaner
5
5
  @@initial_states = {}
6
6
 
7
7
  def reset_suite
8
- @@initial_states = {}
8
+ initial_state = @@initial_states[@table]
9
+
10
+ time = Benchmark.measure do
11
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
12
+
13
+ @@initial_states = {}
14
+ end
15
+
16
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
9
17
  end
10
18
 
11
19
  def initialize(start_method, end_method, table, options = {})
@@ -70,12 +78,28 @@ module PseudoCleaner
70
78
 
71
79
  def test_start test_strategy
72
80
  @test_strategy ||= test_strategy
73
- save_state
81
+ initial_state = @@initial_states[@table]
82
+
83
+ time = Benchmark.measure do
84
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
85
+
86
+ save_state
87
+ end
88
+
89
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
74
90
  end
75
91
 
76
92
  def suite_start test_strategy
77
93
  @test_strategy ||= test_strategy
78
- save_state
94
+ initial_state = @@initial_states[@table]
95
+
96
+ time = Benchmark.measure do
97
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
98
+
99
+ save_state
100
+ end
101
+
102
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
79
103
  end
80
104
 
81
105
  def within_report_block(description, conditional, &block)
@@ -243,58 +267,79 @@ module PseudoCleaner
243
267
  def test_end test_strategy
244
268
  initial_state = @@initial_states[@table]
245
269
 
246
- within_report_block(initial_state[:table_name], @options[:output_diagnostics]) do
247
- reset_table test_strategy, false, false
270
+ time = Benchmark.measure do
271
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
272
+
273
+
274
+ within_report_block(initial_state[:table_name], @options[:output_diagnostics]) do
275
+ reset_table test_strategy, false, false
276
+ end
248
277
  end
278
+
279
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
249
280
  end
250
281
 
251
282
  def suite_end test_strategy
252
283
  initial_state = @@initial_states[@table]
253
284
 
254
- within_report_block(initial_state[:table_name], @options[:output_diagnostics]) do
255
- reset_table test_strategy, true, true
285
+ time = Benchmark.measure do
286
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
287
+
288
+
289
+ within_report_block(initial_state[:table_name], @options[:output_diagnostics]) do
290
+ reset_table test_strategy, true, true
291
+ end
256
292
  end
293
+
294
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
257
295
  end
258
296
 
259
297
  def reset_table test_strategy, require_output, is_suite_end
260
298
  initial_state = @@initial_states[@table]
261
299
 
262
- if @test_strategy != test_strategy && !PseudoCleaner::Configuration.current_instance.single_cleaner_set
263
- if @options[:output_diagnostics]
264
- PseudoCleaner::MasterCleaner.report_error
300
+ time = Benchmark.measure do
301
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
265
302
 
266
- if @report_table
267
- @report_table.write_stats("WARNING", "*** The ending strategy for \"#{initial_state[:table_name]}\" changed! ***")
268
- else
269
- PseudoCleaner::Logger.write(" *** The ending strategy for \"#{initial_state[:table_name]}\" changed! ***".red.on_light_white)
303
+
304
+ if @test_strategy != test_strategy && !PseudoCleaner::Configuration.current_instance.single_cleaner_set
305
+ if @options[:output_diagnostics]
306
+ PseudoCleaner::MasterCleaner.report_error
307
+
308
+ if @report_table
309
+ @report_table.write_stats("WARNING", "*** The ending strategy for \"#{initial_state[:table_name]}\" changed! ***")
310
+ else
311
+ PseudoCleaner::Logger.write(" *** The ending strategy for \"#{initial_state[:table_name]}\" changed! ***".red.on_light_white)
312
+ end
270
313
  end
271
314
  end
272
- end
273
315
 
274
- if test_strategy == :pseudo_delete || PseudoCleaner::Configuration.current_instance.post_transaction_analysis
275
- # we should check the relationships for any records which still refer to
276
- # a now deleted record. (i.e. if we updated a record to refer to a record)
277
- # we deleted...
278
- #
279
- # Which is why this is not a common or particularly good solution.
280
- #
281
- # I'm using it because it is faster than reseeding each test...
282
- # And, I can be responsible for worrying about referential integrity in the test
283
- # if I want to...
284
- pre_string = " Resetting table \"#{initial_state[:table_name]}\" for #{test_strategy}..."
285
- pre_string = "Tests ended without cleaning up properly!!!\n" + pre_string if require_output
286
- pre_string = pre_string.red.on_light_white if require_output
316
+ if test_strategy == :pseudo_delete || PseudoCleaner::Configuration.current_instance.post_transaction_analysis
317
+ # we should check the relationships for any records which still refer to
318
+ # a now deleted record. (i.e. if we updated a record to refer to a record)
319
+ # we deleted...
320
+ #
321
+ # Which is why this is not a common or particularly good solution.
322
+ #
323
+ # I'm using it because it is faster than reseeding each test...
324
+ # And, I can be responsible for worrying about referential integrity in the test
325
+ # if I want to...
326
+ pre_string = " Resetting table \"#{initial_state[:table_name]}\" for #{test_strategy}..."
327
+ pre_string = "Tests ended without cleaning up properly!!!\n" + pre_string if require_output
328
+ pre_string = pre_string.red.on_light_white if require_output
287
329
 
288
- require_output ||= @options[:output_diagnostics]
330
+ require_output ||= @options[:output_diagnostics]
289
331
 
290
- if initial_state[:table_is_active_record]
291
- test_end_active_record test_strategy, pre_string, require_output, is_suite_end
292
- end
332
+ if initial_state[:table_is_active_record]
333
+ test_end_active_record test_strategy, pre_string, require_output, is_suite_end
334
+ end
293
335
 
294
- if initial_state[:table_is_sequel_model]
295
- test_end_sequel_model test_strategy, pre_string, require_output, is_suite_end
336
+ if initial_state[:table_is_sequel_model]
337
+ test_end_sequel_model test_strategy, pre_string, require_output, is_suite_end
338
+ end
296
339
  end
297
340
  end
341
+
342
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
298
343
  end
299
344
 
300
345
  def test_end_active_record test_strategy, pre_string, require_output, is_suite_end
@@ -646,15 +691,22 @@ module PseudoCleaner
646
691
  def review_rows(&block)
647
692
  initial_state = @@initial_states[@table]
648
693
 
649
- if initial_state
650
- if initial_state[:table_is_active_record]
651
- review_rows_active_record &block
652
- end
694
+ time = Benchmark.measure do
695
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
653
696
 
654
- if initial_state[:table_is_sequel_model]
655
- review_rows_sequel_model &block
697
+
698
+ if initial_state
699
+ if initial_state[:table_is_active_record]
700
+ review_rows_active_record &block
701
+ end
702
+
703
+ if initial_state[:table_is_sequel_model]
704
+ review_rows_sequel_model &block
705
+ end
656
706
  end
657
707
  end
708
+
709
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
658
710
  end
659
711
 
660
712
  def review_rows_active_record(&block)
@@ -714,35 +766,43 @@ module PseudoCleaner
714
766
  end
715
767
 
716
768
  def peek_values
717
- row_data = []
718
- peek_name = nil
769
+ row_data = []
770
+ peek_name = nil
771
+ initial_state = @@initial_states[@table]
719
772
 
720
- review_rows do |table_name, table_values|
721
- peek_name = table_name
722
- row_data << table_values
723
- end
773
+ time = Benchmark.measure do
774
+ puts " TableCleaner(#{initial_state[:table_name]})" if PseudoCleaner::Configuration.instance.benchmark
724
775
 
725
- if row_data && !row_data.empty?
726
- output_values = false
727
776
 
728
- if PseudoCleaner::MasterCleaner.report_table
729
- Cornucopia::Util::ReportTable.new(nested_table: PseudoCleaner::MasterCleaner.report_table,
730
- nested_table_label: peek_name,
731
- suppress_blank_table: true) do |report_table|
732
- row_data.each_with_index do |row, row_index|
733
- report_table.write_stats row_index.to_s, row
777
+ review_rows do |table_name, table_values|
778
+ peek_name = table_name
779
+ row_data << table_values
780
+ end
781
+
782
+ if row_data && !row_data.empty?
783
+ output_values = false
784
+
785
+ if PseudoCleaner::MasterCleaner.report_table
786
+ Cornucopia::Util::ReportTable.new(nested_table: PseudoCleaner::MasterCleaner.report_table,
787
+ nested_table_label: peek_name,
788
+ suppress_blank_table: true) do |report_table|
789
+ row_data.each_with_index do |row, row_index|
790
+ report_table.write_stats row_index.to_s, row
791
+ end
734
792
  end
735
- end
736
- else
737
- PseudoCleaner::Logger.write(" #{peek_name}")
793
+ else
794
+ PseudoCleaner::Logger.write(" #{peek_name}")
738
795
 
739
- row_data.each_with_index do |updated_value, index|
740
- PseudoCleaner::Logger.write(" #{index}: #{updated_value}")
796
+ row_data.each_with_index do |updated_value, index|
797
+ PseudoCleaner::Logger.write(" #{index}: #{updated_value}")
798
+ end
741
799
  end
742
- end
743
800
 
744
- PseudoCleaner::MasterCleaner.report_error
801
+ PseudoCleaner::MasterCleaner.report_error
802
+ end
745
803
  end
804
+
805
+ puts " TableCleaner(#{initial_state[:table_name]}) time: #{time}" if PseudoCleaner::Configuration.instance.benchmark
746
806
  end
747
807
  end
748
808
  end
@@ -1,3 +1,3 @@
1
1
  module PseudoCleaner
2
- VERSION = "0.0.42"
2
+ VERSION = "0.0.43"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pseudo_cleaner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.42
4
+ version: 0.0.43
5
5
  platform: ruby
6
6
  authors:
7
7
  - RealNobody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-27 00:00:00.000000000 Z
11
+ date: 2015-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize