database_cleaner 1.6.2 → 1.8.5

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.
Files changed (170) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTE.markdown +1 -2
  3. data/Gemfile.lock +132 -93
  4. data/History.rdoc +67 -0
  5. data/README.markdown +88 -217
  6. data/Rakefile +12 -8
  7. data/{lib → adapters/database_cleaner-active_record/lib}/database_cleaner/active_record/base.rb +14 -5
  8. data/{lib → adapters/database_cleaner-active_record/lib}/database_cleaner/active_record/deletion.rb +19 -17
  9. data/{lib → adapters/database_cleaner-active_record/lib}/database_cleaner/active_record/truncation.rb +25 -20
  10. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/version.rb +5 -0
  11. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record.rb +6 -0
  12. data/adapters/database_cleaner-active_record/lib/database_cleaner-active_record.rb +1 -0
  13. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/version.rb +5 -0
  14. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato.rb +11 -0
  15. data/adapters/database_cleaner-couch_potato/lib/database_cleaner-couch_potato.rb +1 -0
  16. data/{lib → adapters/database_cleaner-data_mapper/lib}/database_cleaner/data_mapper/base.rb +4 -0
  17. data/{lib → adapters/database_cleaner-data_mapper/lib}/database_cleaner/data_mapper/truncation.rb +4 -3
  18. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/version.rb +5 -0
  19. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper.rb +4 -0
  20. data/adapters/database_cleaner-data_mapper/lib/database_cleaner-data_mapper.rb +1 -0
  21. data/{lib → adapters/database_cleaner-mongo/lib}/database_cleaner/mongo/truncation.rb +2 -0
  22. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/version.rb +5 -0
  23. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo.rb +10 -0
  24. data/adapters/database_cleaner-mongo/lib/database_cleaner-mongo.rb +1 -0
  25. data/{lib → adapters/database_cleaner-mongo_mapper/lib}/database_cleaner/mongo_mapper/base.rb +4 -0
  26. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb +35 -0
  27. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/version.rb +5 -0
  28. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper.rb +4 -0
  29. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner-mongo_mapper.rb +1 -0
  30. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo1_truncation_mixin.rb +26 -0
  31. data/{lib/database_cleaner/mongo2/truncation_mixin.rb → adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo2_truncation_mixin.rb} +3 -4
  32. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongoid_truncation_mixin.rb +65 -0
  33. data/{lib → adapters/database_cleaner-mongoid/lib}/database_cleaner/mongoid/truncation.rb +6 -6
  34. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/version.rb +5 -0
  35. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid.rb +10 -0
  36. data/adapters/database_cleaner-mongoid/lib/database_cleaner-mongoid.rb +1 -0
  37. data/{lib → adapters/database_cleaner-moped/lib}/database_cleaner/moped/base.rb +1 -1
  38. data/{lib → adapters/database_cleaner-moped/lib}/database_cleaner/moped/truncation_base.rb +4 -0
  39. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/version.rb +5 -0
  40. data/adapters/database_cleaner-moped/lib/database_cleaner/moped.rb +10 -0
  41. data/adapters/database_cleaner-moped/lib/database_cleaner-moped.rb +1 -0
  42. data/{lib → adapters/database_cleaner-neo4j/lib}/database_cleaner/neo4j/base.rb +4 -0
  43. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/version.rb +5 -0
  44. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j.rb +6 -0
  45. data/adapters/database_cleaner-neo4j/lib/database_cleaner-neo4j.rb +1 -0
  46. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm/truncation.rb +24 -0
  47. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm/version.rb +5 -0
  48. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm.rb +12 -0
  49. data/adapters/database_cleaner-ohm/lib/database_cleaner-ohm.rb +1 -0
  50. data/{lib → adapters/database_cleaner-redis/lib}/database_cleaner/redis/base.rb +4 -0
  51. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/version.rb +5 -0
  52. data/adapters/database_cleaner-redis/lib/database_cleaner/redis.rb +4 -0
  53. data/adapters/database_cleaner-redis/lib/database_cleaner-redis.rb +1 -0
  54. data/{lib → adapters/database_cleaner-sequel/lib}/database_cleaner/sequel/base.rb +4 -0
  55. data/{lib → adapters/database_cleaner-sequel/lib}/database_cleaner/sequel/truncation.rb +16 -15
  56. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/version.rb +5 -0
  57. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel.rb +6 -0
  58. data/adapters/database_cleaner-sequel/lib/database_cleaner-sequel.rb +1 -0
  59. data/lib/database_cleaner/base.rb +94 -105
  60. data/lib/database_cleaner/configuration.rb +87 -83
  61. data/lib/database_cleaner/deprecation.rb +26 -0
  62. data/lib/database_cleaner/null_strategy.rb +6 -6
  63. data/lib/database_cleaner/orm_autodetector.rb +41 -0
  64. data/lib/database_cleaner/safeguard.rb +107 -0
  65. data/lib/database_cleaner/spec/database_helper.rb +82 -0
  66. data/lib/database_cleaner/spec/shared_examples.rb +15 -0
  67. data/lib/database_cleaner/spec.rb +2 -0
  68. data/lib/database_cleaner/version.rb +3 -0
  69. data/lib/database_cleaner.rb +41 -2
  70. metadata +113 -126
  71. data/VERSION.yml +0 -4
  72. data/examples/Gemfile +0 -1
  73. data/examples/Gemfile.lock +0 -1
  74. data/examples/config/database.yml.example +0 -8
  75. data/examples/config/redis.yml +0 -8
  76. data/examples/db/sqlite_databases_go_here +0 -0
  77. data/examples/features/example.feature +0 -11
  78. data/examples/features/example_multiple_db.feature +0 -23
  79. data/examples/features/example_multiple_orm.feature +0 -22
  80. data/examples/features/step_definitions/activerecord_steps.rb +0 -31
  81. data/examples/features/step_definitions/couchpotato_steps.rb +0 -31
  82. data/examples/features/step_definitions/datamapper_steps.rb +0 -37
  83. data/examples/features/step_definitions/mongoid_steps.rb +0 -23
  84. data/examples/features/step_definitions/mongomapper_steps.rb +0 -31
  85. data/examples/features/step_definitions/neo4j_steps.rb +0 -23
  86. data/examples/features/step_definitions/ohm_steps.rb +0 -31
  87. data/examples/features/step_definitions/redis_steps.rb +0 -31
  88. data/examples/features/step_definitions/translation_steps.rb +0 -55
  89. data/examples/features/support/env.rb +0 -61
  90. data/examples/lib/activerecord_models.rb +0 -41
  91. data/examples/lib/couchpotato_models.rb +0 -61
  92. data/examples/lib/datamapper_models.rb +0 -50
  93. data/examples/lib/mongoid_models.rb +0 -44
  94. data/examples/lib/mongomapper_models.rb +0 -51
  95. data/examples/lib/neo4j_models.rb +0 -17
  96. data/examples/lib/ohm_models.rb +0 -43
  97. data/examples/lib/redis_models.rb +0 -65
  98. data/examples/lib/sequel_models.rb +0 -9
  99. data/features/cleaning.feature +0 -30
  100. data/features/cleaning_default_strategy.feature +0 -23
  101. data/features/cleaning_multiple_dbs.feature +0 -22
  102. data/features/cleaning_multiple_orms.feature +0 -67
  103. data/features/step_definitions/database_cleaner_steps.rb +0 -33
  104. data/features/support/env.rb +0 -4
  105. data/features/support/feature_runner.rb +0 -39
  106. data/lib/database_cleaner/mongo2/base.rb +0 -16
  107. data/lib/database_cleaner/mongo_mapper/truncation.rb +0 -19
  108. data/lib/database_cleaner/ohm/truncation.rb +0 -15
  109. data/spec/database_cleaner/active_record/base_spec.rb +0 -188
  110. data/spec/database_cleaner/active_record/transaction_spec.rb +0 -176
  111. data/spec/database_cleaner/active_record/truncation/mysql2_spec.rb +0 -38
  112. data/spec/database_cleaner/active_record/truncation/mysql_spec.rb +0 -38
  113. data/spec/database_cleaner/active_record/truncation/postgresql_spec.rb +0 -75
  114. data/spec/database_cleaner/active_record/truncation/shared_fast_truncation.rb +0 -40
  115. data/spec/database_cleaner/active_record/truncation/sqlite3_spec.rb +0 -40
  116. data/spec/database_cleaner/active_record/truncation_spec.rb +0 -180
  117. data/spec/database_cleaner/base_spec.rb +0 -617
  118. data/spec/database_cleaner/configuration_spec.rb +0 -345
  119. data/spec/database_cleaner/couch_potato/truncation_spec.rb +0 -41
  120. data/spec/database_cleaner/data_mapper/base_spec.rb +0 -30
  121. data/spec/database_cleaner/data_mapper/transaction_spec.rb +0 -23
  122. data/spec/database_cleaner/data_mapper/truncation/sqlite3_spec.rb +0 -41
  123. data/spec/database_cleaner/data_mapper/truncation_spec.rb +0 -11
  124. data/spec/database_cleaner/generic/base_spec.rb +0 -61
  125. data/spec/database_cleaner/generic/truncation_spec.rb +0 -118
  126. data/spec/database_cleaner/mongo/mongo_examples.rb +0 -26
  127. data/spec/database_cleaner/mongo/truncation_spec.rb +0 -72
  128. data/spec/database_cleaner/mongo_mapper/base_spec.rb +0 -33
  129. data/spec/database_cleaner/mongo_mapper/mongo_examples.rb +0 -8
  130. data/spec/database_cleaner/mongo_mapper/truncation_spec.rb +0 -74
  131. data/spec/database_cleaner/moped/moped_examples.rb +0 -32
  132. data/spec/database_cleaner/moped/truncation_spec.rb +0 -80
  133. data/spec/database_cleaner/neo4j/base_spec.rb +0 -43
  134. data/spec/database_cleaner/neo4j/transaction_spec.rb +0 -25
  135. data/spec/database_cleaner/null_strategy_spec.rb +0 -28
  136. data/spec/database_cleaner/ohm/truncation_spec.rb +0 -70
  137. data/spec/database_cleaner/redis/base_spec.rb +0 -43
  138. data/spec/database_cleaner/redis/truncation_spec.rb +0 -63
  139. data/spec/database_cleaner/sequel/base_spec.rb +0 -32
  140. data/spec/database_cleaner/sequel/deletion_spec.rb +0 -58
  141. data/spec/database_cleaner/sequel/transaction_spec.rb +0 -21
  142. data/spec/database_cleaner/sequel/truncation/sqlite3_spec.rb +0 -0
  143. data/spec/database_cleaner/sequel/truncation_spec.rb +0 -182
  144. data/spec/database_cleaner/shared_strategy.rb +0 -15
  145. data/spec/rcov.opts +0 -1
  146. data/spec/spec_helper.rb +0 -21
  147. data/spec/support/active_record/database_setup.rb +0 -6
  148. data/spec/support/active_record/migrations/20150101010000_create_users.rb +0 -14
  149. data/spec/support/active_record/migrations/20150101020000_create_agents.rb +0 -14
  150. data/spec/support/active_record/mysql2_setup.rb +0 -39
  151. data/spec/support/active_record/mysql_setup.rb +0 -38
  152. data/spec/support/active_record/postgresql_setup.rb +0 -48
  153. data/spec/support/active_record/schema_setup.rb +0 -17
  154. data/spec/support/active_record/sqlite3_setup.rb +0 -40
  155. data/spec/support/data_mapper/schema_setup.rb +0 -15
  156. data/spec/support/data_mapper/sqlite3_setup.rb +0 -39
  157. /data/{lib → adapters/database_cleaner-active_record/lib}/database_cleaner/active_record/transaction.rb +0 -0
  158. /data/{lib → adapters/database_cleaner-couch_potato/lib}/database_cleaner/couch_potato/base.rb +0 -0
  159. /data/{lib → adapters/database_cleaner-couch_potato/lib}/database_cleaner/couch_potato/truncation.rb +0 -0
  160. /data/{lib → adapters/database_cleaner-data_mapper/lib}/database_cleaner/data_mapper/transaction.rb +0 -0
  161. /data/{lib → adapters/database_cleaner-mongo/lib}/database_cleaner/mongo/base.rb +0 -0
  162. /data/{lib → adapters/database_cleaner-mongo/lib}/database_cleaner/mongo/truncation_mixin.rb +0 -0
  163. /data/{lib → adapters/database_cleaner-mongoid/lib}/database_cleaner/mongoid/base.rb +0 -0
  164. /data/{lib → adapters/database_cleaner-moped/lib}/database_cleaner/moped/truncation.rb +0 -0
  165. /data/{lib → adapters/database_cleaner-neo4j/lib}/database_cleaner/neo4j/deletion.rb +0 -0
  166. /data/{lib → adapters/database_cleaner-neo4j/lib}/database_cleaner/neo4j/transaction.rb +0 -0
  167. /data/{lib → adapters/database_cleaner-neo4j/lib}/database_cleaner/neo4j/truncation.rb +0 -0
  168. /data/{lib → adapters/database_cleaner-redis/lib}/database_cleaner/redis/truncation.rb +0 -0
  169. /data/{lib → adapters/database_cleaner-sequel/lib}/database_cleaner/sequel/deletion.rb +0 -0
  170. /data/{lib → adapters/database_cleaner-sequel/lib}/database_cleaner/sequel/transaction.rb +0 -0
@@ -0,0 +1,82 @@
1
+ require 'yaml'
2
+
3
+ module DatabaseCleaner
4
+ module Spec
5
+ class DatabaseHelper < Struct.new(:db)
6
+ def self.with_all_dbs &block
7
+ %w[mysql mysql2 sqlite3 postgres].map(&:to_sym).each do |db|
8
+ yield new(db)
9
+ end
10
+ end
11
+
12
+ def setup
13
+ create_db
14
+ establish_connection
15
+ load_schema
16
+ end
17
+
18
+ attr_reader :connection
19
+
20
+ def teardown
21
+ drop_db
22
+ end
23
+
24
+ private
25
+
26
+ def establish_connection(config = default_config)
27
+ raise NotImplementedError
28
+ end
29
+
30
+ def create_db
31
+ if db == :sqlite3
32
+ # NO-OP
33
+ elsif db == :postgres
34
+ establish_connection default_config.merge('database' => 'postgres')
35
+ connection.execute "CREATE DATABASE #{default_config['database']}" rescue nil
36
+ else
37
+ establish_connection default_config.merge("database" => nil)
38
+ connection.execute "CREATE DATABASE IF NOT EXISTS #{default_config['database']}"
39
+ end
40
+ end
41
+
42
+ def load_schema
43
+ connection.execute <<-SQL
44
+ CREATE TABLE IF NOT EXISTS users (
45
+ id SERIAL PRIMARY KEY,
46
+ name INTEGER
47
+ );
48
+ SQL
49
+
50
+ connection.execute <<-SQL
51
+ CREATE TABLE IF NOT EXISTS agents (
52
+ name INTEGER
53
+ );
54
+ SQL
55
+ end
56
+
57
+ def drop_db
58
+ if db == :sqlite3
59
+ begin
60
+ File.unlink(db_config['sqlite3']['database'])
61
+ rescue Errno::ENOENT
62
+ end
63
+ elsif db == :postgres
64
+ # FIXME
65
+ connection.execute "DROP TABLE IF EXISTS users"
66
+ connection.execute "DROP TABLE IF EXISTS agents"
67
+ else
68
+ connection.execute "DROP DATABASE IF EXISTS #{default_config['database']}"
69
+ end
70
+ end
71
+
72
+ def db_config
73
+ config_path = 'spec/support/config.yml'
74
+ @db_config ||= YAML.load(IO.read(config_path))
75
+ end
76
+
77
+ def default_config
78
+ db_config[db.to_s]
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,15 @@
1
+ RSpec.shared_examples_for "a generic strategy" do
2
+ it { is_expected.to respond_to(:db) }
3
+ end
4
+
5
+ RSpec.shared_examples_for "a generic truncation strategy" do
6
+ it { is_expected.to respond_to(:start) }
7
+ it { is_expected.to respond_to(:clean) }
8
+ it { is_expected.to respond_to(:cleaning) }
9
+ end
10
+
11
+ RSpec.shared_examples_for "a generic transaction strategy" do
12
+ it { is_expected.to respond_to(:start) }
13
+ it { is_expected.to respond_to(:clean) }
14
+ it { is_expected.to respond_to(:cleaning) }
15
+ end
@@ -0,0 +1,2 @@
1
+ require "database_cleaner/spec/database_helper"
2
+ require "database_cleaner/spec/shared_examples"
@@ -0,0 +1,3 @@
1
+ module DatabaseCleaner
2
+ VERSION = "1.8.5"
3
+ end
@@ -1,8 +1,47 @@
1
1
  $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
