Use webmock to power the with_http_stubs helper
This involves a small amount of changing the fixtures since we're using the regexp and not the full url matching powers of webmock.
This commit is contained in:
parent
90175c3bdb
commit
5e86393f72
5 changed files with 19 additions and 35 deletions
|
@ -569,11 +569,6 @@ module OSM
|
|||
@http_client ||= Faraday.new
|
||||
end
|
||||
|
||||
# Set the HTTP client to use
|
||||
def self.http_client=(client)
|
||||
@http_client = client
|
||||
end
|
||||
|
||||
# Return the GeoIP database handle
|
||||
def self.geoip_database
|
||||
@geoip_database ||= GeoIP.new(GEOIP_DATABASE) if defined?(GEOIP_DATABASE)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/?geoit=XML&postal=A1B+2C3:
|
||||
/?geoit=XML&postal=A1B%202C3:
|
||||
code: 200
|
||||
body: |
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -15,7 +15,7 @@
|
|||
</standard>
|
||||
</geodata>
|
||||
|
||||
/?geoit=XML&postal=k1a+0b1:
|
||||
/?geoit=XML&postal=k1a%200b1:
|
||||
code: 200
|
||||
body: |
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -32,7 +32,7 @@
|
|||
</standard>
|
||||
</geodata>
|
||||
|
||||
/?geoit=XML&postal=Q0Q+0Q0:
|
||||
/?geoit=XML&postal=Q0Q%200Q0:
|
||||
code: 200
|
||||
body: |
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/search?accept-language=&format=xml&q=Hoddesdon&viewbox=-0.559%2C51.766%2C0.836%2C51.217:
|
||||
/search?accept-language=&extratags=1&format=xml&q=Hoddesdon&viewbox=-0.559,51.766,0.836,51.217:
|
||||
code: 200
|
||||
body: |
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
@ -6,7 +6,7 @@
|
|||
<place place_id='110741' osm_type='node' osm_id='18007599' place_rank='18' boundingbox="51.7216709,51.8016709,-0.0512898,0.0287102" lat='51.7616709' lon='-0.0112898' display_name='Hoddesdon, Hertfordshire, East of England, England, United Kingdom' class='place' type='town' importance='0.50547792382382' icon='http://nominatim.openstreetmap.org/images/mapicons/poi_place_town.p.20.png'/>
|
||||
</searchresults>
|
||||
|
||||
/search?accept-language=&format=xml&extratags=1&q=Broxbourne&viewbox=-0.559%2C51.766%2C0.836%2C51.217:
|
||||
/search?accept-language=&extratags=1&format=xml&q=Broxbourne&viewbox=-0.559,51.766,0.836,51.217:
|
||||
code: 200
|
||||
body: |
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/cgi/geocoder.fcgi?format=text&postcode=CV4+7AL:
|
||||
/cgi/geocoder.fcgi?format=text&postcode=CV4%207AL:
|
||||
code: 200
|
||||
body: |
|
||||
# Easting,Northing,Matched Postcode,Latitude,Longitude
|
||||
429926,276058,'CV4 7AL',52.381748701968,-1.56176420939232
|
||||
|
||||
/cgi/geocoder.fcgi?format=text&postcode=XX9+9XX:
|
||||
/cgi/geocoder.fcgi?format=text&postcode=XX9%209XX:
|
||||
code: 200
|
||||
body: |
|
||||
Error: Postcode area 'XX' not found, postcode probably invalid
|
||||
|
|
|
@ -161,23 +161,12 @@ module ActiveSupport
|
|||
##
|
||||
# execute a block with a given set of HTTP responses stubbed
|
||||
def with_http_stubs(stubs_file)
|
||||
http_client_save = OSM.http_client
|
||||
|
||||
begin
|
||||
stubs = YAML.load_file(File.expand_path("../http/#{stubs_file}.yml", __FILE__))
|
||||
|
||||
OSM.http_client = Faraday.new do |builder|
|
||||
builder.adapter :test do |stub|
|
||||
stubs.each do |url, response|
|
||||
stub.get(url) { |_env| [response["code"], {}, response["body"]] }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
yield
|
||||
ensure
|
||||
OSM.http_client = http_client_save
|
||||
stubs = YAML.load_file(File.expand_path("../http/#{stubs_file}.yml", __FILE__))
|
||||
stubs.each do |url, response|
|
||||
stub_request(:get, Regexp.new(Regexp.quote(url))).to_return(:status => response["code"], :body => response["body"])
|
||||
end
|
||||
|
||||
yield
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue