From feafe7cd7642f466b5c04afe618778558107b838 Mon Sep 17 00:00:00 2001 From: Xuhao Date: Sat, 17 Sep 2016 16:12:28 +0800 Subject: [PATCH] #1 - Use VCR to avoid remote request call when run rspec --- Gemfile | 3 + china_aqi.gemspec | 1 - ...ash_with_aqi_data_when_call_get_method.yml | 69 ++++++++++++ ..._for_city_to_get_stations_for_one_city.yml | 69 ++++++++++++ ...aqi_data_when_call_get_instance_method.yml | 69 ++++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 63 +++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 100 +++++++++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 95 ++++++++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 58 ++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 100 +++++++++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 106 ++++++++++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 101 +++++++++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 58 ++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 100 +++++++++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 58 ++++++++++ ...ash_with_aqi_data_when_call_get_method.yml | 58 ++++++++++ spec/china_aqi/aqi_spec.rb | 79 ++++++------- spec/spec_helper.rb | 7 ++ 18 files changed, 1148 insertions(+), 46 deletions(-) create mode 100644 spec/cassettes/ChinaAqi/ChinaAqi_CityStations/ChinaAqi_CityStations/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/ChinaAqi_CityStations/have_module_function_called_get_stations_for_city_to_get_stations_for_one_city.yml create mode 100644 spec/cassettes/ChinaAqi/ChinaAqi_CityStations/return_a_hash_with_aqi_data_when_call_get_instance_method.yml create mode 100644 spec/cassettes/ChinaAqi/ChinaAqi_Station/ChinaAqi_Station/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CO/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_City/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CityPro/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_NO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_O3/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM10/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM25/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_SO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Global/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml create mode 100644 spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Ranking/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml diff --git a/Gemfile b/Gemfile index fa81962..78914aa 100644 --- a/Gemfile +++ b/Gemfile @@ -8,6 +8,9 @@ if RUBY_VERSION < '2' gem 'json', '1.8.3' gem 'tins', '1.6.0' end +gem 'rspec', '~> 3.5.0' +gem 'webmock', require: 'webmock/rspec' +gem 'vcr', '~> 3.0', '>= 3.0.3' gem 'coveralls', require: false gem 'rubocop', require: false gem 'rubocop-rspec', '1.4.1' diff --git a/china_aqi.gemspec b/china_aqi.gemspec index 8b21a87..c3352af 100644 --- a/china_aqi.gemspec +++ b/china_aqi.gemspec @@ -21,7 +21,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'bundler', '~> 1.3' spec.add_development_dependency 'rake' - spec.add_development_dependency 'rspec', '~> 3.5.0' if RUBY_VERSION < '2.2.2' spec.add_dependency 'activesupport', '~> 4.0' else diff --git a/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/ChinaAqi_CityStations/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/ChinaAqi_CityStations/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..9ea578a --- /dev/null +++ b/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/ChinaAqi_CityStations/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,69 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/station_names.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:27 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"2acebf4b51708fbc64cbbcbd61ccbcda"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWVlNzRkZWM2NDQ4OWVhYTFhYjRjY2UzYmVkZjVkNGVmBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--a7a4d9cf862207498ee3760862ff97b8c6bef0c9; + path=/; HttpOnly + X-Request-Id: + - d6c8a0f8ae4f847a76f929217bbac9af + X-Runtime: + - '0.060673' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + eyJjaXR5Ijoi5LiK5rW3Iiwic3RhdGlvbnMiOlt7InN0YXRpb25fbmFtZSI6 + IuWNgeS6lOWOgiIsInN0YXRpb25fY29kZSI6IjExNDJBIn0seyJzdGF0aW9u + X25hbWUiOiLombnlj6MiLCJzdGF0aW9uX2NvZGUiOiIxMTQzQSJ9LHsic3Rh + dGlvbl9uYW1lIjoi5b6Q5rGH5LiK5biI5aSnIiwic3RhdGlvbl9jb2RlIjoi + MTE0NEEifSx7InN0YXRpb25fbmFtZSI6IuadqOa1puWbm+a8giIsInN0YXRp + b25fY29kZSI6IjExNDVBIn0seyJzdGF0aW9uX25hbWUiOiLpnZLmtabmt4Dl + sbHmuZYiLCJzdGF0aW9uX2NvZGUiOiIxMTQ2QSJ9LHsic3RhdGlvbl9uYW1l + Ijoi6Z2Z5a6J55uR5rWL56uZIiwic3RhdGlvbl9jb2RlIjoiMTE0N0EifSx7 + InN0YXRpb25fbmFtZSI6Iua1puS4nOW3neaymSIsInN0YXRpb25fY29kZSI6 + IjExNDhBIn0seyJzdGF0aW9uX25hbWUiOiLmtabkuJzmlrDljLrnm5HmtYvn + q5kiLCJzdGF0aW9uX2NvZGUiOiIxMTQ5QSJ9LHsic3RhdGlvbl9uYW1lIjoi + 5rWm5Lic5byg5rGfIiwic3RhdGlvbl9jb2RlIjoiMTE1MEEifSx7InN0YXRp + b25fbmFtZSI6IuaZrumZgCIsInN0YXRpb25fY29kZSI6IjExNDFBIn1dfQ== + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:27 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/have_module_function_called_get_stations_for_city_to_get_stations_for_one_city.yml b/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/have_module_function_called_get_stations_for_city_to_get_stations_for_one_city.yml new file mode 100644 index 0000000..5ba5836 --- /dev/null +++ b/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/have_module_function_called_get_stations_for_city_to_get_stations_for_one_city.yml @@ -0,0 +1,69 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/station_names.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:18 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"2acebf4b51708fbc64cbbcbd61ccbcda"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTI2ZmE2MWJjOGMxYTZkZTcwZDg5NDRlZWQ2OTI4OTYxBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--5b609a2188818088a8df50752eab331ca42cdf21; + path=/; HttpOnly + X-Request-Id: + - 88b12c12303ed86698d59048c61d0070 + X-Runtime: + - '0.131173' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + eyJjaXR5Ijoi5LiK5rW3Iiwic3RhdGlvbnMiOlt7InN0YXRpb25fbmFtZSI6 + IuWNgeS6lOWOgiIsInN0YXRpb25fY29kZSI6IjExNDJBIn0seyJzdGF0aW9u + X25hbWUiOiLombnlj6MiLCJzdGF0aW9uX2NvZGUiOiIxMTQzQSJ9LHsic3Rh + dGlvbl9uYW1lIjoi5b6Q5rGH5LiK5biI5aSnIiwic3RhdGlvbl9jb2RlIjoi + MTE0NEEifSx7InN0YXRpb25fbmFtZSI6IuadqOa1puWbm+a8giIsInN0YXRp + b25fY29kZSI6IjExNDVBIn0seyJzdGF0aW9uX25hbWUiOiLpnZLmtabmt4Dl + sbHmuZYiLCJzdGF0aW9uX2NvZGUiOiIxMTQ2QSJ9LHsic3RhdGlvbl9uYW1l + Ijoi6Z2Z5a6J55uR5rWL56uZIiwic3RhdGlvbl9jb2RlIjoiMTE0N0EifSx7 + InN0YXRpb25fbmFtZSI6Iua1puS4nOW3neaymSIsInN0YXRpb25fY29kZSI6 + IjExNDhBIn0seyJzdGF0aW9uX25hbWUiOiLmtabkuJzmlrDljLrnm5HmtYvn + q5kiLCJzdGF0aW9uX2NvZGUiOiIxMTQ5QSJ9LHsic3RhdGlvbl9uYW1lIjoi + 5rWm5Lic5byg5rGfIiwic3RhdGlvbl9jb2RlIjoiMTE1MEEifSx7InN0YXRp + b25fbmFtZSI6IuaZrumZgCIsInN0YXRpb25fY29kZSI6IjExNDFBIn1dfQ== + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:18 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/return_a_hash_with_aqi_data_when_call_get_instance_method.yml b/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/return_a_hash_with_aqi_data_when_call_get_instance_method.yml new file mode 100644 index 0000000..2cb9e00 --- /dev/null +++ b/spec/cassettes/ChinaAqi/ChinaAqi_CityStations/return_a_hash_with_aqi_data_when_call_get_instance_method.yml @@ -0,0 +1,69 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/station_names.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:20 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"2acebf4b51708fbc64cbbcbd61ccbcda"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTBmNDE0MTEzODVkN2M5NTYwYjRmMmFkZjcwY2U5MDA2BjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--bcf3a738d8466a43dd0e86351633738f4d90456a; + path=/; HttpOnly + X-Request-Id: + - 72ab43ea2e42e236269115c2b6f0a12c + X-Runtime: + - '0.046956' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + eyJjaXR5Ijoi5LiK5rW3Iiwic3RhdGlvbnMiOlt7InN0YXRpb25fbmFtZSI6 + IuWNgeS6lOWOgiIsInN0YXRpb25fY29kZSI6IjExNDJBIn0seyJzdGF0aW9u + X25hbWUiOiLombnlj6MiLCJzdGF0aW9uX2NvZGUiOiIxMTQzQSJ9LHsic3Rh + dGlvbl9uYW1lIjoi5b6Q5rGH5LiK5biI5aSnIiwic3RhdGlvbl9jb2RlIjoi + MTE0NEEifSx7InN0YXRpb25fbmFtZSI6IuadqOa1puWbm+a8giIsInN0YXRp + b25fY29kZSI6IjExNDVBIn0seyJzdGF0aW9uX25hbWUiOiLpnZLmtabmt4Dl + sbHmuZYiLCJzdGF0aW9uX2NvZGUiOiIxMTQ2QSJ9LHsic3RhdGlvbl9uYW1l + Ijoi6Z2Z5a6J55uR5rWL56uZIiwic3RhdGlvbl9jb2RlIjoiMTE0N0EifSx7 + InN0YXRpb25fbmFtZSI6Iua1puS4nOW3neaymSIsInN0YXRpb25fY29kZSI6 + IjExNDhBIn0seyJzdGF0aW9uX25hbWUiOiLmtabkuJzmlrDljLrnm5HmtYvn + q5kiLCJzdGF0aW9uX2NvZGUiOiIxMTQ5QSJ9LHsic3RhdGlvbl9uYW1lIjoi + 5rWm5Lic5byg5rGfIiwic3RhdGlvbl9jb2RlIjoiMTE1MEEifSx7InN0YXRp + b25fbmFtZSI6IuaZrumZgCIsInN0YXRpb25fY29kZSI6IjExNDFBIn1dfQ== + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:20 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/ChinaAqi_Station/ChinaAqi_Station/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/ChinaAqi_Station/ChinaAqi_Station/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..f4360c3 --- /dev/null +++ b/spec/cassettes/ChinaAqi/ChinaAqi_Station/ChinaAqi_Station/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,63 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/aqis_by_station.json?station_code=1141A&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:16 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"3baf7b6a87298d3412df7415e88f7eae"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTA5MzQ4ZWU4ODAwYzA4ZjQ3MjM0ZWQ2YjIyNzYzY2RkBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--79f35db63343680ee015235fc15d30117eabf17c; + path=/; HttpOnly + X-Request-Id: + - 16110fa33b01f0b5a447c748706a682a + X-Runtime: + - '0.056912' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + W3siYXFpIjoyNywiYXJlYSI6IuS4iua1tyIsImNvIjowLjQsImNvXzI0aCI6 + MC41LCJubzIiOjE3LCJubzJfMjRoIjoyNCwibzMiOjg1LCJvM18yNGgiOjg1 + LCJvM184aCI6NjMsIm8zXzhoXzI0aCI6NjMsInBtMTAiOjI2LCJwbTEwXzI0 + aCI6MjcsInBtMl81IjozLCJwbTJfNV8yNGgiOjEzLCJwb3NpdGlvbl9uYW1l + Ijoi5pmu6ZmAIiwicHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHki + OiLkvJgiLCJzbzIiOjksInNvMl8yNGgiOjExLCJzdGF0aW9uX2NvZGUiOiIx + MTQxQSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9XQ== + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:16 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CO/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CO/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..6614284 --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CO/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,100 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/co.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:00 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"02e59f9690787c410736d1717d119f96"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWFiYzI3N2RlMzUyMzk3ZTBiNjFlYTNlZDE5OWM3ZjI4BjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--5222682a46d94136891ce5bdab20aa4489d7071f; + path=/; HttpOnly + X-Request-Id: + - db272d3baa96fd145a5000a1319d875f + X-Runtime: + - '0.044337' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + W3siYXFpIjoyMSwiYXJlYSI6IuS4iua1tyIsImNvIjowLjgsImNvXzI0aCI6 + MC43LCJwb3NpdGlvbl9uYW1lIjoi5Y2B5LqU5Y6CIiwicHJpbWFyeV9wb2xs + dXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIx + MTQyQSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsi + YXFpIjoyMywiYXJlYSI6IuS4iua1tyIsImNvIjoxLjEsImNvXzI0aCI6MC45 + LCJwb3NpdGlvbl9uYW1lIjoi6Jm55Y+jIiwicHJpbWFyeV9wb2xsdXRhbnQi + Om51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQzQSIs + InRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjoz + MCwiYXJlYSI6IuS4iua1tyIsImNvIjowLjYsImNvXzI0aCI6MC43LCJwb3Np + dGlvbl9uYW1lIjoi5b6Q5rGH5LiK5biI5aSnIiwicHJpbWFyeV9wb2xsdXRh + bnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ0 + QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFp + IjozMiwiYXJlYSI6IuS4iua1tyIsImNvIjowLjMsImNvXzI0aCI6MC41LCJw + b3NpdGlvbl9uYW1lIjoi5p2o5rWm5Zub5ryCIiwicHJpbWFyeV9wb2xsdXRh + bnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ1 + QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFp + IjozNSwiYXJlYSI6IuS4iua1tyIsImNvIjowLjMsImNvXzI0aCI6MC4zLCJw + b3NpdGlvbl9uYW1lIjoi6Z2S5rWm5reA5bGx5rmWIiwicHJpbWFyeV9wb2xs + dXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIx + MTQ2QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsi + YXFpIjoyNSwiYXJlYSI6IuS4iua1tyIsImNvIjowLjcsImNvXzI0aCI6MC42 + LCJwb3NpdGlvbl9uYW1lIjoi6Z2Z5a6J55uR5rWL56uZIiwicHJpbWFyeV9w + b2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUi + OiIxMTQ3QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9 + LHsiYXFpIjoyOCwiYXJlYSI6IuS4iua1tyIsImNvIjowLjMsImNvXzI0aCI6 + MC40LCJwb3NpdGlvbl9uYW1lIjoi5rWm5Lic5bed5rKZIiwicHJpbWFyeV9w + b2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUi + OiIxMTQ4QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9 + LHsiYXFpIjozMCwiYXJlYSI6IuS4iua1tyIsImNvIjowLjUsImNvXzI0aCI6 + MC42LCJwb3NpdGlvbl9uYW1lIjoi5rWm5Lic5paw5Yy655uR5rWL56uZIiwi + cHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0 + aW9uX2NvZGUiOiIxMTQ5QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1 + OjAwOjAwWiJ9LHsiYXFpIjoyMCwiYXJlYSI6IuS4iua1tyIsImNvIjowLjUs + ImNvXzI0aCI6MC43LCJwb3NpdGlvbl9uYW1lIjoi5rWm5Lic5byg5rGfIiwi + cHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0 + aW9uX2NvZGUiOiIxMTUwQSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1 + OjAwOjAwWiJ9LHsiYXFpIjoyNywiYXJlYSI6IuS4iua1tyIsImNvIjowLjQs + ImNvXzI0aCI6MC41LCJwb3NpdGlvbl9uYW1lIjoi5pmu6ZmAIiwicHJpbWFy + eV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2Nv + ZGUiOiIxMTQxQSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAw + WiJ9LHsiYXFpIjozMSwiYXJlYSI6IuS4iua1tyIsImNvIjowLjU1LCJjb18y + NGgiOjAuNTksInBvc2l0aW9uX25hbWUiOm51bGwsInByaW1hcnlfcG9sbHV0 + YW50IjoiIiwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6bnVsbCwi + dGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn1d + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:00 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_City/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_City/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..f651614 --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_City/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,95 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/only_aqi.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:01:53 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"791119a26c72bfaadd4d00d71f405867"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTU1NTAwNDg0NjYxNzFhMzVmZWNmNjkwZjRiOWYxYTZhBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--148de3200e21323a80d493ebf9344cedccf18c15; + path=/; HttpOnly + X-Request-Id: + - ec95afe50993ee65e392baffc873b17b + X-Runtime: + - '0.048807' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + W3siYXFpIjoyMSwiYXJlYSI6IuS4iua1tyIsInBvc2l0aW9uX25hbWUiOiLl + jYHkupTljoIiLCJwcmltYXJ5X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0eSI6 + IuS8mCIsInN0YXRpb25fY29kZSI6IjExNDJBIiwidGltZV9wb2ludCI6IjIw + MTYtMDktMTdUMTU6MDA6MDBaIn0seyJhcWkiOjIzLCJhcmVhIjoi5LiK5rW3 + IiwicG9zaXRpb25fbmFtZSI6IuiZueWPoyIsInByaW1hcnlfcG9sbHV0YW50 + IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0M0Ei + LCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFxaSI6 + MzAsImFyZWEiOiLkuIrmtbciLCJwb3NpdGlvbl9uYW1lIjoi5b6Q5rGH5LiK + 5biI5aSnIiwicHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLk + vJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ0QSIsInRpbWVfcG9pbnQiOiIyMDE2 + LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjozMiwiYXJlYSI6IuS4iua1tyIs + InBvc2l0aW9uX25hbWUiOiLmnajmtablm5vmvIIiLCJwcmltYXJ5X3BvbGx1 + dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjEx + NDVBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJh + cWkiOjM1LCJhcmVhIjoi5LiK5rW3IiwicG9zaXRpb25fbmFtZSI6Iumdkua1 + pua3gOWxsea5liIsInByaW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFsaXR5 + Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0NkEiLCJ0aW1lX3BvaW50Ijoi + MjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFxaSI6MjUsImFyZWEiOiLkuIrm + tbciLCJwb3NpdGlvbl9uYW1lIjoi6Z2Z5a6J55uR5rWL56uZIiwicHJpbWFy + eV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2Nv + ZGUiOiIxMTQ3QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAw + WiJ9LHsiYXFpIjoyOCwiYXJlYSI6IuS4iua1tyIsInBvc2l0aW9uX25hbWUi + OiLmtabkuJzlt53mspkiLCJwcmltYXJ5X3BvbGx1dGFudCI6bnVsbCwicXVh + bGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjExNDhBIiwidGltZV9wb2lu + dCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJhcWkiOjMwLCJhcmVhIjoi + 5LiK5rW3IiwicG9zaXRpb25fbmFtZSI6Iua1puS4nOaWsOWMuuebkea1i+er + mSIsInByaW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwi + c3RhdGlvbl9jb2RlIjoiMTE0OUEiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0x + N1QxNTowMDowMFoifSx7ImFxaSI6MjAsImFyZWEiOiLkuIrmtbciLCJwb3Np + dGlvbl9uYW1lIjoi5rWm5Lic5byg5rGfIiwicHJpbWFyeV9wb2xsdXRhbnQi + Om51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTUwQSIs + InRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjoy + NywiYXJlYSI6IuS4iua1tyIsInBvc2l0aW9uX25hbWUiOiLmma7pmYAiLCJw + cmltYXJ5X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRp + b25fY29kZSI6IjExNDFBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6 + MDA6MDBaIn0seyJhcWkiOjMxLCJhcmVhIjoi5LiK5rW3IiwicG9zaXRpb25f + bmFtZSI6bnVsbCwicHJpbWFyeV9wb2xsdXRhbnQiOiIiLCJxdWFsaXR5Ijoi + 5LyYIiwic3RhdGlvbl9jb2RlIjpudWxsLCJ0aW1lX3BvaW50IjoiMjAxNi0w + OS0xN1QxNTowMDowMFoifV0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:01:53 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CityPro/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CityPro/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..33a244e --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_CityPro/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/aqi_details.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:03:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"561f8f04728019a592819c1d4ea01c00"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTc1ZWI1ZWY2ZDUwNGIyMWY3OWNkYjJjY2VkNDkyYzEzBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--65855139033ea522939dfffbcc0fe60e2b38bda6; + path=/; HttpOnly + X-Request-Id: + - d9a9e08240aa4a8aecf98eae5544a772 + X-Runtime: + - '0.081963' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + eyJlcnJvciI6IlNvcnJ577yM5oKo6L+Z5Liq5bCP5pe25YaF55qEQVBJ6K+3 + 5rGC5qyh5pWw55So5a6M5LqG77yM5LyR5oGv5LiA5LiL5ZCn77yBIn0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:03:40 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_NO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_NO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..b183119 --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_NO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,100 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/no2.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:06 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"d98eb05b0801b7abc4da1a5240aeaf87"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWNkMmE4YzBjMGU0OTgzMjcxNzA2Mzg3ODUyYjFlZmFhBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--04eb31ce536895f74e24045c4edb68ac4d80f554; + path=/; HttpOnly + X-Request-Id: + - 18696e27f4233b9bfccb418be7ad18d5 + X-Runtime: + - '0.048352' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + W3siYXFpIjoyMSwiYXJlYSI6IuS4iua1tyIsIm5vMiI6MjQsIm5vMl8yNGgi + OjIzLCJwb3NpdGlvbl9uYW1lIjoi5Y2B5LqU5Y6CIiwicHJpbWFyeV9wb2xs + dXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIx + MTQyQSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsi + YXFpIjoyMywiYXJlYSI6IuS4iua1tyIsIm5vMiI6MjYsIm5vMl8yNGgiOjI3 + LCJwb3NpdGlvbl9uYW1lIjoi6Jm55Y+jIiwicHJpbWFyeV9wb2xsdXRhbnQi + Om51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQzQSIs + InRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjoz + MCwiYXJlYSI6IuS4iua1tyIsIm5vMiI6MTgsIm5vMl8yNGgiOjIyLCJwb3Np + dGlvbl9uYW1lIjoi5b6Q5rGH5LiK5biI5aSnIiwicHJpbWFyeV9wb2xsdXRh + bnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ0 + QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFp + IjozMiwiYXJlYSI6IuS4iua1tyIsIm5vMiI6MTIsIm5vMl8yNGgiOjIzLCJw + b3NpdGlvbl9uYW1lIjoi5p2o5rWm5Zub5ryCIiwicHJpbWFyeV9wb2xsdXRh + bnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ1 + QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFp + IjozNSwiYXJlYSI6IuS4iua1tyIsIm5vMiI6Niwibm8yXzI0aCI6OCwicG9z + aXRpb25fbmFtZSI6Iumdkua1pua3gOWxsea5liIsInByaW1hcnlfcG9sbHV0 + YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0 + NkEiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFx + aSI6MjUsImFyZWEiOiLkuIrmtbciLCJubzIiOjI3LCJubzJfMjRoIjoyOCwi + cG9zaXRpb25fbmFtZSI6IumdmeWuieebkea1i+ermSIsInByaW1hcnlfcG9s + bHV0YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoi + MTE0N0EiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7 + ImFxaSI6MjgsImFyZWEiOiLkuIrmtbciLCJubzIiOjEyLCJubzJfMjRoIjox + OCwicG9zaXRpb25fbmFtZSI6Iua1puS4nOW3neaymSIsInByaW1hcnlfcG9s + bHV0YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoi + MTE0OEEiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7 + ImFxaSI6MzAsImFyZWEiOiLkuIrmtbciLCJubzIiOjE2LCJubzJfMjRoIjoy + NCwicG9zaXRpb25fbmFtZSI6Iua1puS4nOaWsOWMuuebkea1i+ermSIsInBy + aW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlv + bl9jb2RlIjoiMTE0OUEiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTow + MDowMFoifSx7ImFxaSI6MjAsImFyZWEiOiLkuIrmtbciLCJubzIiOjYsIm5v + Ml8yNGgiOjExLCJwb3NpdGlvbl9uYW1lIjoi5rWm5Lic5byg5rGfIiwicHJp + bWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9u + X2NvZGUiOiIxMTUwQSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAw + OjAwWiJ9LHsiYXFpIjoyNywiYXJlYSI6IuS4iua1tyIsIm5vMiI6MTcsIm5v + Ml8yNGgiOjI0LCJwb3NpdGlvbl9uYW1lIjoi5pmu6ZmAIiwicHJpbWFyeV9w + b2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUi + OiIxMTQxQSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9 + LHsiYXFpIjozMSwiYXJlYSI6IuS4iua1tyIsIm5vMiI6MTYsIm5vMl8yNGgi + OjIwLCJwb3NpdGlvbl9uYW1lIjpudWxsLCJwcmltYXJ5X3BvbGx1dGFudCI6 + IiIsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOm51bGwsInRpbWVf + cG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9XQ== + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:06 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_O3/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_O3/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..63bd204 --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_O3/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/o3.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:07 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"7c0781ea3e0efb64e453940c05356f11"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTdmYzQwNWUwYTM1OWJlMzc5OTY0ZTNkNzVmNmJkNzkwBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--f4c07dd7557c2c3e619c0adc68b6a22d7019bb3e; + path=/; HttpOnly + X-Request-Id: + - 220fb0c76e7df5fba669db6cb5e0c2d4 + X-Runtime: + - '0.036452' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + W3siYXFpIjoyMSwiYXJlYSI6IuS4iua1tyIsIm8zIjo2NywibzNfMjRoIjo2 + NywibzNfOGgiOjQ3LCJvM184aF8yNGgiOjQ3LCJwb3NpdGlvbl9uYW1lIjoi + 5Y2B5LqU5Y6CIiwicHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHki + OiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQyQSIsInRpbWVfcG9pbnQiOiIy + MDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjoyMywiYXJlYSI6IuS4iua1 + tyIsIm8zIjo2NywibzNfMjRoIjo3MCwibzNfOGgiOjQ0LCJvM184aF8yNGgi + OjQ0LCJwb3NpdGlvbl9uYW1lIjoi6Jm55Y+jIiwicHJpbWFyeV9wb2xsdXRh + bnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQz + QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFp + IjozMCwiYXJlYSI6IuS4iua1tyIsIm8zIjo5MywibzNfMjRoIjo5MywibzNf + OGgiOjY4LCJvM184aF8yNGgiOjY4LCJwb3NpdGlvbl9uYW1lIjoi5b6Q5rGH + 5LiK5biI5aSnIiwicHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHki + OiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ0QSIsInRpbWVfcG9pbnQiOiIy + MDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjozMiwiYXJlYSI6IuS4iua1 + tyIsIm8zIjoxMDIsIm8zXzI0aCI6MTAyLCJvM184aCI6NzIsIm8zXzhoXzI0 + aCI6NzIsInBvc2l0aW9uX25hbWUiOiLmnajmtablm5vmvIIiLCJwcmltYXJ5 + X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29k + ZSI6IjExNDVBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBa + In0seyJhcWkiOjM1LCJhcmVhIjoi5LiK5rW3IiwibzMiOjEwOSwibzNfMjRo + IjoxMDksIm8zXzhoIjo4NCwibzNfOGhfMjRoIjo4NCwicG9zaXRpb25fbmFt + ZSI6Iumdkua1pua3gOWxsea5liIsInByaW1hcnlfcG9sbHV0YW50IjpudWxs + LCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0NkEiLCJ0aW1l + X3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFxaSI6MjUsImFy + ZWEiOiLkuIrmtbciLCJvMyI6NzgsIm8zXzI0aCI6NzgsIm8zXzhoIjo1Nywi + bzNfOGhfMjRoIjo1NywicG9zaXRpb25fbmFtZSI6IumdmeWuieebkea1i+er + mSIsInByaW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwi + c3RhdGlvbl9jb2RlIjoiMTE0N0EiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0x + N1QxNTowMDowMFoifSx7ImFxaSI6MjgsImFyZWEiOiLkuIrmtbciLCJvMyI6 + ODksIm8zXzI0aCI6ODksIm8zXzhoIjo2MSwibzNfOGhfMjRoIjo2MSwicG9z + aXRpb25fbmFtZSI6Iua1puS4nOW3neaymSIsInByaW1hcnlfcG9sbHV0YW50 + IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0OEEi + LCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFxaSI6 + MzAsImFyZWEiOiLkuIrmtbciLCJvMyI6OTUsIm8zXzI0aCI6OTUsIm8zXzho + Ijo2MywibzNfOGhfMjRoIjo2MywicG9zaXRpb25fbmFtZSI6Iua1puS4nOaW + sOWMuuebkea1i+ermSIsInByaW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFs + aXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0OUEiLCJ0aW1lX3BvaW50 + IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFxaSI6MjAsImFyZWEiOiLk + uIrmtbciLCJvMyI6NjQsIm8zXzI0aCI6NjQsIm8zXzhoIjo0MSwibzNfOGhf + MjRoIjo0MSwicG9zaXRpb25fbmFtZSI6Iua1puS4nOW8oOaxnyIsInByaW1h + cnlfcG9sbHV0YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9j + b2RlIjoiMTE1MEEiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDow + MFoifSx7ImFxaSI6MjcsImFyZWEiOiLkuIrmtbciLCJvMyI6ODUsIm8zXzI0 + aCI6ODUsIm8zXzhoIjo2MywibzNfOGhfMjRoIjo2MywicG9zaXRpb25fbmFt + ZSI6IuaZrumZgCIsInByaW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFsaXR5 + Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0MUEiLCJ0aW1lX3BvaW50Ijoi + MjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFxaSI6MzEsImFyZWEiOiLkuIrm + tbciLCJvMyI6ODQsIm8zXzI0aCI6ODUsIm8zXzhoIjo2MCwibzNfOGhfMjRo + Ijo2MCwicG9zaXRpb25fbmFtZSI6bnVsbCwicHJpbWFyeV9wb2xsdXRhbnQi + OiIiLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjpudWxsLCJ0aW1l + X3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifV0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:07 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM10/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM10/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..bb9524a --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM10/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,101 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/pm10.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:08 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"bdcabe66801d23feda989f1d89363b5a"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWI4OTIzZDA5MWUxY2FmNTRjMTNmMTRhNWVmNDFiNDMwBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--7e20b19b9eea05635d443a974ebaf110dd8d9c30; + path=/; HttpOnly + X-Request-Id: + - 9f78e992a18ec326bcf73578b860aabd + X-Runtime: + - '0.113401' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + W3siYXFpIjoyMSwiYXJlYSI6IuS4iua1tyIsInBtMTAiOjE3LCJwbTEwXzI0 + aCI6MjIsInBvc2l0aW9uX25hbWUiOiLljYHkupTljoIiLCJwcmltYXJ5X3Bv + bGx1dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6 + IjExNDJBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0s + eyJhcWkiOjIzLCJhcmVhIjoi5LiK5rW3IiwicG0xMCI6MjMsInBtMTBfMjRo + IjoyMiwicG9zaXRpb25fbmFtZSI6IuiZueWPoyIsInByaW1hcnlfcG9sbHV0 + YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0 + M0EiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFx + aSI6MzAsImFyZWEiOiLkuIrmtbciLCJwbTEwIjoxNSwicG0xMF8yNGgiOjIy + LCJwb3NpdGlvbl9uYW1lIjoi5b6Q5rGH5LiK5biI5aSnIiwicHJpbWFyeV9w + b2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUi + OiIxMTQ0QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9 + LHsiYXFpIjozMiwiYXJlYSI6IuS4iua1tyIsInBtMTAiOjE5LCJwbTEwXzI0 + aCI6MjEsInBvc2l0aW9uX25hbWUiOiLmnajmtablm5vmvIIiLCJwcmltYXJ5 + X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29k + ZSI6IjExNDVBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBa + In0seyJhcWkiOjM1LCJhcmVhIjoi5LiK5rW3IiwicG0xMCI6MjMsInBtMTBf + MjRoIjoyNSwicG9zaXRpb25fbmFtZSI6Iumdkua1pua3gOWxsea5liIsInBy + aW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlv + bl9jb2RlIjoiMTE0NkEiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTow + MDowMFoifSx7ImFxaSI6MjUsImFyZWEiOiLkuIrmtbciLCJwbTEwIjoyMiwi + cG0xMF8yNGgiOjI0LCJwb3NpdGlvbl9uYW1lIjoi6Z2Z5a6J55uR5rWL56uZ + IiwicHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1YWxpdHkiOiLkvJgiLCJz + dGF0aW9uX2NvZGUiOiIxMTQ3QSIsInRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3 + VDE1OjAwOjAwWiJ9LHsiYXFpIjoyOCwiYXJlYSI6IuS4iua1tyIsInBtMTAi + OjE1LCJwbTEwXzI0aCI6MTksInBvc2l0aW9uX25hbWUiOiLmtabkuJzlt53m + spkiLCJwcmltYXJ5X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIs + InN0YXRpb25fY29kZSI6IjExNDhBIiwidGltZV9wb2ludCI6IjIwMTYtMDkt + MTdUMTU6MDA6MDBaIn0seyJhcWkiOjMwLCJhcmVhIjoi5LiK5rW3IiwicG0x + MCI6MTksInBtMTBfMjRoIjoyMiwicG9zaXRpb25fbmFtZSI6Iua1puS4nOaW + sOWMuuebkea1i+ermSIsInByaW1hcnlfcG9sbHV0YW50IjpudWxsLCJxdWFs + aXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0OUEiLCJ0aW1lX3BvaW50 + IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFxaSI6MjAsImFyZWEiOiLk + uIrmtbciLCJwbTEwIjoxNywicG0xMF8yNGgiOjIwLCJwb3NpdGlvbl9uYW1l + Ijoi5rWm5Lic5byg5rGfIiwicHJpbWFyeV9wb2xsdXRhbnQiOm51bGwsInF1 + YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTUwQSIsInRpbWVfcG9p + bnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjoyNywiYXJlYSI6 + IuS4iua1tyIsInBtMTAiOjI2LCJwbTEwXzI0aCI6MjcsInBvc2l0aW9uX25h + bWUiOiLmma7pmYAiLCJwcmltYXJ5X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0 + eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjExNDFBIiwidGltZV9wb2ludCI6 + IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJhcWkiOjMxLCJhcmVhIjoi5LiK + 5rW3IiwicG0xMCI6MTksInBtMTBfMjRoIjoyMiwicG9zaXRpb25fbmFtZSI6 + bnVsbCwicHJpbWFyeV9wb2xsdXRhbnQiOiIiLCJxdWFsaXR5Ijoi5LyYIiwi + c3RhdGlvbl9jb2RlIjpudWxsLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1Qx + NTowMDowMFoifV0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:08 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM25/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM25/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..473ba04 --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_PM25/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/pm2_5.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:08 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"561f8f04728019a592819c1d4ea01c00"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWI3ZjVlMDJkMTA2NTdmMzNjNWQ1ZDg0YjQwZjEyZDAyBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--da33dfa77f8b09780c6b58d3073ad8ce32f60907; + path=/; HttpOnly + X-Request-Id: + - 02c84562fad363f3d9ee7eb6df04bc01 + X-Runtime: + - '0.019627' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + eyJlcnJvciI6IlNvcnJ577yM5oKo6L+Z5Liq5bCP5pe25YaF55qEQVBJ6K+3 + 5rGC5qyh5pWw55So5a6M5LqG77yM5LyR5oGv5LiA5LiL5ZCn77yBIn0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:08 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_SO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_SO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..fb60b34 --- /dev/null +++ b/spec/cassettes/ChinaAqi/Dynamic_models/ChinaAqi_SO2/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,100 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/so2.json?avg=true&city=shanghai&stations=yes&token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:08 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"79230be516e0af78d368af80ca1b7d83"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWNlNWYzNTNmY2QzZGJhODdjYTJmODEwODg3NDBmNDNmBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--19e0e69bc23af654020dadd7ed62a86a685097c6; + path=/; HttpOnly + X-Request-Id: + - 6c9d18020735348c53f090f0b38f353b + X-Runtime: + - '0.048343' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + W3siYXFpIjoyMSwiYXJlYSI6IuS4iua1tyIsInNvMiI6MTIsInNvMl8yNGgi + OjksInBvc2l0aW9uX25hbWUiOiLljYHkupTljoIiLCJwcmltYXJ5X3BvbGx1 + dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjEx + NDJBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJh + cWkiOjIzLCJhcmVhIjoi5LiK5rW3Iiwic28yIjoxNCwic28yXzI0aCI6MTEs + InBvc2l0aW9uX25hbWUiOiLombnlj6MiLCJwcmltYXJ5X3BvbGx1dGFudCI6 + bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjExNDNBIiwi + dGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJhcWkiOjMw + LCJhcmVhIjoi5LiK5rW3Iiwic28yIjo4LCJzbzJfMjRoIjo5LCJwb3NpdGlv + bl9uYW1lIjoi5b6Q5rGH5LiK5biI5aSnIiwicHJpbWFyeV9wb2xsdXRhbnQi + Om51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ0QSIs + InRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjoz + MiwiYXJlYSI6IuS4iua1tyIsInNvMiI6OSwic28yXzI0aCI6MTAsInBvc2l0 + aW9uX25hbWUiOiLmnajmtablm5vmvIIiLCJwcmltYXJ5X3BvbGx1dGFudCI6 + bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjExNDVBIiwi + dGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJhcWkiOjM1 + LCJhcmVhIjoi5LiK5rW3Iiwic28yIjo5LCJzbzJfMjRoIjo5LCJwb3NpdGlv + bl9uYW1lIjoi6Z2S5rWm5reA5bGx5rmWIiwicHJpbWFyeV9wb2xsdXRhbnQi + Om51bGwsInF1YWxpdHkiOiLkvJgiLCJzdGF0aW9uX2NvZGUiOiIxMTQ2QSIs + InRpbWVfcG9pbnQiOiIyMDE2LTA5LTE3VDE1OjAwOjAwWiJ9LHsiYXFpIjoy + NSwiYXJlYSI6IuS4iua1tyIsInNvMiI6MTEsInNvMl8yNGgiOjksInBvc2l0 + aW9uX25hbWUiOiLpnZnlronnm5HmtYvnq5kiLCJwcmltYXJ5X3BvbGx1dGFu + dCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjExNDdB + IiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJhcWki + OjI4LCJhcmVhIjoi5LiK5rW3Iiwic28yIjoxMSwic28yXzI0aCI6MTEsInBv + c2l0aW9uX25hbWUiOiLmtabkuJzlt53mspkiLCJwcmltYXJ5X3BvbGx1dGFu + dCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29kZSI6IjExNDhB + IiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBaIn0seyJhcWki + OjMwLCJhcmVhIjoi5LiK5rW3Iiwic28yIjoxMywic28yXzI0aCI6MTUsInBv + c2l0aW9uX25hbWUiOiLmtabkuJzmlrDljLrnm5HmtYvnq5kiLCJwcmltYXJ5 + X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29k + ZSI6IjExNDlBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBa + In0seyJhcWkiOjIwLCJhcmVhIjoi5LiK5rW3Iiwic28yIjoxNiwic28yXzI0 + aCI6MTUsInBvc2l0aW9uX25hbWUiOiLmtabkuJzlvKDmsZ8iLCJwcmltYXJ5 + X3BvbGx1dGFudCI6bnVsbCwicXVhbGl0eSI6IuS8mCIsInN0YXRpb25fY29k + ZSI6IjExNTBBIiwidGltZV9wb2ludCI6IjIwMTYtMDktMTdUMTU6MDA6MDBa + In0seyJhcWkiOjI3LCJhcmVhIjoi5LiK5rW3Iiwic28yIjo5LCJzbzJfMjRo + IjoxMSwicG9zaXRpb25fbmFtZSI6IuaZrumZgCIsInByaW1hcnlfcG9sbHV0 + YW50IjpudWxsLCJxdWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjoiMTE0 + MUEiLCJ0aW1lX3BvaW50IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifSx7ImFx + aSI6MzEsImFyZWEiOiLkuIrmtbciLCJzbzIiOjExLCJzbzJfMjRoIjoxMCwi + cG9zaXRpb25fbmFtZSI6bnVsbCwicHJpbWFyeV9wb2xsdXRhbnQiOiIiLCJx + dWFsaXR5Ijoi5LyYIiwic3RhdGlvbl9jb2RlIjpudWxsLCJ0aW1lX3BvaW50 + IjoiMjAxNi0wOS0xN1QxNTowMDowMFoifV0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:08 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Global/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Global/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..ba8ebe6 --- /dev/null +++ b/spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Global/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/all_cities.json?token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:11 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"561f8f04728019a592819c1d4ea01c00"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWE0NWM0MjVmYmY0NWZlNTUzMmRlNDA3NTRlYzFkNzA1BjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--2b6dbd0fd3606e8f0881291e83d7a26bd54be0cf; + path=/; HttpOnly + X-Request-Id: + - ec5cf5d4fd4c85c50611930dc91ccddc + X-Runtime: + - '0.105592' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + eyJlcnJvciI6IlNvcnJ577yM5oKo6L+Z5Liq5bCP5pe25YaF55qEQVBJ6K+3 + 5rGC5qyh5pWw55So5a6M5LqG77yM5LyR5oGv5LiA5LiL5ZCn77yBIn0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:11 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Ranking/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml b/spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Ranking/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml new file mode 100644 index 0000000..f71410a --- /dev/null +++ b/spec/cassettes/ChinaAqi/Static_models/ChinaAqi_Ranking/return_an_array_or_hash_with_aqi_data_when_call_get_method.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: get + uri: http://www.pm25.in/api/querys/aqi_ranking.json?token=5j1znBVAsnSf5xQyNQyq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Sat, 17 Sep 2016 08:02:11 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Status: + - '200' + X-Powered-By: + - Phusion Passenger (mod_rails/mod_rack) + X-Ua-Compatible: + - IE=Edge,chrome=1 + Etag: + - '"561f8f04728019a592819c1d4ea01c00"' + Cache-Control: + - max-age=0, private, must-revalidate + - no-cache + Set-Cookie: + - _aqi_query_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWEyZjY1NTc1ZjU5NzcxMDA5OTUwYjk1MzQ5ZjY0ODAyBjsAVEkiHXdhcmRlbi51c2VyLmFwaV91c2VyLmtleQY7AFRbB1sGaQJCA0kiIiQyYSQxMCRYRkM0bGs4cDhXTjhWVFh1UGl5d0dPBjsAVA%3D%3D--7eadf550243d72224ebe102dcc2a99c341c980e9; + path=/; HttpOnly + X-Request-Id: + - 139e25ccef9ee7c5d6f619795f53fbbf + X-Runtime: + - '0.019629' + X-Rack-Cache: + - miss + body: + encoding: ASCII-8BIT + string: !binary |- + eyJlcnJvciI6IlNvcnJ577yM5oKo6L+Z5Liq5bCP5pe25YaF55qEQVBJ6K+3 + 5rGC5qyh5pWw55So5a6M5LqG77yM5LyR5oGv5LiA5LiL5ZCn77yBIn0= + http_version: + recorded_at: Sat, 17 Sep 2016 08:02:11 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/china_aqi/aqi_spec.rb b/spec/china_aqi/aqi_spec.rb index e50bfb8..78cd50b 100644 --- a/spec/china_aqi/aqi_spec.rb +++ b/spec/china_aqi/aqi_spec.rb @@ -1,78 +1,67 @@ # coding: utf-8 require 'spec_helper' -describe ChinaAqi do - before { ChinaAqi.token = '5j1znBVAsnSf5xQyNQyq' } - - describe 'Shared examples' do - RSpec.shared_examples 'common examples' do |klass, obj| - it 'return URI::HTTP object own context when call `uri` method' do - uri = obj.uri - expect(uri).to be_a(URI::HTTP) - expect(uri.host).to eq('www.pm25.in') - expect(uri.path).to eq("/api/querys/#{klass.method}.json") - end - - it 'return url string with own context when call `url` method' do - expect(obj.url).to be_a(String) - expect(obj.url).to include("http://www.pm25.in/api/querys/#{klass.method}.json") - end - - it 'return an array or hash with aqi data when call `get` method' do - data = obj.get - expect(data.class).to satisfy { |k| [Array, Hash].include?(k) } - end +RSpec.shared_examples 'common examples' do |klass, obj| + context klass.name do + it 'return URI::HTTP object own context when call `uri` method' do + uri = obj.uri + expect(uri).to be_a(URI::HTTP) + expect(uri.host).to eq('www.pm25.in') + expect(uri.path).to eq("/api/querys/#{klass.method}.json") end - RSpec.shared_examples 'class attribute' do |klass, value| - it 'have class attribute `method` equal #{value}' do - expect(klass.method).to eq(value) - end + it 'return url string with own context when call `url` method' do + expect(obj.url).to be_a(String) + expect(obj.url).to include("http://www.pm25.in/api/querys/#{klass.method}.json") end - RSpec.shared_examples 'common dynamic examples' do |klass| - ChinaAqi.token = '5j1znBVAsnSf5xQyNQyq' - obj = klass.new('shanghai') - include_examples 'common examples', klass, obj + it 'return an array or hash with aqi data when call `get` method' do + data = obj.get + expect(data.class).to satisfy { |k| [Array, Hash].include?(k) } end + end +end - RSpec.shared_examples 'common static examples' do |klass| - obj = klass.new - include_examples 'common examples', klass, obj - end +RSpec.shared_examples 'class attribute' do |klass, value| + it "#{klass.name} have class attribute `method` equal #{value}" do + expect(klass.method).to eq(value) end +end + +describe ChinaAqi, :vcr do + ChinaAqi.token = '5j1znBVAsnSf5xQyNQyq' - describe 'Dynamic models' do - include_examples 'common dynamic examples', ChinaAqi::City + context 'Dynamic models' do + include_examples 'common examples', ChinaAqi::City, ChinaAqi::City.new('shanghai') include_examples 'class attribute', ChinaAqi::City, :only_aqi - include_examples 'common dynamic examples', ChinaAqi::CityPro + include_examples 'common examples', ChinaAqi::CityPro, ChinaAqi::CityPro.new('shanghai') include_examples 'class attribute', ChinaAqi::CityPro, :aqi_details - include_examples 'common dynamic examples', ChinaAqi::CO + include_examples 'common examples', ChinaAqi::CO, ChinaAqi::CO.new('shanghai') include_examples 'class attribute', ChinaAqi::CO, :co - include_examples 'common dynamic examples', ChinaAqi::NO2 + include_examples 'common examples', ChinaAqi::NO2, ChinaAqi::NO2.new('shanghai') include_examples 'class attribute', ChinaAqi::NO2, :no2 - include_examples 'common dynamic examples', ChinaAqi::O3 + include_examples 'common examples', ChinaAqi::O3, ChinaAqi::O3.new('shanghai') include_examples 'class attribute', ChinaAqi::O3, :o3 - include_examples 'common dynamic examples', ChinaAqi::PM10 + include_examples 'common examples', ChinaAqi::PM10, ChinaAqi::PM10.new('shanghai') include_examples 'class attribute', ChinaAqi::PM10, :pm10 - include_examples 'common dynamic examples', ChinaAqi::PM25 + include_examples 'common examples', ChinaAqi::PM25, ChinaAqi::PM25.new('shanghai') include_examples 'class attribute', ChinaAqi::PM25, :pm2_5 - include_examples 'common dynamic examples', ChinaAqi::SO2 + include_examples 'common examples', ChinaAqi::SO2, ChinaAqi::SO2.new('shanghai') include_examples 'class attribute', ChinaAqi::SO2, :so2 end describe 'Static models' do - include_examples 'common static examples', ChinaAqi::Global + include_examples 'common examples', ChinaAqi::Global, ChinaAqi::Global.new include_examples 'class attribute', ChinaAqi::Global, :all_cities - include_examples 'common static examples', ChinaAqi::Ranking + include_examples 'common examples', ChinaAqi::Ranking, ChinaAqi::Ranking.new include_examples 'class attribute', ChinaAqi::Ranking, :aqi_ranking end @@ -89,7 +78,7 @@ end describe ChinaAqi::CityStations do - include_examples 'common dynamic examples', ChinaAqi::CityStations + include_examples 'common examples', ChinaAqi::CityStations, ChinaAqi::CityStations.new('shanghai') include_examples 'class attribute', ChinaAqi::CityStations, :station_names it 'have module function called get_stations_for_city to get stations for one city' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2ab9e1d..079070e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,11 @@ require 'coveralls' +require 'vcr' Coveralls.wear! $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) require 'china_aqi' + +VCR.configure do |c| + c.cassette_library_dir = 'spec/cassettes' + c.hook_into :webmock + c.configure_rspec_metadata! +end