2
+ require 'database_cleaner/version'
2
3
  require 'database_cleaner/configuration'
4
+ require 'database_cleaner/deprecation'
5
+ require 'forwardable'
3
6
 
4
7
  module DatabaseCleaner
5
- def self.can_detect_orm?
6
- DatabaseCleaner::Base.autodetect_orm
8
+ class << self
9
+ extend Forwardable
10
+ delegate [
11
+ :[],
12
+ :app_root=,
13
+ :app_root,
14
+ :logger=,
15
+ :logger,
16
+ :cleaners,
17
+ :cleaners=,
18
+ :strategy=,
19
+ :orm=,
20
+ :start,
21
+ :clean,
22
+ :clean_with,
23
+ :cleaning,
24
+
25
+ # TODO remove in 2.0
26
+ :clean!,
27
+ :clean_with!,
28
+ :init_cleaners,
29
+ :add_cleaner,
30
+ :connections,
31
+ :remove_duplicates,
32
+ ] => :configuration
33
+
34
+ attr_accessor :allow_remote_database_url, :allow_production, :url_whitelist
35
+
36
+ def can_detect_orm?
37
+ DatabaseCleaner.deprecate "Calling `DatabaseCleaner.can_detect_orm?` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
38
+ DatabaseCleaner::Base.autodetect_orm
39
+ end
40
+
41
+ private
42
+
43
+ def configuration
44
+ @configuration ||= Configuration.new
45
+ end
7
46
  end
