memory_test_fix 1.4.2 → 1.5.0
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 +5 -5
- data/Changelog.md +4 -0
- data/README.md +2 -1
- data/fixtures/rails52_app/Gemfile +10 -0
- data/fixtures/rails52_app/Rakefile +6 -0
- data/fixtures/rails52_app/app/models/application_record.rb +3 -0
- data/fixtures/rails52_app/app/models/foo.rb +2 -0
- data/fixtures/rails52_app/bin/rake +9 -0
- data/fixtures/rails52_app/bin/spring +17 -0
- data/fixtures/rails52_app/config/application.rb +13 -0
- data/fixtures/rails52_app/config/boot.rb +3 -0
- data/fixtures/rails52_app/config/environment.rb +5 -0
- data/fixtures/rails52_app/config/environments/development.rb +3 -0
- data/fixtures/rails52_app/config/environments/production.rb +3 -0
- data/fixtures/rails52_app/config/environments/test.rb +5 -0
- data/fixtures/rails52_app/config/initializers/filter_parameter_logging.rb +1 -0
- data/fixtures/rails52_app/db/migrate/20140830065127_create_foos.rb +13 -0
- data/fixtures/rails52_app/db/schema.rb +22 -0
- data/fixtures/rails52_app/test/fixtures/foos.yml +7 -0
- data/fixtures/rails52_app/test/models/foo_test.rb +13 -0
- data/fixtures/rails52_app/test/test_helper.rb +10 -0
- data/lib/memory_test_fix/schema_loader.rb +6 -1
- data/memory_test_fix.gemspec +6 -5
- data/spec/unit/memory_test_fix/schema_loader_spec.rb +38 -28
- data/test/integration/integration_test.rb +6 -5
- metadata +30 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dbbaf46755ac3025b3caa67313dfdd3f84e749faedd7e381fa21c12d7a1202da
|
4
|
+
data.tar.gz: 5265b0c883df03deb39a391713a1f085c2edb33c406c9d5ed1516b614db3198b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f95e587b55511535076f7edb1a061b9b0cd287cd04d315604e53601ff77c54519dd1c6f26c21fd2ac326ddcf523a40e9c8efd29ec6c76d0972c2a9cc83dac35
|
7
|
+
data.tar.gz: 5e9d1c624e2852dbb8f387de415061bbca5635bad6b9dc0d5f263b170b243683520d27cc61540a986c6f886ffa035d84809e265e2a6197af6bbfcd27597c5ed4
|
data/Changelog.md
CHANGED
data/README.md
CHANGED
@@ -46,7 +46,8 @@ You can also use this with other (testing) environments, not just 'test'.
|
|
46
46
|
In general, Bundler should pick a compatible version for you if you don't
|
47
47
|
specify one in your `Gemfile`.
|
48
48
|
|
49
|
-
That said, the latest version of this gem is compatible with Rails 5.0
|
49
|
+
That said, the latest version of this gem is compatible with Rails 5.0, 5.1 and
|
50
|
+
upcoming 5.2.
|
50
51
|
If you're still on Rails 4, you can use version 1.3.0. Unfortunately, the hard
|
51
52
|
requirement of Ruby 2.2 or above for Rails 5 means `memory_test_fix` cannot
|
52
53
|
support Rails 4 and 5 at the same time.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This file loads spring without using Bundler, in order to be fast.
|
4
|
+
# It gets overwritten when you run the `spring binstub` command.
|
5
|
+
|
6
|
+
unless defined?(Spring)
|
7
|
+
require 'rubygems'
|
8
|
+
require 'bundler'
|
9
|
+
|
10
|
+
lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read)
|
11
|
+
spring = lockfile.specs.detect { |spec| spec.name == "spring" }
|
12
|
+
if spring
|
13
|
+
Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path
|
14
|
+
gem 'spring', spring.version
|
15
|
+
require 'spring/binstub'
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'boot'
|
2
|
+
|
3
|
+
require 'rails'
|
4
|
+
require 'active_record/railtie'
|
5
|
+
require 'rails/test_unit/railtie'
|
6
|
+
|
7
|
+
Bundler.require(*Rails.groups)
|
8
|
+
|
9
|
+
module RailsTestApp
|
10
|
+
class Application < Rails::Application
|
11
|
+
config.load_defaults 5.2
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails.application.config.filter_parameters += [:password]
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# This file is auto-generated from the current state of the database. Instead
|
3
|
+
# of editing this file, please use the migrations feature of Active Record to
|
4
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
5
|
+
#
|
6
|
+
# Note that this schema.rb definition is the authoritative source for your
|
7
|
+
# database schema. If you need to create the application database on another
|
8
|
+
# system, you should be using db:schema:load, not running all the migrations
|
9
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
|
+
#
|
12
|
+
# It's strongly recommended that you check this file into your version control system.
|
13
|
+
|
14
|
+
ActiveRecord::Schema.define(version: 20140830065127) do
|
15
|
+
|
16
|
+
create_table "foos", force: :cascade do |t|
|
17
|
+
t.string "name"
|
18
|
+
t.datetime "created_at", null: false
|
19
|
+
t.datetime "updated_at", null: false
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class FooTest < ActiveSupport::TestCase
|
4
|
+
test "Foos have names" do
|
5
|
+
assert_equal 'Foo one', foos(:one).name
|
6
|
+
end
|
7
|
+
|
8
|
+
test "Foos can be stored" do
|
9
|
+
foo = Foo.new(name: 'A third')
|
10
|
+
foo.save!
|
11
|
+
assert_equal 'A third', Foo.find(foo.id).name
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
ENV['RAILS_ENV'] ||= 'test'
|
2
|
+
require_relative '../config/environment'
|
3
|
+
require 'rails/test_help'
|
4
|
+
|
5
|
+
class ActiveSupport::TestCase
|
6
|
+
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
|
7
|
+
fixtures :all
|
8
|
+
|
9
|
+
# Add more helper methods to be used by all tests here...
|
10
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'memory_test_fix/schema_file_loader'
|
2
|
+
require 'active_record'
|
2
3
|
|
3
4
|
module MemoryTestFix
|
4
5
|
# Set up database schema into in-memory database.
|
@@ -72,7 +73,11 @@ module MemoryTestFix
|
|
72
73
|
|
73
74
|
def load_schema
|
74
75
|
if migrate
|
75
|
-
@migrator.up
|
76
|
+
if @migrator.respond_to? :up
|
77
|
+
@migrator.up('db/migrate')
|
78
|
+
else
|
79
|
+
ActiveRecord::Base.connection.migration_context.up
|
80
|
+
end
|
76
81
|
else
|
77
82
|
@loader.load_schema
|
78
83
|
end
|
data/memory_test_fix.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "memory_test_fix"
|
3
|
-
spec.version = "1.
|
3
|
+
spec.version = "1.5.0"
|
4
4
|
|
5
5
|
spec.authors = ["Matijs van Zuijlen",
|
6
6
|
"Chris Roos",
|
@@ -15,10 +15,11 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
17
|
spec.summary = "Use SQLite3 in-memory database for Rails tests."
|
18
|
-
spec.description = <<-
|
18
|
+
spec.description = <<-TEXT
|
19
19
|
Makes use of SQLite3 in-memory database possible for your
|
20
20
|
Rails tests by preloading the schema.
|
21
|
-
|
21
|
+
TEXT
|
22
|
+
spec.required_ruby_version = '>= 2.2.0'
|
22
23
|
|
23
24
|
spec.files = Dir["{lib,test,spec,fixtures}/**/*",
|
24
25
|
"*.md",
|
@@ -29,9 +30,9 @@ Gem::Specification.new do |spec|
|
|
29
30
|
spec.rdoc_options = ["--main", "README.md"]
|
30
31
|
spec.extra_rdoc_files = ["README.md"]
|
31
32
|
|
32
|
-
spec.add_runtime_dependency("railties", "~> 5.0")
|
33
33
|
spec.add_runtime_dependency("activerecord", "~> 5.0")
|
34
|
-
spec.
|
34
|
+
spec.add_runtime_dependency("railties", "~> 5.0")
|
35
35
|
spec.add_development_dependency("minitest", "~> 5.2")
|
36
|
+
spec.add_development_dependency("rake", "~> 12.0")
|
36
37
|
spec.add_development_dependency("rspec", "~> 3.1")
|
37
38
|
end
|
@@ -15,10 +15,11 @@ RSpec.describe MemoryTestFix::SchemaLoader do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
describe '#init_schema' do
|
18
|
-
let(:migrator) {
|
19
|
-
let(:loader) {
|
18
|
+
let(:migrator) { class_double(ActiveRecord::Migrator) }
|
19
|
+
let(:loader) { class_double(MemoryTestFix::SchemaFileLoader) }
|
20
20
|
let(:options) { { configuration: config, migrator: migrator, loader: loader } }
|
21
|
-
let(:schema_loader) {
|
21
|
+
let(:schema_loader) { described_class.new options }
|
22
|
+
let(:base_config) { { database: ':memory:', adapter: 'sqlite3' } }
|
22
23
|
|
23
24
|
before do
|
24
25
|
allow(loader).to receive(:load_schema) { puts 'loading schema' }
|
@@ -29,17 +30,16 @@ RSpec.describe MemoryTestFix::SchemaLoader do
|
|
29
30
|
let(:config) { { database: 'some/file.sqlite3', adapter: 'sqlite3' } }
|
30
31
|
|
31
32
|
it "outputs nothing" do
|
32
|
-
expect { schema_loader.init_schema }.
|
33
|
+
expect { schema_loader.init_schema }.not_to output.to_stdout
|
33
34
|
end
|
34
35
|
|
35
36
|
it "does not load anything" do
|
36
37
|
schema_loader.init_schema
|
37
|
-
expect(loader).
|
38
|
+
expect(loader).not_to have_received :load_schema
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
|
-
context 'when
|
42
|
-
let(:base_config) { { database: ':memory:', adapter: 'sqlite3' } }
|
42
|
+
context 'when configured not to use migrations' do
|
43
43
|
let(:config) { base_config }
|
44
44
|
|
45
45
|
it "informs the user it is creating an in-memory database" do
|
@@ -56,36 +56,46 @@ RSpec.describe MemoryTestFix::SchemaLoader do
|
|
56
56
|
silently { schema_loader.init_schema }
|
57
57
|
expect(loader).to have_received :load_schema
|
58
58
|
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "when configured to use migrations" do
|
62
|
+
let(:config) { base_config.merge(migrate: true) }
|
59
63
|
|
60
|
-
|
61
|
-
|
64
|
+
it "informs the user it is creating an in-memory database" do
|
65
|
+
expect { schema_loader.init_schema }.
|
66
|
+
to output(/Creating sqlite :memory: database/).to_stdout
|
67
|
+
end
|
68
|
+
|
69
|
+
it "does not print 'loading schema'" do
|
70
|
+
expect { schema_loader.init_schema }.
|
71
|
+
not_to output(/loading schema/).to_stdout
|
72
|
+
end
|
62
73
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
end
|
74
|
+
it "tells the migrator to run the migrations" do
|
75
|
+
silently { schema_loader.init_schema }
|
76
|
+
expect(migrator).to have_received :up
|
67
77
|
end
|
78
|
+
end
|
68
79
|
|
69
|
-
|
70
|
-
|
80
|
+
context "when running in quietly" do
|
81
|
+
let(:config) { base_config.merge(verbosity: 'quiet') }
|
71
82
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
83
|
+
it "informs the user it is creating an in-memory database" do
|
84
|
+
expect { schema_loader.init_schema }.
|
85
|
+
to output(/Creating sqlite :memory: database/).to_stdout
|
86
|
+
end
|
76
87
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
88
|
+
it "does not print the output from the loader" do
|
89
|
+
expect { schema_loader.init_schema }.
|
90
|
+
not_to output(/loading schema/).to_stdout
|
81
91
|
end
|
92
|
+
end
|
82
93
|
|
83
|
-
|
84
|
-
|
94
|
+
context "when running in silence" do
|
95
|
+
let(:config) { base_config.merge(verbosity: 'silent') }
|
85
96
|
|
86
|
-
|
87
|
-
|
88
|
-
end
|
97
|
+
it "outputs nothing" do
|
98
|
+
expect { schema_loader.init_schema }.not_to output.to_stdout
|
89
99
|
end
|
90
100
|
end
|
91
101
|
end
|
@@ -6,9 +6,9 @@ def in_clean_bundler_environment(*args)
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def update_bundle(label)
|
9
|
-
return if in_clean_bundler_environment(
|
9
|
+
return if in_clean_bundler_environment('bundle', 'update', '--quiet', '--local')
|
10
10
|
puts "Starting remote update of the bundle for #{label}"
|
11
|
-
return if in_clean_bundler_environment(
|
11
|
+
return if in_clean_bundler_environment('bundle', 'update')
|
12
12
|
raise "Unable to initialize test environment for #{label}"
|
13
13
|
end
|
14
14
|
|
@@ -24,7 +24,7 @@ end
|
|
24
24
|
|
25
25
|
def stop_spring
|
26
26
|
capture_subprocess_io do
|
27
|
-
in_clean_bundler_environment(
|
27
|
+
in_clean_bundler_environment('bin/spring', 'stop')
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -39,7 +39,7 @@ BASE_CONFIG = {
|
|
39
39
|
"adapter" => 'sqlite3',
|
40
40
|
"database" => ':memory:'
|
41
41
|
}
|
42
|
-
}
|
42
|
+
}.freeze
|
43
43
|
|
44
44
|
MIGRATING_CONFIG = BASE_CONFIG.dup.tap do |config|
|
45
45
|
config["test"] = config["test"].merge("migrate" => true)
|
@@ -60,7 +60,8 @@ end
|
|
60
60
|
VERSIONS = [
|
61
61
|
["Rails 5.0", 'rails50_app'],
|
62
62
|
["Rails 5.1", 'rails51_app'],
|
63
|
-
]
|
63
|
+
["Rails 5.2", 'rails52_app'],
|
64
|
+
].freeze
|
64
65
|
|
65
66
|
VERSIONS.each do |label, appdir|
|
66
67
|
Dir.chdir "fixtures/#{appdir}" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memory_test_fix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
@@ -14,10 +14,10 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date:
|
17
|
+
date: 2018-02-14 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
|
-
name:
|
20
|
+
name: activerecord
|
21
21
|
requirement: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - "~>"
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '5.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: railties
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
@@ -45,33 +45,33 @@ dependencies:
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '5.0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
48
|
+
name: minitest
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '5.2'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '5.2'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
62
|
+
name: rake
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '12.0'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '12.0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,6 +135,24 @@ files:
|
|
135
135
|
- fixtures/rails51_app/test/fixtures/foos.yml
|
136
136
|
- fixtures/rails51_app/test/test_helper.rb
|
137
137
|
- fixtures/rails51_app/test/unit/foo_test.rb
|
138
|
+
- fixtures/rails52_app/Gemfile
|
139
|
+
- fixtures/rails52_app/Rakefile
|
140
|
+
- fixtures/rails52_app/app/models/application_record.rb
|
141
|
+
- fixtures/rails52_app/app/models/foo.rb
|
142
|
+
- fixtures/rails52_app/bin/rake
|
143
|
+
- fixtures/rails52_app/bin/spring
|
144
|
+
- fixtures/rails52_app/config/application.rb
|
145
|
+
- fixtures/rails52_app/config/boot.rb
|
146
|
+
- fixtures/rails52_app/config/environment.rb
|
147
|
+
- fixtures/rails52_app/config/environments/development.rb
|
148
|
+
- fixtures/rails52_app/config/environments/production.rb
|
149
|
+
- fixtures/rails52_app/config/environments/test.rb
|
150
|
+
- fixtures/rails52_app/config/initializers/filter_parameter_logging.rb
|
151
|
+
- fixtures/rails52_app/db/migrate/20140830065127_create_foos.rb
|
152
|
+
- fixtures/rails52_app/db/schema.rb
|
153
|
+
- fixtures/rails52_app/test/fixtures/foos.yml
|
154
|
+
- fixtures/rails52_app/test/models/foo_test.rb
|
155
|
+
- fixtures/rails52_app/test/test_helper.rb
|
138
156
|
- lib/memory_test_fix.rb
|
139
157
|
- lib/memory_test_fix/railtie.rb
|
140
158
|
- lib/memory_test_fix/schema_file_loader.rb
|
@@ -158,7 +176,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
176
|
requirements:
|
159
177
|
- - ">="
|
160
178
|
- !ruby/object:Gem::Version
|
161
|
-
version:
|
179
|
+
version: 2.2.0
|
162
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
181
|
requirements:
|
164
182
|
- - ">="
|
@@ -166,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
184
|
version: '0'
|
167
185
|
requirements: []
|
168
186
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.
|
187
|
+
rubygems_version: 2.7.3
|
170
188
|
signing_key:
|
171
189
|
specification_version: 4
|
172
190
|
summary: Use SQLite3 in-memory database for Rails tests.
|