mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -05:00
(POOLER-73) Update test helpers
This commit adds the following test helpers: - MockFindFolder Returns an mock result object from calling `Vmpooler::VsphereHelper.find_folder(foldername)` - Use MockRedis instead of using method stubs - MockLogger Creates an object which looks like the VMPooler::Logger object but just ignores all messages. This stops the proliferation of allow(logger).to .... expectations in tests - create_completed_vm Creates the required redis information for a completed VM - create_discovered_vm Creates the required redis information for a newly discovered VM - snapshot_revert_vm Creates the required redis information to revert a snapshot for a VM - disk_task_vm Creates the required redis information to add a disk addition task to a VM
This commit is contained in:
parent
8bcf74872a
commit
a9fc1bb8aa
2 changed files with 45 additions and 2 deletions
|
|
@ -6,6 +6,28 @@ def redis
|
||||||
@redis
|
@redis
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Mock an object which is result from Vmpooler::VsphereHelper.find_folder(foldername)
|
||||||
|
class MockFindFolder
|
||||||
|
attr_reader :childEntity
|
||||||
|
|
||||||
|
def initialize(vmlist = [])
|
||||||
|
# Generate an array of hashes
|
||||||
|
@childEntity = vmlist.map do |vm|
|
||||||
|
vm_object = {}
|
||||||
|
vm_object['name'] = vm
|
||||||
|
|
||||||
|
vm_object
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Mock an object which represents a Logger. This stops the proliferation
|
||||||
|
# of allow(logger).to .... expectations in tests.
|
||||||
|
class MockLogger
|
||||||
|
def log(_level, string)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def expect_json(ok = true, http = 200)
|
def expect_json(ok = true, http = 200)
|
||||||
expect(last_response.header['Content-Type']).to eq('application/json')
|
expect(last_response.header['Content-Type']).to eq('application/json')
|
||||||
|
|
||||||
|
|
@ -56,6 +78,18 @@ def create_vm(name, token = nil, redis_handle = nil)
|
||||||
redis_db.hset("vmpooler__vm__#{name}", 'token:token', token) if token
|
redis_db.hset("vmpooler__vm__#{name}", 'token:token', token) if token
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_completed_vm(name, pool, active = false, redis_handle = nil)
|
||||||
|
redis_db = redis_handle ? redis_handle : redis
|
||||||
|
redis_db.sadd("vmpooler__completed__#{pool}", name)
|
||||||
|
redis_db.hset("vmpooler__vm__#{name}", 'checkout', Time.now)
|
||||||
|
redis_db.hset("vmpooler__active__#{pool}", name, Time.now) if active
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_discovered_vm(name, pool, redis_handle = nil)
|
||||||
|
redis_db = redis_handle ? redis_handle : redis
|
||||||
|
redis_db.sadd("vmpooler__discovered__#{pool}", name)
|
||||||
|
end
|
||||||
|
|
||||||
def create_migrating_vm(name, pool, redis_handle = nil)
|
def create_migrating_vm(name, pool, redis_handle = nil)
|
||||||
redis_db = redis_handle ? redis_handle : redis
|
redis_db = redis_handle ? redis_handle : redis
|
||||||
redis_db.hset("vmpooler__vm__#{name}", 'checkout', Time.now)
|
redis_db.hset("vmpooler__vm__#{name}", 'checkout', Time.now)
|
||||||
|
|
@ -71,11 +105,20 @@ def fetch_vm(vm)
|
||||||
redis.hgetall("vmpooler__vm__#{vm}")
|
redis.hgetall("vmpooler__vm__#{vm}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def snapshot_revert_vm(vm, snapshot = '12345678901234567890123456789012')
|
||||||
|
redis.sadd('vmpooler__tasks__snapshot-revert', "#{vm}:#{snapshot}")
|
||||||
|
redis.hset("vmpooler__vm__#{vm}", "snapshot:#{snapshot}", "1")
|
||||||
|
end
|
||||||
|
|
||||||
def snapshot_vm(vm, snapshot = '12345678901234567890123456789012')
|
def snapshot_vm(vm, snapshot = '12345678901234567890123456789012')
|
||||||
redis.sadd('vmpooler__tasks__snapshot', "#{vm}:#{snapshot}")
|
redis.sadd('vmpooler__tasks__snapshot', "#{vm}:#{snapshot}")
|
||||||
redis.hset("vmpooler__vm__#{vm}", "snapshot:#{snapshot}", "1")
|
redis.hset("vmpooler__vm__#{vm}", "snapshot:#{snapshot}", "1")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def disk_task_vm(vm, disk_size = '10')
|
||||||
|
redis.sadd('vmpooler__tasks__disk', "#{vm}:#{disk_size}")
|
||||||
|
end
|
||||||
|
|
||||||
def has_vm_snapshot?(vm)
|
def has_vm_snapshot?(vm)
|
||||||
redis.smembers('vmpooler__tasks__snapshot').any? do |snapshot|
|
redis.smembers('vmpooler__tasks__snapshot').any? do |snapshot|
|
||||||
instance, sha = snapshot.split(':')
|
instance, sha = snapshot.split(':')
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ require 'time'
|
||||||
require 'mock_redis'
|
require 'mock_redis'
|
||||||
|
|
||||||
describe 'Pool Manager' do
|
describe 'Pool Manager' do
|
||||||
let(:logger) { double('logger') }
|
let(:logger) { MockLogger.new }
|
||||||
let(:redis) { double('redis') }
|
let(:redis) { MockRedis.new }
|
||||||
let(:metrics) { Vmpooler::DummyStatsd.new }
|
let(:metrics) { Vmpooler::DummyStatsd.new }
|
||||||
let(:config) { {} }
|
let(:config) { {} }
|
||||||
let(:pool) { 'pool1' }
|
let(:pool) { 'pool1' }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue