forked from mongodb/mongoid
-
Notifications
You must be signed in to change notification settings - Fork 22
/
spec_helper.rb
67 lines (51 loc) · 2.22 KB
/
spec_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
# We use merge keys in our test config files, which Psych dislikes,
# so forcing Syck YAML Parser for now
require "yaml"
YAML::ENGINE.yamler = 'syck'
MODELS = File.join(File.dirname(__FILE__), "models")
SUPPORT = File.join(File.dirname(__FILE__), "support")
$LOAD_PATH.unshift(MODELS)
$LOAD_PATH.unshift(SUPPORT)
require "mongoid"
require "mocha"
require "rspec"
LOGGER = Logger.new($stdout)
Mongoid.configure do |config|
name = "mongoid_test"
config.master = Mongo::Connection.new.db(name)
config.logger = nil
end
Dir[ File.join(MODELS, "*.rb") ].sort.each { |file| require File.basename(file) }
Dir[ File.join(SUPPORT, "*.rb") ].each { |file| require File.basename(file) }
RSpec.configure do |config|
config.mock_with(:mocha)
config.after(:suite) { Mongoid.purge! }
# We need to filter out the specs that hit the slave databases if 2 slaves
# are not confiured and running locally.
slaves_configured = Support::Slaves.configured?
warn(Support::Slaves.message) unless slaves_configured
# We filter out the specs that require authentication if the database has not
# had the mongoid user set up properly.
user_configured = Support::Authentication.configured?
warn(Support::Authentication.message) unless user_configured
# We filter out specs that require authentication to MongoHQ if the
# environment variables have not been set up locally.
mongohq_configured = Support::MongoHQ.configured?
warn(Support::MongoHQ.message) unless mongohq_configured
# Filter out the specs for the secondary database tests if the secondary
# master and slaves are not running.
multi_configured = Support::Multi.configured?
warn(Support::Multi.message) unless multi_configured
config.filter_run_excluding(:config => lambda { |value|
return true if value == :mongohq && !mongohq_configured
return true if value == :slaves && !slaves_configured
return true if value == :user && !user_configured
return true if value == :multi && !multi_configured
})
# config.filter_run :focus => true
end
ActiveSupport::Inflector.inflections do |inflect|
inflect.singular("address_components", "address_component")
end