8
47
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database_cleaner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 1.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Mabey
8
+ - Ernesto Tagwerker
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2017-10-30 00:00:00.000000000 Z
12
+ date: 2020-05-04 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rake
@@ -178,6 +179,20 @@ dependencies:
178
179
  - - ">="
179
180
  - !ruby/object:Gem::Version
180
181
  version: '0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: mongo
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: 1.12.0
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: 1.12.0
181
196
  - !ruby/object:Gem::Dependency
182
197
  name: moped
183
198
  requirement: !ruby/object:Gem::Requirement
@@ -263,19 +278,33 @@ dependencies:
263
278
  - !ruby/object:Gem::Version
264
279
  version: '0'
265
280
  - !ruby/object:Gem::Dependency
266
- name: rspec-rails
281
+ name: listen
267
282
  requirement: !ruby/object:Gem::Requirement
268
283
  requirements:
269
284
  - - "~>"
270
285
  - !ruby/object:Gem::Version
271
- version: 2.14.2
286
+ version: 3.0.0
272
287
  type: :development
273
288
  prerelease: false
274
289
  version_requirements: !ruby/object:Gem::Requirement
275
290
  requirements:
276
291
  - - "~>"
277
292
  - !ruby/object:Gem::Version
278
- version: 2.14.2
293
+ version: 3.0.0
294
+ - !ruby/object:Gem::Dependency
295
+ name: rspec
296
+ requirement: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - ">="
299
+ - !ruby/object:Gem::Version
300
+ version: '0'
301
+ type: :development
302
+ prerelease: false
303
+ version_requirements: !ruby/object:Gem::Requirement
304
+ requirements:
305
+ - - ">="
306
+ - !ruby/object:Gem::Version
307
+ version: '0'
279
308
  - !ruby/object:Gem::Dependency
280
309
  name: cucumber
281
310
  requirement: !ruby/object:Gem::Requirement
@@ -374,9 +403,10 @@ dependencies:
374
403
  - - ">="
