pseudo_cleaner 0.0.28 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MGRjMGFmMTBkN2Y2MjUzNDUxMjdlNGUyMjkxMmUwMjdiOWM1YzY0NA==
4
+ ODhhODA3NTdjMDkxM2Q5MGIxMjAwMGMyNWMxYzI5NDBkYzJmMmRlYg==
5
5
  data.tar.gz: !binary |-
6
- NWQzZTg1ODM1ZWMzNzI4MTJkZDA3ZjgzNDE2OGRjNTI2NGQxNzczNw==
6
+ ZWZkM2E1YmI1ZjI3ZTAwMmY1NzgyMWI1YjRkYmQwNDFhMzY1MDE1NA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZGQ5NDRjMGZiOTJlMzI2YWVmMTljZGNhMDFlYzhkOTdiMzVjNDI5ZmEzMjIw
10
- MmRkZjI5MTE1MThmZDkwNDIyNWE5YjA5NDkxNzcxNmMyYzQwODM1YWY1YTVl
11
- Mjc2OTRmZThjYTJjNzZkYmU2ZmUxZjc5Mzk0Zjk1MWNiODBkMmI=
9
+ YWZlYTk2ODUwNTQ3NTEyNzgyMWFhYjlhNThiYmIzOWEzYjQzODgzOTc4Y2Zi
10
+ NTgwYmI5MGZkM2YwMDE0MGFlMGZkMDI5OGJmY2FmNmViNGJmZTFkMjgzN2U5
11
+ ZjY2ZDdiNTQ4YzllZWIwYzNlOTQ5ZDI1M2I3ZThkY2ExMTZlNGE=
12
12
  data.tar.gz: !binary |-
13
- ODY3ZmIyNDIwZDgyNjI5ODBlZTY4MzA2NDkxZjhmNGRlZGE5YzQ4YmJhZjdi
14
- NzI4Yjk3ZTE1NGU1YTU4OWRiYjJlYTgzOTc3NjBlODA2ODYzNWM2MzdmOWYx
15
- NmIyMzVjMmY1MjRkYTU0Y2NmOGExMGMzNzNkMmYwM2QyZGVmYTM=
13
+ NGIxMGFkMWI3MWNmNWQzZTZhM2Q3NDBhMmY2ODUxYzk4YmZlZjM3ZWE4OGFj
14
+ MWIxZjA5YjQ5ZTUyMzQ4MWQ2OGQ3YmUzNmIzZDEwMmE5ZDJlYjE5MjY1OTIw
15
+ NjhhYjZlMmI0YzIzNWY1MTBmOThhY2Y4MjVhMDdlM2U4MGRlMDc=
@@ -1,41 +1,56 @@
1
- first_test_run = false
1
+ require "singleton"
2
2
 
3
3
  # turn off Cucumber's default usage of DatabaseCleaner
4
4
  Cucumber::Rails::Database.autorun_database_cleaner = false
5
5
 
6
- Before do |scenario|
7
- unless first_test_run
8
- first_test_run = true
9
- # before tests run...
10
- # We start suite in case a custom cleaner wants/needs to.
11
- if PseudoCleaner::Configuration.current_instance.clean_database_before_tests
12
- PseudoCleaner::MasterCleaner.reset_database
13
- else
14
- PseudoCleaner::MasterCleaner.start_suite
15
- end
6
+ class CucumberHook
7
+ include Singleton
8
+
9
+ attr_accessor :first_test_run
16
10
 
17
- DatabaseCleaner.strategy = :transaction
11
+ def initialize
12
+ @first_test_run = false
18
13
  end
19
- end
20
14
 
21
- Before("~@truncation", "~@deletion") do |scenario|
22
- PseudoCleaner::MasterCleaner.start_example(scenario, :pseudo_delete)
15
+ def run_test(scenario, strategy, block)
16
+ unless first_test_run
17
+ @first_test_run = true
18
+ # before tests run...
19
+ # We start suite in case a custom cleaner wants/needs to.
20
+
21
+ if PseudoCleaner::Configuration.current_instance.clean_database_before_tests
22
+ PseudoCleaner::MasterCleaner.reset_database
23
+ else
24
+ PseudoCleaner::MasterCleaner.start_suite
25
+ end
26
+
27
+ DatabaseCleaner.strategy = :transaction
28
+ end
29
+
30
+ PseudoCleaner::MasterCleaner.start_example(scenario, strategy)
31
+
32
+ begin
33
+ block.call
34
+ ensure
35
+ PseudoCleaner::MasterCleaner.end_example(scenario)
36
+ end
37
+ end
23
38
  end
24
39
 
