City class and spec for testing it
Here are a few things I thought of:


Use let when you can, it is a pretty versatile function for testing.

before :all
  @city = City.new :country_version, :directory, :country_host, :locale
end


Can be rewritten as:

let(:city) { @city = City.new :country_version, :directory, :country_host, :locale }


This will only call city when you use it.
I don't typically test accessors/intatiation but if I did, I would probably test it with a specify block, it is also good for most tests where the description is "it should do something correctly":

This is nice for simple tests that explain themselves

specify { city.should be_an_instance_of City }
When testing, I try to think in terms of cases:
Ex:

it "should act in manner x when no cities are found"
it "should act in manner y when 1 city is found"
it "should act in manner z when n cities are found"


I find testing 0, 1, n catches a lot of potential errors
The testing gods expect you to test first, then write code.  If you don't :D, then make sure that your test fails in the way you expect it to.