375
404
  - !ruby/object:Gem::Version
376
405
  version: '0'
377
- description: Strategies for cleaning databases. Can be used to ensure a clean state
406
+ description: Strategies for cleaning databases. Can be used to ensure a clean slate
378
407
  for testing.
379
- email: ben@benmabey.com
408
+ email:
409
+ - ernesto@ombulabs.com
380
410
  executables: []
381
411
  extensions: []
382
412
  extra_rdoc_files:
@@ -391,131 +421,89 @@ files:
391
421
  - README.markdown
392
422
  - Rakefile
393
423
  - TODO
394
- - VERSION.yml
424
+ - adapters/database_cleaner-active_record/lib/database_cleaner-active_record.rb
425
+ - adapters/database_cleaner-active_record/lib/database_cleaner/active_record.rb
426
+ - adapters/database_cleaner-active_record/lib/database_cleaner/active_record/base.rb
427
+ - adapters/database_cleaner-active_record/lib/database_cleaner/active_record/deletion.rb
428
+ - adapters/database_cleaner-active_record/lib/database_cleaner/active_record/transaction.rb
429
+ - adapters/database_cleaner-active_record/lib/database_cleaner/active_record/truncation.rb
430
+ - adapters/database_cleaner-active_record/lib/database_cleaner/active_record/version.rb
431
+ - adapters/database_cleaner-couch_potato/lib/database_cleaner-couch_potato.rb
432
+ - adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato.rb
433
+ - adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/base.rb
434
+ - adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/truncation.rb
435
+ - adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/version.rb
436
+ - adapters/database_cleaner-data_mapper/lib/database_cleaner-data_mapper.rb
437
+ - adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper.rb
438
+ - adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/base.rb
439
+ - adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/transaction.rb
440
+ - adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/truncation.rb
441
+ - adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/version.rb
442
+ - adapters/database_cleaner-mongo/lib/database_cleaner-mongo.rb
443
+ - adapters/database_cleaner-mongo/lib/database_cleaner/mongo.rb
444
+ - adapters/database_cleaner-mongo/lib/database_cleaner/mongo/base.rb
445
+ - adapters/database_cleaner-mongo/lib/database_cleaner/mongo/truncation.rb
446
+ - adapters/database_cleaner-mongo/lib/database_cleaner/mongo/truncation_mixin.rb
447
+ - adapters/database_cleaner-mongo/lib/database_cleaner/mongo/version.rb
448
+ - adapters/database_cleaner-mongo_mapper/lib/database_cleaner-mongo_mapper.rb
449
+ - adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper.rb
450
+ - adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/base.rb
451
+ - adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb
452
+ - adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/version.rb
453
+ - adapters/database_cleaner-mongoid/lib/database_cleaner-mongoid.rb
454
+ - adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid.rb
455
+ - adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/base.rb
456
+ - adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo1_truncation_mixin.rb
457
+ - adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo2_truncation_mixin.rb
458
+ - adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongoid_truncation_mixin.rb
459
+ - adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/truncation.rb
460
+ - adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/version.rb
461
+ - adapters/database_cleaner-moped/lib/database_cleaner-moped.rb
462
+ - adapters/database_cleaner-moped/lib/database_cleaner/moped.rb
463
+ - adapters/database_cleaner-moped/lib/database_cleaner/moped/base.rb
464
+ - adapters/database_cleaner-moped/lib/database_cleaner/moped/truncation.rb
465
+ - adapters/database_cleaner-moped/lib/database_cleaner/moped/truncation_base.rb
466
+ - adapters/database_cleaner-moped/lib/database_cleaner/moped/version.rb
467
+ - adapters/database_cleaner-neo4j/lib/database_cleaner-neo4j.rb
468
+ - adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j.rb
469
+ - adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/base.rb
470
+ - adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/deletion.rb
471
+ - adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/transaction.rb
472
+ - adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/truncation.rb
473
+ - adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/version.rb
474
+ - adapters/database_cleaner-ohm/lib/database_cleaner-ohm.rb
475
+ - adapters/database_cleaner-ohm/lib/database_cleaner/ohm.rb
476
+ - adapters/database_cleaner-ohm/lib/database_cleaner/ohm/truncation.rb
477
+ - adapters/database_cleaner-ohm/lib/database_cleaner/ohm/version.rb
478
+ - adapters/database_cleaner-redis/lib/database_cleaner-redis.rb
479
+ - adapters/database_cleaner-redis/lib/database_cleaner/redis.rb
480
+ - adapters/database_cleaner-redis/lib/database_cleaner/redis/base.rb
481
+ - adapters/database_cleaner-redis/lib/database_cleaner/redis/truncation.rb
482
+ - adapters/database_cleaner-redis/lib/database_cleaner/redis/version.rb
483
+ - adapters/database_cleaner-sequel/lib/database_cleaner-sequel.rb
484
+ - adapters/database_cleaner-sequel/lib/database_cleaner/sequel.rb
485
+ - adapters/database_cleaner-sequel/lib/database_cleaner/sequel/base.rb
486
+ - adapters/database_cleaner-sequel/lib/database_cleaner/sequel/deletion.rb
487
+ - adapters/database_cleaner-sequel/lib/database_cleaner/sequel/transaction.rb
488
+ - adapters/database_cleaner-sequel/lib/database_cleaner/sequel/truncation.rb
489
+ - adapters/database_cleaner-sequel/lib/database_cleaner/sequel/version.rb
395
490
  - cucumber.yml
