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

Defined Under Namespace

Classes: MapperStub, PageObject, StorageStub

Class Method Summary collapse

Class Method Details

.afterObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/spiderfw/test.rb', line 29

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.before_test if mod.respond_to?(:after_test)
    end
end

.beforeObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/spiderfw/test.rb', line 9

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



5
6
7
# File 'lib/spiderfw/test.rb', line 5

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

.load_fixtures(app, truncate = false) ⇒ Object



49
50
51
52
53
54
# File 'lib/spiderfw/test.rb', line 49

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

.load_fixtures!(app) ⇒ Object



45
46
47
# File 'lib/spiderfw/test.rb', line 45

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

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



56
57
58
59
# File 'lib/spiderfw/test.rb', line 56

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



61
62
63
# File 'lib/spiderfw/test.rb', line 61

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

.restart_transactionsObject



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

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

.use_storage_stub_for(app_or_model) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/spiderfw/test.rb', line 73

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'
    end
end