active_shipping 1.7.0 → 1.7.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 +4 -4
- data/lib/active_shipping/carriers/canada_post_pws.rb +2 -1
- data/lib/active_shipping/carriers/ups.rb +9 -2
- data/lib/active_shipping/carriers/usps.rb +3 -2
- data/lib/active_shipping/version.rb +1 -1
- data/test/remote/ups_test.rb +16 -4
- data/test/remote/usps_test.rb +4 -4
- data/test/test_helper.rb +1 -0
- data/test/unit/carriers/ups_test.rb +13 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab948e86e9c144422b55594fc95f88034607cec2
|
4
|
+
data.tar.gz: 41d45d0e901d21086d43ec7be167ae90653a2bf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e0984b2657b841ea40c6d98a3362fc5390d0c9ccaac2946202df6635211486738a623a425a10f1d7b5adc058028e890588035b7797403d1eba5e7cf7bb987fe
|
7
|
+
data.tar.gz: c0e2bd4ffa66008a1915002c509412884aae77b3485c922e20a8078ae45934af52e3f22b2dcc741f6a26e2e266805b7b4c7b81a4d8b09b297b4c2dcc1f22d327
|
@@ -481,11 +481,12 @@ module ActiveShipping
|
|
481
481
|
raise ActiveShipping::ResponseError, "No Shipping" unless doc.at('non-contract-shipment-info')
|
482
482
|
options = {
|
483
483
|
:shipping_id => doc.root.at('shipment-id').text,
|
484
|
-
:tracking_number => doc.root.at('tracking-pin').text,
|
485
484
|
:details_url => doc.root.at_xpath("links/link[@rel='details']")['href'],
|
486
485
|
:label_url => doc.root.at_xpath("links/link[@rel='label']")['href'],
|
487
486
|
:receipt_url => doc.root.at_xpath("links/link[@rel='receipt']")['href'],
|
488
487
|
}
|
488
|
+
options[:tracking_number] = doc.root.at('tracking-pin').text if doc.root.at('tracking-pin')
|
489
|
+
|
489
490
|
CPPWSShippingResponse.new(true, "", {}, options)
|
490
491
|
end
|
491
492
|
|
@@ -194,7 +194,7 @@ module ActiveShipping
|
|
194
194
|
xml = parse_ship_confirm(confirm_response)
|
195
195
|
success = response_success?(xml)
|
196
196
|
message = response_message(xml)
|
197
|
-
raise message unless success
|
197
|
+
raise ActiveShipping::ResponseContentError, StandardError.new(message) unless success
|
198
198
|
digest = response_digest(xml)
|
199
199
|
|
200
200
|
# STEP 2: Accept. Use shipment digest in first response to get the actual label.
|
@@ -748,6 +748,13 @@ module ActiveShipping
|
|
748
748
|
end
|
749
749
|
end
|
750
750
|
end
|
751
|
+
|
752
|
+
if package_value = package.options[:insured_value]
|
753
|
+
xml.InsuredValue do
|
754
|
+
xml.CurrencyCode(package.options[:currency] || 'USD')
|
755
|
+
xml.MonetaryValue(package_value.to_f)
|
756
|
+
end
|
757
|
+
end
|
751
758
|
end
|
752
759
|
|
753
760
|
# not implemented: * Shipment/Package/LargePackageIndicator element
|
@@ -843,7 +850,7 @@ module ActiveShipping
|
|
843
850
|
type_code = activity.at('Status/StatusType/Code').text
|
844
851
|
zoneless_time = parse_ups_datetime(:time => activity.at('Time'), :date => activity.at('Date'))
|
845
852
|
location = location_from_address_node(activity.at('ActivityLocation/Address'))
|
846
|
-
ShipmentEvent.new(description, zoneless_time, location,
|
853
|
+
ShipmentEvent.new(description, zoneless_time, location, description, type_code)
|
847
854
|
end
|
848
855
|
|
849
856
|
shipment_events = shipment_events.sort_by(&:time)
|
@@ -113,6 +113,8 @@ module ActiveShipping
|
|
113
113
|
:package_service => 'PACKAGESERVICE'
|
114
114
|
}
|
115
115
|
|
116
|
+
ATTEMPTED_DELIVERY_CODES = %w(02 53 54 55 56 H0)
|
117
|
+
|
116
118
|
# Array of U.S. possessions according to USPS: https://www.usps.com/ship/official-abbreviations.htm
|
117
119
|
US_POSSESSIONS = %w(AS FM GU MH MP PW PR VI)
|
118
120
|
|
@@ -630,8 +632,7 @@ module ActiveShipping
|
|
630
632
|
|
631
633
|
shipment_events = shipment_events.sort_by(&:time)
|
632
634
|
|
633
|
-
|
634
|
-
attempted_delivery_date = shipment_events.detect{ |shipment_event| shipment_event.type_code=="55" }.try(:time)
|
635
|
+
attempted_delivery_date = shipment_events.detect{ |shipment_event| ATTEMPTED_DELIVERY_CODES.include?(shipment_event.type_code) }.try(:time)
|
635
636
|
|
636
637
|
if last_shipment = shipment_events.last
|
637
638
|
status = last_shipment.status
|
data/test/remote/ups_test.rb
CHANGED
@@ -283,7 +283,7 @@ class RemoteUPSTest < Minitest::Test
|
|
283
283
|
assert response.success?
|
284
284
|
refute_empty response.delivery_estimates
|
285
285
|
ground_delivery_estimate = response.delivery_estimates.select {|de| de.service_name == "UPS Ground"}.first
|
286
|
-
assert_equal
|
286
|
+
assert_equal 1.business_days.after(today), ground_delivery_estimate.date
|
287
287
|
end
|
288
288
|
|
289
289
|
def test_delivery_date_estimates_within_zip_with_no_value
|
@@ -302,7 +302,7 @@ class RemoteUPSTest < Minitest::Test
|
|
302
302
|
assert response.success?
|
303
303
|
refute_empty response.delivery_estimates
|
304
304
|
ground_delivery_estimate = response.delivery_estimates.select {|de| de.service_name == "UPS Ground"}.first
|
305
|
-
assert_equal
|
305
|
+
assert_equal 1.business_days.after(today), ground_delivery_estimate.date
|
306
306
|
end
|
307
307
|
|
308
308
|
def test_delivery_date_estimates_across_zips
|
@@ -321,9 +321,9 @@ class RemoteUPSTest < Minitest::Test
|
|
321
321
|
assert response.success?
|
322
322
|
refute_empty response.delivery_estimates
|
323
323
|
ground_delivery_estimate = response.delivery_estimates.select {|de| de.service_name == "UPS Ground"}.first
|
324
|
-
assert_equal
|
324
|
+
assert_equal 3.business_days.after(today), ground_delivery_estimate.date
|
325
325
|
next_day_delivery_estimate = response.delivery_estimates.select {|de| de.service_name == "UPS Next Day Air"}.first
|
326
|
-
assert_equal
|
326
|
+
assert_equal 1.business_days.after(today), next_day_delivery_estimate.date
|
327
327
|
end
|
328
328
|
|
329
329
|
def test_rate_with_single_service
|
@@ -458,4 +458,16 @@ class RemoteUPSTest < Minitest::Test
|
|
458
458
|
assert response.success?
|
459
459
|
assert_instance_of ActiveShipping::LabelResponse, response
|
460
460
|
end
|
461
|
+
|
462
|
+
def test_create_shipment_with_insured_value
|
463
|
+
response = @carrier.create_shipment(
|
464
|
+
location_fixtures[:beverly_hills_with_name],
|
465
|
+
location_fixtures[:new_york_with_name],
|
466
|
+
package_fixtures.values_at(:insured_value),
|
467
|
+
:test => true
|
468
|
+
)
|
469
|
+
|
470
|
+
assert response.success?
|
471
|
+
assert_instance_of ActiveShipping::LabelResponse, response
|
472
|
+
end
|
461
473
|
end
|
data/test/remote/usps_test.rb
CHANGED
@@ -12,12 +12,12 @@ class RemoteUSPSTest < Minitest::Test
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_tracking_with_attempted_delivery
|
15
|
-
response = @carrier.find_tracking_info('
|
15
|
+
response = @carrier.find_tracking_info('CJ509046330US', test: false)
|
16
16
|
assert response.success?, response.message
|
17
|
-
assert_equal
|
17
|
+
assert_equal 10,response.shipment_events.size
|
18
18
|
assert_equal 'DELIVERED', response.shipment_events.last.message
|
19
|
-
assert_equal Time.parse('
|
20
|
-
assert_equal Time.parse('
|
19
|
+
assert_equal Time.parse('2016-04-21 13:46:00 UTC'), response.attempted_delivery_date
|
20
|
+
assert_equal Time.parse('2016-04-25 17:13:00 UTC'), response.actual_delivery_date
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_tracking_with_bad_number
|
data/test/test_helper.rb
CHANGED
@@ -87,6 +87,7 @@ module ActiveShipping::Test
|
|
87
87
|
:chocolate_stuff => Package.new(80, [2, 6, 12], :units => :imperial),
|
88
88
|
:frozen_stuff => Package.new(80, [2, 6, 12], :units => :imperial, :dry_ice => {weight: 1.4}),
|
89
89
|
:declared_value => Package.new(80, [2, 6, 12], :units => :imperial, :currency => 'USD', :value => 999.99),
|
90
|
+
:insured_value => Package.new(80, [2, 6, 12], :units => :imperial, :currency => 'USD', :insured_value => 999.99),
|
90
91
|
:tshirts => Package.new(10 * 16, nil, :units => :imperial),
|
91
92
|
:shipping_container => Package.new(2200000, [2440, 2600, 6058], :description => '20 ft Standard Container', :units => :metric),
|
92
93
|
:largest_gold_bar => Package.new(250000, [45.5, 22.5, 17], :value => 15300000),
|
@@ -128,6 +128,19 @@ class UPSTest < Minitest::Test
|
|
128
128
|
"DELIVERED"], response.shipment_events.map(&:name)
|
129
129
|
end
|
130
130
|
|
131
|
+
def test_find_tracking_info_should_have_messages_for_shipment_events
|
132
|
+
@carrier.expects(:commit).returns(@tracking_response)
|
133
|
+
response = @carrier.find_tracking_info('1Z5FX0076803466397')
|
134
|
+
assert_equal ["BILLING INFORMATION RECEIVED",
|
135
|
+
"IMPORT SCAN",
|
136
|
+
"LOCATION SCAN",
|
137
|
+
"LOCATION SCAN",
|
138
|
+
"DEPARTURE SCAN",
|
139
|
+
"ARRIVAL SCAN",
|
140
|
+
"OUT FOR DELIVERY",
|
141
|
+
"DELIVERED"], response.shipment_events.map(&:message)
|
142
|
+
end
|
143
|
+
|
131
144
|
def test_find_tracking_info_should_have_correct_type_codes_for_shipment_events
|
132
145
|
@carrier.expects(:commit).returns(@tracking_response)
|
133
146
|
response = @carrier.find_tracking_info('1Z5FX0076803466397')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_shipping
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James MacAulay
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-04-27 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: quantified
|