396
- - examples/Gemfile
397
- - examples/Gemfile.lock
398
- - examples/config/database.yml.example
399
- - examples/config/redis.yml
400
- - examples/db/sqlite_databases_go_here
401
- - examples/features/example.feature
402
- - examples/features/example_multiple_db.feature
403
- - examples/features/example_multiple_orm.feature
404
- - examples/features/step_definitions/activerecord_steps.rb
405
- - examples/features/step_definitions/couchpotato_steps.rb
406
- - examples/features/step_definitions/datamapper_steps.rb
407
- - examples/features/step_definitions/mongoid_steps.rb
408
- - examples/features/step_definitions/mongomapper_steps.rb
409
- - examples/features/step_definitions/neo4j_steps.rb
410
- - examples/features/step_definitions/ohm_steps.rb
411
- - examples/features/step_definitions/redis_steps.rb
412
- - examples/features/step_definitions/translation_steps.rb
413
- - examples/features/support/env.rb
414
- - examples/lib/activerecord_models.rb
415
- - examples/lib/couchpotato_models.rb
416
- - examples/lib/datamapper_models.rb
417
- - examples/lib/mongoid_models.rb
418
- - examples/lib/mongomapper_models.rb
419
- - examples/lib/neo4j_models.rb
420
- - examples/lib/ohm_models.rb
421
- - examples/lib/redis_models.rb
422
- - examples/lib/sequel_models.rb
423
- - features/cleaning.feature
424
- - features/cleaning_default_strategy.feature
425
- - features/cleaning_multiple_dbs.feature
426
- - features/cleaning_multiple_orms.feature
427
- - features/step_definitions/database_cleaner_steps.rb
428
- - features/support/env.rb
429
- - features/support/feature_runner.rb
430
491
  - lib/database_cleaner.rb
431
- - lib/database_cleaner/active_record/base.rb
432
- - lib/database_cleaner/active_record/deletion.rb
433
- - lib/database_cleaner/active_record/transaction.rb
434
- - lib/database_cleaner/active_record/truncation.rb
435
492
  - lib/database_cleaner/base.rb
436
493
  - lib/database_cleaner/configuration.rb
437
- - lib/database_cleaner/couch_potato/base.rb
438
- - lib/database_cleaner/couch_potato/truncation.rb
439
494
  - lib/database_cleaner/cucumber.rb
440
- - lib/database_cleaner/data_mapper/base.rb
441
- - lib/database_cleaner/data_mapper/transaction.rb
442
- - lib/database_cleaner/data_mapper/truncation.rb
495
+ - lib/database_cleaner/deprecation.rb
443
496
  - lib/database_cleaner/generic/base.rb
444
497
  - lib/database_cleaner/generic/transaction.rb
445
498
  - lib/database_cleaner/generic/truncation.rb
446
- - lib/database_cleaner/mongo/base.rb
447
- - lib/database_cleaner/mongo/truncation.rb
448
- - lib/database_cleaner/mongo/truncation_mixin.rb
449
- - lib/database_cleaner/mongo2/base.rb
450
- - lib/database_cleaner/mongo2/truncation_mixin.rb
451
- - lib/database_cleaner/mongo_mapper/base.rb
452
- - lib/database_cleaner/mongo_mapper/truncation.rb
453
- - lib/database_cleaner/mongoid/base.rb
454
- - lib/database_cleaner/mongoid/truncation.rb
455
- - lib/database_cleaner/moped/base.rb
456
- - lib/database_cleaner/moped/truncation.rb
457
- - lib/database_cleaner/moped/truncation_base.rb
458
- - lib/database_cleaner/neo4j/base.rb
459
- - lib/database_cleaner/neo4j/deletion.rb
460
- - lib/database_cleaner/neo4j/transaction.rb
461
- - lib/database_cleaner/neo4j/truncation.rb
462
499
  - lib/database_cleaner/null_strategy.rb
