Module: Spider::Test

Defined in:
lib/spiderfw/test.rb,
lib/spiderfw/test/page_object.rb,
lib/spiderfw/test/stubs/mapper_stub.rb,
lib/spiderfw/test/stubs/storage_stub.rb,
lib/spiderfw/test/extensions/db_storage.rb

Defined Under Namespace

Classes: DbStorage, MapperStub, PageObject, StorageStub

Class Method Summary collapse

Class Method Details

.afterObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/spiderfw/test.rb', line 43

def self.after
    if Spider.init_done?
        Spider.config.get('storages').keys.each do |k|
            storage = Spider::Model::BaseModel.get_storage(k)
            storage.rollback! if storage.supports_transactions?
        end
    end
    begin
       Mail::TestMailer.deliveries.clear
    rescue
    end
    Spider.apps.each do |name, mod|
        mod.after_test if mod.respond_to?(:after_test)
    end
end

.beforeObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/spiderfw/test.rb', line 23

def self.before
    if Spider.init_done?
        Spider.config.get('storages').keys.each do |k|
            Spider::Model::BaseModel.get_storage(k).start_transaction
        end
        unless Spider.runmode == 'production'
            FileUtils.rm_rf(Spider.paths[:var]) 
            FileUtils.mkdir_p(Spider.paths[:var])
        end
    end
    begin
       Mail::TestMailer.deliveries.clear
    rescue
    end
    Spider::Request.reset_current
    Spider.apps.each do |name, mod|
        mod.before_test if mod.respond_to?(:before_test)
    end
end

.envObject



19
20
21
# File 'lib/spiderfw/test.rb', line 19

def self.env
    @env ||= {}
end

.load_fixtures(app, truncate = false) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/spiderfw/test.rb', line 63

def self.load_fixtures(app, truncate=false)
    path = File.join(app.path, 'test', 'fixtures')
    loaded = []
    Dir.glob(File.join(path, '*.yml')).each do |yml|
        loaded += Spider::Model.load_fixtures(yml, truncate)
    end
end

.load_fixtures!(app) ⇒ Object



59
60
61
# File 'lib/spiderfw/test.rb', line 59

def self.load_fixtures!(app)
    load_fixtures(app, true)
end

.load_fixtures_file(app, file, truncate = false) ⇒ Object



71
72
73
74
# File 'lib/spiderfw/test.rb', line 71

def self.load_fixtures_file(app, file, truncate=false)
    path = File.join(app.path, 'test', 'fixtures')
    Spider::Model.load_fixtures(File.join(path, file)+'.yml', truncate)
end

.load_fixtures_file!(app, file) ⇒ Object



76
77
78
# File 'lib/spiderfw/test.rb', line 76

def self.load_fixtures_file!(app, file)
    load_fixtures_file(app, file, true)
end

.restart_transactionsObject



80
81
82
83
84
85
86
# File 'lib/spiderfw/test.rb', line 80

def self.restart_transactions
    Spider.config.get('storages').keys.each do |k|
        storage = Spider::Model::BaseModel.get_storage(k)
        storage.rollback!
        storage.start_transaction
    end
end

.setup_envObject



8
9
10
11
12
13
# File 'lib/spiderfw/test.rb', line 8

def self.setup_env
    @tmpdir = File.join(Dir.tmpdir, 'spider_test')
    FileUtils.rm_rf(@tmpdir) if File.exists?(@tmpdir)
    FileUtils.mkdir(@tmpdir)
    Spider.setup_paths(@tmpdir)
end

.teardown_envObject



15
16
17
# File 'lib/spiderfw/test.rb', line 15

def self.teardown_env
    FileUtils.rm_rf(@tmpdir)
end

.use_storage_stub_for(app_or_model) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/spiderfw/test.rb', line 88

def self.use_storage_stub_for(app_or_model)
    require 'spiderfw/test/stubs/storage_stub'
    Spider::Test.env[:storage_stub] ||= StorageStub.new('dummy')
    models = []
    if app_or_model < Spider::App
        models = app_or_model.models
    else
        models = [app_or_model]
    end
    models.each do |m|
        m.use_storage 'stub:stub://stub'
    end
end