rets 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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