463
- - lib/database_cleaner/ohm/truncation.rb
464
- - lib/database_cleaner/redis/base.rb
465
- - lib/database_cleaner/redis/truncation.rb
466
- - lib/database_cleaner/sequel/base.rb
467
- - lib/database_cleaner/sequel/deletion.rb
468
- - lib/database_cleaner/sequel/transaction.rb
469
- - lib/database_cleaner/sequel/truncation.rb
470
- - spec/database_cleaner/active_record/base_spec.rb
471
- - spec/database_cleaner/active_record/transaction_spec.rb
472
- - spec/database_cleaner/active_record/truncation/mysql2_spec.rb
473
- - spec/database_cleaner/active_record/truncation/mysql_spec.rb
474
- - spec/database_cleaner/active_record/truncation/postgresql_spec.rb
475
- - spec/database_cleaner/active_record/truncation/shared_fast_truncation.rb
476
- - spec/database_cleaner/active_record/truncation/sqlite3_spec.rb
477
- - spec/database_cleaner/active_record/truncation_spec.rb
478
- - spec/database_cleaner/base_spec.rb
479
- - spec/database_cleaner/configuration_spec.rb
480
- - spec/database_cleaner/couch_potato/truncation_spec.rb
481
- - spec/database_cleaner/data_mapper/base_spec.rb
482
- - spec/database_cleaner/data_mapper/transaction_spec.rb
483
- - spec/database_cleaner/data_mapper/truncation/sqlite3_spec.rb
484
- - spec/database_cleaner/data_mapper/truncation_spec.rb
485
- - spec/database_cleaner/generic/base_spec.rb
486
- - spec/database_cleaner/generic/truncation_spec.rb
487
- - spec/database_cleaner/mongo/mongo_examples.rb
488
- - spec/database_cleaner/mongo/truncation_spec.rb
489
- - spec/database_cleaner/mongo_mapper/base_spec.rb
490
- - spec/database_cleaner/mongo_mapper/mongo_examples.rb
491
- - spec/database_cleaner/mongo_mapper/truncation_spec.rb
492
- - spec/database_cleaner/moped/moped_examples.rb
493
- - spec/database_cleaner/moped/truncation_spec.rb
494
- - spec/database_cleaner/neo4j/base_spec.rb
495
- - spec/database_cleaner/neo4j/transaction_spec.rb
496
- - spec/database_cleaner/null_strategy_spec.rb
497
- - spec/database_cleaner/ohm/truncation_spec.rb
498
- - spec/database_cleaner/redis/base_spec.rb
499
- - spec/database_cleaner/redis/truncation_spec.rb
500
- - spec/database_cleaner/sequel/base_spec.rb
501
- - spec/database_cleaner/sequel/deletion_spec.rb
502
- - spec/database_cleaner/sequel/transaction_spec.rb
503
- - spec/database_cleaner/sequel/truncation/sqlite3_spec.rb
504
- - spec/database_cleaner/sequel/truncation_spec.rb
505
- - spec/database_cleaner/shared_strategy.rb
506
- - spec/rcov.opts
507
- - spec/spec_helper.rb
508
- - spec/support/active_record/database_setup.rb
509
- - spec/support/active_record/migrations/20150101010000_create_users.rb
510
- - spec/support/active_record/migrations/20150101020000_create_agents.rb
511
- - spec/support/active_record/mysql2_setup.rb
512
- - spec/support/active_record/mysql_setup.rb
513
- - spec/support/active_record/postgresql_setup.rb
514
- - spec/support/active_record/schema_setup.rb
515
- - spec/support/active_record/sqlite3_setup.rb
516
- - spec/support/data_mapper/schema_setup.rb
517
- - spec/support/data_mapper/sqlite3_setup.rb
518
- homepage: http://github.com/DatabaseCleaner/database_cleaner
500
+ - lib/database_cleaner/orm_autodetector.rb
501
+ - lib/database_cleaner/safeguard.rb
502
+ - lib/database_cleaner/spec.rb
503
+ - lib/database_cleaner/spec/database_helper.rb
504
+ - lib/database_cleaner/spec/shared_examples.rb
505
+ - lib/database_cleaner/version.rb
506
+ homepage: https://github.com/DatabaseCleaner/database_cleaner
519
507
  licenses:
520
508
  - MIT
521
509
  metadata: {}
@@ -534,10 +522,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
534
522
  - !ruby/object:Gem::Version
535
523
  version: '0'
536
524
  requirements: []
537
- rubyforge_project:
538
- rubygems_version: 2.6.8
525
+ rubygems_version: 3.0.8
539
526
  signing_key:
540
527
  specification_version: 4
541
- summary: Strategies for cleaning databases. Can be used to ensure a clean state for
528
+ summary: Strategies for cleaning databases. Can be used to ensure a clean slate for
542
529
  testing.
543
530
  test_files: []
