new stubbing approach
This commit is contained in:
parent
7d6b5410be
commit
b09fab680d
@ -62,26 +62,6 @@ class DevopsService
|
||||
def debug?
|
||||
DevopsConfig.config[:debug]
|
||||
end
|
||||
|
||||
# you could check env via
|
||||
# DevopsService.env.development? or
|
||||
# DevopsService.env.test? or
|
||||
# DevopsService.env.production?
|
||||
def self.env
|
||||
unless @env
|
||||
@env = DevopsConfig.config[:env].dup
|
||||
def @env.test?
|
||||
self == 'test'
|
||||
end
|
||||
def @env.development?
|
||||
self == 'development'
|
||||
end
|
||||
def @env.production?
|
||||
self == 'production'
|
||||
end
|
||||
end
|
||||
@env
|
||||
end
|
||||
end
|
||||
|
||||
def self.create_method name, &block
|
||||
|
||||
9
devops-service/lib/stubber.rb
Normal file
9
devops-service/lib/stubber.rb
Normal file
@ -0,0 +1,9 @@
|
||||
module Stubber
|
||||
def self.stub_providers!
|
||||
Dir["tests/stubs/providers/*.rb"].each {|file| require file }
|
||||
end
|
||||
|
||||
def self.stub_models!
|
||||
Dir["tests/stubs/models/*.rb"].each {|file| require file }
|
||||
end
|
||||
end
|
||||
@ -1,13 +0,0 @@
|
||||
["ec2", "openstack", "static"].each do |provider|
|
||||
begin
|
||||
require_relative provider
|
||||
|
||||
provider_stub_path = File.expand_path("../#{provider}_stub.rb", __FILE__)
|
||||
|
||||
if DevopsService.debug? && File.exists?(provider_stub_path)
|
||||
require provider_stub_path
|
||||
end
|
||||
rescue LoadError => e
|
||||
puts "Can not load provider '#{provider}': " + e.message
|
||||
end
|
||||
end
|
||||
@ -1,7 +1,7 @@
|
||||
require "sinatra"
|
||||
|
||||
module Provider
|
||||
class ProviderFactory
|
||||
module ProviderFactory
|
||||
|
||||
@@providers = {}
|
||||
|
||||
@ -20,9 +20,8 @@ module Provider
|
||||
end
|
||||
|
||||
def self.init conf
|
||||
|
||||
# require providers here to get access to debug properties
|
||||
require 'providers/all'
|
||||
require_all
|
||||
|
||||
["ec2", "openstack", "static"].each do |p|
|
||||
begin
|
||||
@ -38,5 +37,15 @@ module Provider
|
||||
end
|
||||
end
|
||||
|
||||
def self.require_all
|
||||
["ec2", "openstack", "static"].each do |provider|
|
||||
begin
|
||||
require_relative provider
|
||||
rescue LoadError => e
|
||||
puts "Can not load provider '#{provider}': " + e.message
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@ -41,6 +41,7 @@ require "routes/v2.0/handlers/stack_template"
|
||||
require "routes/v2.0/handlers/stack_template_preset"
|
||||
require "routes/v2.0/handlers/stack"
|
||||
require "routes/routes_container"
|
||||
require 'lib/stubber'
|
||||
|
||||
require "auth/devops_auth"
|
||||
|
||||
@ -85,6 +86,10 @@ module Devops
|
||||
::Provider::ProviderFactory.init(config)
|
||||
#set_up_providers_keys!(::Provider::ProviderFactory.all, mongo)
|
||||
|
||||
if settings.test? || config[:stub_classes]
|
||||
Stubber.stub_providers!
|
||||
Stubber.stub_models!
|
||||
end
|
||||
end
|
||||
|
||||
def init_mongo
|
||||
|
||||
1
devops-service/tests/config/cucumber.yml
Normal file
1
devops-service/tests/config/cucumber.yml
Normal file
@ -0,0 +1 @@
|
||||
default: -r features
|
||||
13
devops-service/tests/stubs/models/stack/stack_openstack.rb
Normal file
13
devops-service/tests/stubs/models/stack/stack_openstack.rb
Normal file
@ -0,0 +1,13 @@
|
||||
puts '!!! WARNING: Some StackOpenstack methods are stubbed'
|
||||
|
||||
class StackOpenstack < StackBase
|
||||
def create_stack_in_cloud!
|
||||
self.cloud_stack_id = '4c712026-dcd5-4664-90b8-0915494c1332'
|
||||
end
|
||||
|
||||
|
||||
def delete_stack_in_cloud!
|
||||
true
|
||||
end
|
||||
|
||||
end
|
||||
@ -1,7 +1,4 @@
|
||||
# Stub some methods in Ec2 Provider
|
||||
|
||||
puts '!!! WARNING !!!'
|
||||
puts '!!! Some EC2 methods are stubbed !!!'
|
||||
puts '!!! WARNING: Some EC2 methods are stubbed'
|
||||
|
||||
class Provider::Ec2
|
||||
|
||||
@ -31,9 +28,10 @@ class Provider::Ec2
|
||||
def flavors
|
||||
[{
|
||||
"id" => 'test_flavor',
|
||||
"v_cpus" => 2,
|
||||
"cores" => 2,
|
||||
"ram" => 256,
|
||||
"disk" => 1000
|
||||
"disk" => 1000,
|
||||
"name" => 'name'
|
||||
}]
|
||||
end
|
||||
|
||||
@ -1,7 +1,4 @@
|
||||
# Stub some methods in Openstack Provider
|
||||
|
||||
puts '!!! WARNING !!!'
|
||||
puts '!!! Some Openstack methods are stubbed !!!'
|
||||
puts '!!! WARNING: Some Openstack methods are stubbed'
|
||||
|
||||
class Provider::Openstack
|
||||
|
||||
@ -61,12 +58,4 @@ class Provider::Openstack
|
||||
]
|
||||
end
|
||||
|
||||
def create_stack(stack)
|
||||
'4c712026-dcd5-4664-90b8-0915494c1332'
|
||||
end
|
||||
|
||||
def delete_stack(stack)
|
||||
true
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user