Skip to content

Commit 470aecd

Browse files
committed
[MODEL] Prepared infrastructure for model integration tests
1 parent 8fbce40 commit 470aecd

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

elasticsearch-model/elasticsearch-model.gemspec

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,13 @@ Gem::Specification.new do |s|
2727
s.add_development_dependency "bundler", "~> 1.3"
2828
s.add_development_dependency "rake"
2929

30-
s.add_development_dependency "active_model", "> 3"
30+
s.add_development_dependency "elasticsearch-extensions"
31+
32+
s.add_development_dependency "sqlite3"
33+
s.add_development_dependency "activesupport", "> 3.0"
34+
s.add_development_dependency "activemodel", "> 3.0"
35+
s.add_development_dependency "activerecord", "> 3.0"
36+
s.add_development_dependency "oj"
3137

3238
s.add_development_dependency "shoulda-context"
3339
s.add_development_dependency "mocha"

elasticsearch-model/test/test_helper.rb

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,49 @@
44

55
require 'simplecov' and SimpleCov.start { add_filter "/test|test_/" } if ENV["COVERAGE"]
66

7+
# Register `at_exit` handler for integration tests shutdown.
8+
# MUST be called before requiring `test/unit`.
9+
at_exit { Elasticsearch::Test::IntegrationTestCase.__run_at_exit_hooks }
10+
711
require 'test/unit'
812
require 'shoulda-context'
913
require 'mocha/setup'
10-
require 'ansi/code'
1114
require 'turn' unless ENV["TM_FILEPATH"] || ENV["NOTURN"] || RUBY_1_8
1215

16+
require 'ansi'
17+
require 'oj'
18+
19+
require 'active_record'
1320
require 'active_model'
1421
require 'elasticsearch/model'
1522

23+
require 'elasticsearch/extensions/test/cluster'
24+
require 'elasticsearch/extensions/test/startup_shutdown'
25+
1626
module Elasticsearch
1727
module Test
1828
class IntegrationTestCase < ::Test::Unit::TestCase
29+
extend Elasticsearch::Extensions::Test::StartupShutdown
30+
31+
startup { Elasticsearch::TestCluster.start if ENV['SERVER'] and not Elasticsearch::TestCluster.running? }
32+
shutdown { Elasticsearch::Extensions::Test::Cluster.stop if ENV['SERVER'] && started? }
33+
context "IntegrationTest" do; should "noop on Ruby 1.8" do; end; end if RUBY_1_8
34+
35+
def setup
36+
ActiveRecord::Base.establish_connection( :adapter => 'sqlite3', :database => ":memory:" )
37+
logger = ::Logger.new(STDERR)
38+
logger.formatter = lambda { |s, d, p, m| "#{m.ansi(:faint, :cyan)}\n" }
39+
ActiveRecord::Base.logger = logger unless ENV['QUIET']
40+
41+
ActiveRecord::LogSubscriber.colorize_logging = false
42+
ActiveRecord::Migration.verbose = false
43+
44+
tracer = ::Logger.new(STDERR)
45+
tracer.formatter = lambda { |s, d, p, m| "#{m.gsub(/^.*$/) { |n| ' ' + n }.ansi(:faint)}\n" }
46+
47+
Elasticsearch::Model.client = Elasticsearch::Client.new host: 'localhost:9250',
48+
tracer: (ENV['QUIET'] ? nil : tracer)
49+
end
1950
end
2051
end
2152
end

0 commit comments

Comments
 (0)