spec/spec_helper.rb in engineyard-metadata-0.0.4 vs spec/spec_helper.rb in engineyard-metadata-0.0.5
- old
+ new
@@ -1,40 +1,53 @@
require 'rubygems'
require 'spec'
# require 'ruby-debug'
# assumes active-support 3
require 'active_support/json/encoding'
+require 'fakeweb'
+require 'fakefs/safe'
PRESENT_PUBLIC_HOSTNAME = 'app_master.compute-1.amazonaws.com'
PRESENT_SECURITY_GROUP = 'ey-data1_production-1-2-3'
PRESENT_INSTANCE_ID = 'i-deadbeef'
+REPOSITORY_URI = 'FAKE_REPOSITORY_URI'
-require 'fakeweb'
-FakeWeb.allow_net_connect = false
-# fake call to amazon ec2 api to get present security group
-FakeWeb.register_uri :get,
- "http://169.254.169.254/latest/meta-data/security-groups",
- :status => ["200", "OK"],
- :body => PRESENT_SECURITY_GROUP
+def pretend_we_are_on_a_developer_machine
+ ENV['REPOSITORY_URI'] = REPOSITORY_URI
+ FakeWeb.allow_net_connect = false
+ FakeWeb.register_uri :get,
+ "https://cloud.engineyard.com/api/v2/environments",
+ :status => ["200", "OK"],
+ :body => File.read(File.join(File.dirname(__FILE__), 'support', 'engine_yard_cloud_api_response.json'))
+ # FakeFS.activate!
+end
-# fake call to amazon ec2 api to get present instance id
-FakeWeb.register_uri :get,
- "http://169.254.169.254/latest/meta-data/instance-id",
- :status => ["200", "OK"],
- :body => PRESENT_INSTANCE_ID
-dna_json = File.read File.join(File.dirname(__FILE__), 'support', 'dna.json')
-require 'fakefs'
-FileUtils.mkdir_p '/etc/chef'
-File.open '/etc/chef/dna.json', 'w' do |f|
- f.write dna_json
-end
+def pretend_we_are_on_an_engineyard_appcloud_ec2_instance
+ FakeWeb.allow_net_connect = false
+ # fake call to amazon ec2 api to get present security group
+ FakeWeb.register_uri :get,
+ "http://169.254.169.254/latest/meta-data/security-groups",
+ :status => ["200", "OK"],
+ :body => PRESENT_SECURITY_GROUP
-$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
-$LOAD_PATH.unshift(File.dirname(__FILE__))
-require 'engineyard-metadata'
+ # fake call to amazon ec2 api to get present instance id
+ FakeWeb.register_uri :get,
+ "http://169.254.169.254/latest/meta-data/instance-id",
+ :status => ["200", "OK"],
+ :body => PRESENT_INSTANCE_ID
-# Spec::Runner.configure do |config|
-# config.before(:all) do
-#
-# end
-# end
+ # first read a file from the real file system...
+ dna_json = File.read File.join(File.dirname(__FILE__), 'support', 'dna.json')
+ # ... then turn on the fakefs
+ FakeFS.activate!
+ FileUtils.mkdir_p '/etc/chef'
+ File.open '/etc/chef/dna.json', 'w' do |f|
+ f.write dna_json
+ end
+end
+
+def stop_pretending
+ FakeFS.deactivate!
+ FakeWeb.clean_registry
+ FakeWeb.allow_net_connect = true
+end