25
- Before("@truncation") do |scenario|
26
- PseudoCleaner::MasterCleaner.start_example(scenario, :truncation)
40
+ Around("~@truncation", "~@deletion") do |scenario, block|
41
+ CucumberHook.instance.run_test(scenario, :pseudo_delete, block)
27
42
  end
28
43
 
29
- Before("@deletion", "~@truncation") do |scenario|
30
- PseudoCleaner::MasterCleaner.start_example(scenario, :deletion)
44
+ Around("@truncation") do |scenario, block|
45
+ CucumberHook.instance.run_test(scenario, :truncation, block)
31
46
  end
32
47
 
33
- Before("@none") do |scenario|
34
- PseudoCleaner::MasterCleaner.start_example(scenario, :none)
48
+ Around("@deletion", "~@truncation") do |scenario, block|
49
+ CucumberHook.instance.run_test(scenario, :deletion, block)
35
50
  end
36
51
 
37
- After do |scenario|
38
- PseudoCleaner::MasterCleaner.end_example(scenario)
52
+ Around("@none") do |scenario, block|
53
+ CucumberHook.instance.run_test(scenario, :none, block)
39
54
  end
40
55
 
41
56
  at_exit do
@@ -15,31 +15,30 @@ RSpec.configure do |config|
15
15
  PseudoCleaner::MasterCleaner.end_suite
16
16
  end
17
17
 
18
- config.before(:each) do |example|
19
- new_strategy = nil
18
+ config.around(:each) do |example|
19
+ test_example = example.example if example.respond_to?(:example)
20
+ test_example ||= self.example if self.respond_to?(:example)
20
21
 
21
- clean_example = example
22
- clean_example = example.example if example.respond_to?(:example)
22
+ new_strategy = nil
23
23
 
24
- new_strategy = clean_example.metadata[:strategy]
24
+ new_strategy = test_example.metadata[:strategy]
25
25
 
26
26
  if new_strategy && !PseudoCleaner::MasterCleaner::CLEANING_STRATEGIES.include?(new_strategy)
27
- PseudoCleaner::Logger.write "*** Unknown/invalid cleaning strategy #{clean_example.metadata[:strategy]}. Using default: :transaction ***".red.on_light_white
27
+ PseudoCleaner::Logger.write "*** Unknown/invalid cleaning strategy #{test_example.metadata[:strategy]}. Using default: :transaction ***".red.on_light_white
28
28
  new_strategy = :transaction
29
29
  end
30
- if clean_example.metadata[:js]
30
+ if test_example.metadata[:js]
31
31
  new_strategy ||= :pseudo_delete
32
32
  new_strategy = :pseudo_delete if new_strategy == :transaction
33
33
  end
34
34
  new_strategy ||= :transaction
35
35
 
36
- PseudoCleaner::MasterCleaner.start_example(clean_example, new_strategy)
37
- end
36
+ PseudoCleaner::MasterCleaner.start_example(test_example, new_strategy)
38
37
 
39
- config.after(:each) do |example|
40
- clean_example = example
41
- clean_example = example.example if example.respond_to?(:example)
42
-
43
- PseudoCleaner::MasterCleaner.end_example(clean_example)
38
+ begin
39
+ example.run
40
+ ensure
41
+ PseudoCleaner::MasterCleaner.end_example(test_example)
42
+ end
44
43
  end
45
44
  end
@@ -2,7 +2,7 @@ first_test_run = false
2
2
 
3
3
  # I haven't tested this fully yet, but I think that this should work.
4
4
 
5
- Spinach.hooks.before_scenario do |scenario, step_definitions|
5
+ Spinach.hooks.around_scenario do |scenario_data, step_definitions, &block|
6
6
  unless first_test_run
7
7
  first_test_run = true
8
8
  # before tests run...
@@ -26,10 +26,12 @@ Spinach.hooks.before_scenario do |scenario, step_definitions|
26
26
  :pseudo_delete
27
27
  end
28
28
  PseudoCleaner::MasterCleaner.start_example(scenario, strategy)
29
- end
30
29
 
31
- Spinach.hooks.after_scenario do |scenario, step_definitions|
32
- PseudoCleaner::MasterCleaner.end_example(scenario)
30
+ begin
31
+ block.call
32
+ ensure
33
+ PseudoCleaner::MasterCleaner.end_example(scenario)
34
+ end
33
35
  end
34
36
 
35
37
  Spinach.hooks.after_run do |status|
@@ -1,3 +1,3 @@
1
1
  module PseudoCleaner
2
- VERSION = "0.0.28"
2
+ VERSION = "0.0.29"
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.28
4
+ version: 0.0.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - RealNobody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-31 00:00:00.000000000 Z
11
+ date: 2015-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize