rets 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d46af696793fde645c0c712cdb2e8a708bb93a1
4
- data.tar.gz: dd858c7811d76a390e178afd853f73a6f1d9807b
3
+ metadata.gz: 40ba28e99fa147a1f23f7cf4e7e04fcd5c9a4218
4
+ data.tar.gz: 8abca9ffb82c600b2f0ca9c6caf774c17eb0a4cb
5
5
  SHA512:
6
- metadata.gz: 6358cf33cb29fb6801dc0e6046f281a41deb49b1163f8a8344f9441ee7737edbd70b2cb5b04190da9abfd5c29c7721062ae7caf7885815efef11fe28b93aea27
7
- data.tar.gz: 4ac48ac0f4230210b4e52c9fcd49db1896510f4d819c2ebf7fb075618c1e7bfcfc4b76cccdbc135c5948c6a8903987c42d958387c5b77c3ebf8b5166421a3b36
6
+ metadata.gz: c510f13d8823562c48a2fd87421ada813c3766846082c6dd8bdad442c4fe4922de65cbd0d2d486b7fcbe8fb48c69651b61fc844812bbc2e7b307152ca327d2e1
7
+ data.tar.gz: 19f7bd93de8858158118108266f78d344c65c23f9f7c68ed20e19b7a77b0d42f4d187654c3a18ff817d5e35b1480b5e86741bd88acdf2a483a9510feb00777f8
@@ -1,11 +1,15 @@
1
+ ### 0.8.1 / 2015-06-09
2
+
3
+ * fix: actually make the httpclient version more specific this time
4
+
1
5
  ### 0.8.0 / 2015-06-09
2
6
 
3
- * reduce memory usage on parsing metadata
4
- * correctly raise authorization error when given XHTML instead of XML
5
- * unescape HTML encoded responses
6
- * make httpclient version requirement more specific
7
- * add ability to print metadata to a file
8
- * remove Gemfile.lock from repository
7
+ * feature: reduce memory usage on parsing metadata
8
+ * fix: correctly raise authorization error when given XHTML instead of XML
9
+ * fix: unescape HTML encoded responses
10
+ * fix: make httpclient version requirement more specific
11
+ * feature: add ability to print metadata to a file
12
+ * fix: remove Gemfile.lock from repository
9
13
 
10
14
  ### 0.7.0 / 2015-01-16
11
15
 
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ Hoe.plugin :gemspec
9
9
  Hoe.spec 'rets' do
10
10
  developer 'Estately, Inc. Open Source', 'opensource@estately.com'
11
11
 
12
- extra_deps << [ "httpclient", "~> 2.4" ]
12
+ extra_deps << [ "httpclient", "~> 2.4.0" ]
13
13
  extra_deps << [ "nokogiri", "~> 1.5" ]
14
14
 
15
15
  extra_dev_deps << [ "mocha", "~> 0.11" ]
@@ -3,7 +3,7 @@ require 'digest/md5'
3
3
  require 'nokogiri'
4
4
 
5
5
  module Rets
6
- VERSION = '0.8.0'
6
+ VERSION = '0.8.1'
7
7
 
8
8
  MalformedResponse = Class.new(ArgumentError)
9
9
  UnknownResponse = Class.new(ArgumentError)
@@ -0,0 +1,69 @@
1
+ require_relative "helper"
2
+
3
+ class TestErrorChecker < MiniTest::Test
4
+ def test_check_with_status_code_412
5
+ response = mock
6
+ response.stubs(:status_code).returns(412)
7
+ response.stubs(:body).returns('junk')
8
+ assert_raises Rets::HttpError do
9
+ Rets::Parser::ErrorChecker.check(response)
10
+ end
11
+ end
12
+
13
+ def test_401_with_empty_body_is_auth_failure
14
+ # 401 with no body is an auth failure
15
+ response = mock
16
+ response.stubs(:status_code).returns(401)
17
+ response.stubs(:ok?).returns(false)
18
+ response.stubs(:body).returns('')
19
+ assert_raises Rets::AuthorizationFailure do
20
+ Rets::Parser::ErrorChecker.check(response)
21
+ end
22
+ end
23
+
24
+ def test_401_with_html_body_is_auth_failure
25
+ # 401 with html body returns auth failure
26
+ response = mock
27
+ response.stubs(:status_code).returns(401)
28
+ response.stubs(:ok?).returns(false)
29
+ response.stubs(:body).returns(HTML_AUTH_FAILURE)
30
+ assert_raises Rets::AuthorizationFailure do
31
+ Rets::Parser::ErrorChecker.check(response)
32
+ end
33
+ end
34
+
35
+ def test_401_with_xhtml_body_is_auth_failure
36
+ # 401 with xhtml body returns auth failure
37
+ response = mock
38
+ response.stubs(:status_code).returns(401)
39
+ response.stubs(:ok?).returns(false)
40
+ response.stubs(:body).returns(XHTML_AUTH_FAILURE)
41
+ assert_raises Rets::AuthorizationFailure do
42
+ Rets::Parser::ErrorChecker.check(response)
43
+ end
44
+ end
45
+
46
+ def test_no_records_found_failure
47
+ response = mock
48
+ response.stubs(:body).returns(RETS_NO_RECORDS_ERROR)
49
+ assert_raises Rets::NoRecordsFound do
50
+ Rets::Parser::ErrorChecker.check(response)
51
+ end
52
+ end
53
+
54
+ def test_no_object_found_failure
55
+ response = mock
56
+ response.stubs(:body).returns(RETS_NO_OBJECT_ERROR)
57
+ assert_raises Rets::NoObjectFound do
58
+ Rets::Parser::ErrorChecker.check(response)
59
+ end
60
+ end
61
+
62
+ def test_invalid_request_failure
63
+ response = mock
64
+ response.stubs(:body).returns(RETS_INVALID_REQUEST_ERROR)
65
+ assert_raises Rets::InvalidRequest do
66
+ Rets::Parser::ErrorChecker.check(response)
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,49 @@
1
+ require_relative "helper"
2
+
3
+ class TestHttpClient < MiniTest::Test
4
+ def setup
5
+ @cm = WebAgent::CookieManager.new
6
+
7
+ @http = HTTPClient.new
8
+ @http.cookie_manager = @cm
9
+
10
+ @logger = Rets::Client::FakeLogger.new
11
+ @logger.stubs(:debug?).returns(false)
12
+
13
+ @http_client = Rets::HttpClient.new(@http, {}, @logger, "http://rets.rets.com/somestate/login.aspx")
14
+ end
15
+
16
+ def test_http_cookie_with_webagent_cookie
17
+ cookie1 = "RETS-Session-ID=879392834723043209; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
18
+ @cm.parse(cookie1, URI.parse("http://www.rets.rets.com"))
19
+
20
+ cookie2 = "Foo=Bar; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
21
+ @cm.parse(cookie2, URI.parse("http://www.rets.rets.com"))
22
+
23
+ assert_equal "879392834723043209", @http_client.http_cookie('RETS-Session-ID')
24
+ end
25
+
26
+ def test_http_cookie_without_webagent_cookie
27
+ assert_equal nil, @http_client.http_cookie('RETS-Session-ID')
28
+ end
29
+
30
+ def test_http_get_delegates_to_client
31
+ url = 'foo@example.com'
32
+ response = stub(:response)
33
+ response.stubs(:body).returns('response data')
34
+
35
+ @http.stubs(:get).with(url, anything, anything).returns(response)
36
+
37
+ assert_equal @http_client.http_get(url, {}), response
38
+ end
39
+
40
+ def test_http_post_delegates_to_client
41
+ url = 'foo@example.com'
42
+ response = stub(:response)
43
+ response.stubs(:body).returns('response data')
44
+
45
+ @http.stubs(:post).with(url, anything, anything).returns(response)
46
+
47
+ assert_equal @http_client.http_post(url, {}), response
48
+ end
49
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Estately, Inc. Open Source
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-09 00:00:00.000000000 Z
11
+ date: 2015-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.4'
19
+ version: 2.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.4'
26
+ version: 2.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '3.13'
103
+ version: '3.6'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '3.13'
110
+ version: '3.6'
111
111
  description: |-
112
112
  [![Build Status](https://secure.travis-ci.org/estately/rets.png?branch=master)](http://travis-ci.org/estately/rets)
113
113
  A pure-ruby library for fetching data from [RETS] servers.
@@ -147,14 +147,15 @@ files:
147
147
  - test/fixtures.rb
148
148
  - test/helper.rb
149
149
  - test/test_client.rb
150
+ - test/test_error_checker.rb
151
+ - test/test_http_client.rb
150
152
  - test/test_locking_http_client.rb
151
153
  - test/test_metadata.rb
152
154
  - test/test_parser_compact.rb
153
155
  - test/test_parser_multipart.rb
154
156
  - test/vcr_cassettes/unauthorized_response.yml
155
157
  homepage: http://github.com/estately/rets
156
- licenses:
157
- - MIT
158
+ licenses: []
158
159
  metadata: {}
159
160
  post_install_message:
160
161
  rdoc_options:
@@ -173,10 +174,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
174
  - !ruby/object:Gem::Version
174
175
  version: '0'
175
176
  requirements: []
176
- rubyforge_project:
177
- rubygems_version: 2.2.3
177
+ rubyforge_project: rets
178
+ rubygems_version: 2.2.0
178
179
  signing_key:
179
180
  specification_version: 4
180
181
  summary: "[![Build Status](https://secure.travis-ci.org/estately/rets.png?branch=master)](http://travis-ci.org/estately/rets)
181
182
  A pure-ruby library for fetching data from [RETS] servers"
182
- test_files: []
183
+ test_files:
184
+ - test/test_client.rb
185
+ - test/test_error_checker.rb
186
+ - test/test_http_client.rb
187
+ - test/test_locking_http_client.rb
188
+ - test/test_metadata.rb
189
+ - test/test_parser_compact.rb
190
+ - test/test_parser_multipart.rb