module MediaWiki::TestWiki::RSpecAdapter

Constants

PROXY_NAME
Proxy

Public Class Methods

enhance(config, *args) click to toggle source
   # File lib/media_wiki/test_wiki/rspec_adapter.rb
41 def enhance(config, *args)
42   return if config.respond_to?(PROXY_NAME)
43   init_config(Proxy.new, config, *args)
44   config
45 end
extended(base) click to toggle source
   # File lib/media_wiki/test_wiki/rspec_adapter.rb
47 def extended(base)
48   init_proxy(RSpec.configuration.send(PROXY_NAME), base.metadata)
49   base
50 end

Private Class Methods

init_config(mw, config, *args) click to toggle source
   # File lib/media_wiki/test_wiki/rspec_adapter.rb
54 def init_config(mw, config, *args)
55   config.add_setting PROXY_NAME, default: mw
56 
57   config.after   :context, *args do mw.pool.clean end
58   config.extend  self,     *args
59   config.include Helpers,  *args
60 
61   config.filter_run_excluding required_version: lambda { |value|
62     version = mw.version and not
63       Gem::Requirement.new(Array(value)).satisfied_by?(version)
64   }
65 end
init_proxy(mw, options = {}) click to toggle source
   # File lib/media_wiki/test_wiki/rspec_adapter.rb
67 def init_proxy(mw, options = {})
68   version, size = options.values_at(:version, :pool_size)
69 
70   mw.pool = DockerPool.new(size, nil, true) { |config|
71     mw.version = Gem::Version.new(config.version = version) if version
72     mw.config = { username: config.username, password: config.password }
73   }
74 end