new stubbing approach
This commit is contained in:
parent
7d6b5410be
commit
b09fab680d
@ -62,26 +62,6 @@ class DevopsService
|
|||||||
def debug?
|
def debug?
|
||||||
DevopsConfig.config[:debug]
|
DevopsConfig.config[:debug]
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
def self.create_method name, &block
|
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"
|
require "sinatra"
|
||||||
|
|
||||||
module Provider
|
module Provider
|
||||||
class ProviderFactory
|
module ProviderFactory
|
||||||
|
|
||||||
@@providers = {}
|
@@providers = {}
|
||||||
|
|
||||||
@ -20,9 +20,8 @@ module Provider
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.init conf
|
def self.init conf
|
||||||
|
|
||||||
# require providers here to get access to debug properties
|
# require providers here to get access to debug properties
|
||||||
require 'providers/all'
|
require_all
|
||||||
|
|
||||||
["ec2", "openstack", "static"].each do |p|
|
["ec2", "openstack", "static"].each do |p|
|
||||||
begin
|
begin
|
||||||
@ -38,5 +37,15 @@ module Provider
|
|||||||
end
|
end
|
||||||
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
|
||||||
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_template_preset"
|
||||||
require "routes/v2.0/handlers/stack"
|
require "routes/v2.0/handlers/stack"
|
||||||
require "routes/routes_container"
|
require "routes/routes_container"
|
||||||
|
require 'lib/stubber'
|
||||||
|
|
||||||
require "auth/devops_auth"
|
require "auth/devops_auth"
|
||||||
|
|
||||||
@ -85,6 +86,10 @@ module Devops
|
|||||||
::Provider::ProviderFactory.init(config)
|
::Provider::ProviderFactory.init(config)
|
||||||
#set_up_providers_keys!(::Provider::ProviderFactory.all, mongo)
|
#set_up_providers_keys!(::Provider::ProviderFactory.all, mongo)
|
||||||
|
|
||||||
|
if settings.test? || config[:stub_classes]
|
||||||
|
Stubber.stub_providers!
|
||||||
|
Stubber.stub_models!
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def init_mongo
|
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: Some EC2 methods are stubbed'
|
||||||
|
|
||||||
puts '!!! WARNING !!!'
|
|
||||||
puts '!!! Some EC2 methods are stubbed !!!'
|
|
||||||
|
|
||||||
class Provider::Ec2
|
class Provider::Ec2
|
||||||
|
|
||||||
@ -31,9 +28,10 @@ class Provider::Ec2
|
|||||||
def flavors
|
def flavors
|
||||||
[{
|
[{
|
||||||
"id" => 'test_flavor',
|
"id" => 'test_flavor',
|
||||||
"v_cpus" => 2,
|
"cores" => 2,
|
||||||
"ram" => 256,
|
"ram" => 256,
|
||||||
"disk" => 1000
|
"disk" => 1000,
|
||||||
|
"name" => 'name'
|
||||||
}]
|
}]
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1,7 +1,4 @@
|
|||||||
# Stub some methods in Openstack Provider
|
puts '!!! WARNING: Some Openstack methods are stubbed'
|
||||||
|
|
||||||
puts '!!! WARNING !!!'
|
|
||||||
puts '!!! Some Openstack methods are stubbed !!!'
|
|
||||||
|
|
||||||
class Provider::Openstack
|
class Provider::Openstack
|
||||||
|
|
||||||
@ -61,12 +58,4 @@ class Provider::Openstack
|
|||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_stack(stack)
|
|
||||||
'4c712026-dcd5-4664-90b8-0915494c1332'
|
|
||||||
end
|
|
||||||
|
|
||||||
def delete_stack(stack)
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
Loading…
Reference in New Issue
Block a user