data/VERSION.yml DELETED
@@ -1,4 +0,0 @@
1
- ---
2
- :major: 1
3
- :minor: 6
4
- :patch: 2
data/examples/Gemfile DELETED
@@ -1 +0,0 @@
1
- examples/../Gemfile
@@ -1 +0,0 @@
1
- examples/../Gemfile.lock
@@ -1,8 +0,0 @@
1
- #This is an example of what database.yml *should* look like (when I wrote it)
2
- #The real database.yml is generated automatically by the active record model lib (so it can be correct)
3
- two:
4
- adapter: sqlite3
5
- database: /path/to/examples/features/support/../../db/activerecord_two.db
6
- one:
7
- adapter: sqlite3
8
- database: /path/to/examples/features/support/../../db/activerecord_one.db
@@ -1,8 +0,0 @@
1
- test:
2
- url: 'redis://localhost:6379/0'
3
-
4
- one:
5
- url: 'redis://localhost:6379/1'
6
-
7
- two:
8
- url: 'redis://localhost:6379/2'
File without changes
@@ -1,11 +0,0 @@
1
- Feature: example
2
- In order to test DataBase Cleaner
3
- Here are some scenarios that rely on the DB being clean!
4
-
5
- Scenario: dirty the db
6
- When I create a widget
7
- Then I should see 1 widget
8
-
9
- Scenario: assume a clean db
10
- When I create a widget
11
- Then I should see 1 widget
@@ -1,23 +0,0 @@
1
- Feature: example
2
- In order to test DataBase Cleaner
3
- Here are some scenarios that rely on the DB being clean!
4
-
5
- # Background:
6
- # Given I have setup DatabaseCleaner to clean multiple databases
7
- #
8
- Scenario: dirty the db
9
- When I create a widget in one db
10
- And I create a widget in another db
11
- Then I should see 1 widget in one db
12
- And I should see 1 widget in another db
13
-
14
- Scenario: assume a clean db
15
- When I create a widget in one db
16
- Then I should see 1 widget in one db
17
- And I should see 0 widget in another db
18
-
19
- Scenario: assume a clean db
20
- When I create a widget in another db
21
- Then I should see 0 widget in one db
22
- And I should see 1 widget in another db
23
-
@@ -1,22 +0,0 @@
1
- Feature: example
2
- In order to test DataBase Cleaner
3
- Here are some scenarios that rely on the DB being clean!
4
-
5
- # Background:
6
- # Given I have setup DatabaseCleaner to clean multiple orms
7
-
8
- Scenario: dirty the db
9
- When I create a widget in one orm
10
- And I create a widget in another orm
11
- Then I should see 1 widget in one orm
12
- And I should see 1 widget in another orm
13
-
14
- Scenario: assume a clean db
15
- When I create a widget in one orm
16
- Then I should see 1 widget in one orm
17
- And I should see 0 widget in another orm
18
-
19
- Scenario: assume a clean db
20
- When I create a widget in another orm
21
- Then I should see 0 widget in one orm
22
- And I should see 1 widget in another orm
@@ -1,31 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using activerecord$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/datamapper_models"
4
- #
5
- # DatabaseCleaner[:datamapper, {:connection => :one} ].strategy = :truncation
6
- # DatabaseCleaner[:datamapper, {:connection => :two} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using activerecord$/ do
10
- ActiveRecordWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using activerecord$/ do |widget_count|
14
- ActiveRecordWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using activerecord$/ do
18
- ActiveRecordWidgetUsingDatabaseOne.create!
19
- end
20
-
21
- When /^I create a widget in another db using activerecord$/ do
22
- ActiveRecordWidgetUsingDatabaseTwo.create!
23
- end
24
-
25
- Then /^I should see ([\d]+) widget in one db using activerecord$/ do |widget_count|
26
- ActiveRecordWidgetUsingDatabaseOne.count.should == widget_count.to_i
27
- end
28
-
29
- Then /^I should see ([\d]+) widget in another db using activerecord$/ do |widget_count|
30
- ActiveRecordWidgetUsingDatabaseTwo.count.should == widget_count.to_i
31
- end
@@ -1,31 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using couchpotato$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/couchpotato_models"
4
- #
5
- # DatabaseCleaner[:couchpotato, {:connection => :one} ].strategy = :truncation
6
- # DatabaseCleaner[:couchpotato, {:connection => :two} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using couchpotato$/ do
10
- CouchPotatoWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using couchpotato$/ do |widget_count|
14
- CouchPotatoWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using couchpotato$/ do
18
- CouchPotatoWidgetUsingDatabaseOne.create!
19
- end
20
-
21
- When /^I create a widget in another db using couchpotato$/ do
22
- CouchPotatoWidgetUsingDatabaseTwo.create!
23
- end
24
-
25
- Then /^I should see ([\d]+) widget in one db using couchpotato$/ do |widget_count|
26
- CouchPotatoWidgetUsingDatabaseOne.count.should == widget_count.to_i
27
- end
28
-
29
- Then /^I should see ([\d]+) widget in another db using couchpotato$/ do |widget_count|
30
- CouchPotatoWidgetUsingDatabaseTwo.count.should == widget_count.to_i
31
- end
@@ -1,37 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using datamapper$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/datamapper_models"
4
- #
5
- # DatabaseCleaner[:datamapper, {:connection => :one} ].strategy = :truncation
6
- # DatabaseCleaner[:datamapper, {:connection => :two} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using datamapper$/ do
10
- DataMapperWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using datamapper$/ do |widget_count|
14
- DataMapperWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using datamapper$/ do
18
- begin
19
- DataMapperWidgetUsingDatabaseOne.create!
20
- rescue StandardError => e
21
- BREAK = e.backtrace
22
- debugger
23
- DataMapperWidgetUsingDatabaseOne.create!
24
- end
25
- end
26
-
27
- When /^I create a widget in another db using datamapper$/ do
28
- DataMapperWidgetUsingDatabaseTwo.create!
29
- end
30
-
31
- Then /^I should see ([\d]+) widget in one db using datamapper$/ do |widget_count|
32
- DataMapperWidgetUsingDatabaseOne.count.should == widget_count.to_i
33
- end
34
-
35
- Then /^I should see ([\d]+) widget in another db using datamapper$/ do |widget_count|
36
- DataMapperWidgetUsingDatabaseTwo.count.should == widget_count.to_i
37
- end