[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#988977: buster-pu: package libbusiness-us-usps-webtools-perl/1.122-1+deb10u1



Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: debian-perl@lists.debian.org

[ Reason ]
USPS is sending notices that HTTP access will be turned off shortly, in
favor of HTTPS.

Given that is a web service that will break in the wild, in addition to
a regular update for unstable, we should update buster (and stretch)
via stable-updates (and oldstable-updates).

[ Impact ]
libbusiness-us-usps-webtools-perl will be unusable after June 24th,
2021.

[ Tests ]
(What automated or manual tests cover the affected code?)

[ Risks ]
Patch is a backport of 1.124 -> 1.125 adapted for 1.122. Even if there
is a little risk (since I'm not able to fully test it), not updating
this package is a more elevated risk.

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

[ Changes ]
API change

Cheers,
Yadd
diff --git a/debian/changelog b/debian/changelog
index 3a65ac0..964b422 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libbusiness-us-usps-webtools-perl (1.122-1+deb10u1) buster; urgency=medium
+
+  * Update to new US-USPS API (Closes: #988330)
+
+ -- Yadd <yadd@debian.org>  Sat, 22 May 2021 12:17:01 +0200
+
 libbusiness-us-usps-webtools-perl (1.122-1) unstable; urgency=medium
 
   [ gregor herrmann ]
diff --git a/debian/patches/series b/debian/patches/series
index 38edaa7..4562936 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 spelling-errors.patch
+update-us-usps-webtools-to-https.patch
diff --git a/debian/patches/update-us-usps-webtools-to-https.patch b/debian/patches/update-us-usps-webtools-to-https.patch
new file mode 100644
index 0000000..7269fd1
--- /dev/null
+++ b/debian/patches/update-us-usps-webtools-to-https.patch
@@ -0,0 +1,307 @@
+Description: update due to US-USPS changes
+Author: Xavier Guimard <x.guimard@free.fr>
+Forwarded: not-needed
+Last-Update: 2021-05-21
+
+--- a/lib/Business/US/USPS/WebTools.pm
++++ b/lib/Business/US/USPS/WebTools.pm
+@@ -41,7 +41,7 @@
+ =cut
+ 
+ my $LiveServer = "production.shippingapis.com";
+-my $TestServer = "testing.shippingapis.com";
++my $TestServer = "stg-production.shippingapis.com";
+ 
+ =item new( ANONYMOUS_HASH )
+ 
+@@ -123,7 +123,7 @@
+ 	$_[0]->_live ?
+ 		"/ShippingAPI.dll"
+ 			:
+-		"/ShippingAPITest.dll"
++		"/ShippingAPI.dll"
+ 		}
+ 
+ sub _make_query_string {
+@@ -145,7 +145,7 @@
+ sub _make_url {
+ 	my( $self, $hash ) = @_;
+ 
+-	$self->{url} = qq|http://| . $self->_api_host . $self->_api_path .
++	$self->{url} = qq|https://| . $self->_api_host . $self->_api_path .
+ 		"?" . $self->_make_query_string( $hash );
+ 	}
+ 
+--- a/t/address_verification.t
++++ b/t/address_verification.t
+@@ -21,23 +21,35 @@
+ 	"environment variables to run these tests\n";
+ 	}
+ 
++my $is_testing = uc($ENV{USPS_WEBTOOLS_ENVIRONMENT}) eq 'TESTING';
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ use_ok( $class );
+ 
+ my $verifier;
+-my $base = qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=Verify&XML=%3CAddressValidateRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CIncludeOptionalElements%3Etrue%3C%2FIncludeOptionalElements%3E%3CReturnCarrierRoute%3Etrue%3C%2FReturnCarrierRoute%3E|;
++
++my $base = 'https://' . ($is_testing ? 'stg-' : '') . qq|production.shippingapis.com/ShippingAPI.dll?API=Verify&XML=%3CAddressValidateRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CIncludeOptionalElements%3Etrue%3C%2FIncludeOptionalElements%3E%3CReturnCarrierRoute%3Etrue%3C%2FReturnCarrierRoute%3E|;
+ 
+ subtest setup => sub {
+ 	$verifier = $class->new( {
+ 		UserID   => $ENV{USPS_WEBTOOLS_USERID},
+ 		Password => $ENV{USPS_WEBTOOLS_PASSWORD},
+-		Testing  => 1,
++                Testing  => $is_testing,
+ 		} );
+ 	isa_ok( $verifier, 	$class );
+ 
+ 	can_ok( $verifier, $method );
+ 	};
+ 
++=pod
++
++2021-05-19: This test is failing because the API is no longer returning the
++expected output; it now includes the following warning:
++
++Default address: The address you entered was found but more information is
++needed (such as an apartment, suite, or box number) to match to a specific
++address.
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good response #1
+ subtest good_response_1 => sub {
+@@ -81,6 +93,8 @@
+ 	is( $hash->{Zip4},     '1441',                      'Zip4 matches for Ivy Lane' );
+ 	};
+ 
++=cut
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good response #2
+ subtest good_response_1 => sub {
+--- a/t/city_state_lookup.t
++++ b/t/city_state_lookup.t
+@@ -21,6 +21,10 @@
+ 	"environment variables to run these tests\n";
+ 	}
+ 
++my $is_testing = uc($ENV{USPS_WEBTOOLS_ENVIRONMENT}) eq 'TESTING';
++
++my $base = 'https://' . ($is_testing ? 'stg-' : '') . 'production.shippingapis.com/ShippingAPI.dll';
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ use_ok( $class );
+ 
+@@ -29,7 +33,7 @@
+ 	$verifier = $class->new( {
+ 		UserID   => $ENV{USPS_WEBTOOLS_USERID},
+ 		Password => $ENV{USPS_WEBTOOLS_PASSWORD},
+-		Testing  => 1,
++                Testing  => $is_testing,
+ 		} );
+ 	isa_ok( $verifier, 	$class );
+ 
+@@ -44,7 +48,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E90210%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++		qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E90210%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ 		"URL for 90210 is correct",
+ 		);
+ 
+@@ -77,7 +81,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E20770%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++		qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E20770%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ 		"URL for 20770 is correct",
+ 		);
+ 
+@@ -110,7 +114,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21113%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++		qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21113%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ 		"URL for 21113 is correct",
+ 		);
+ 
+@@ -143,7 +147,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21032%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++		qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21032%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ 		"URL for 21032 is correct",
+ 		);
+ 
+@@ -182,7 +186,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21117%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++		qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21117%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ 		"URL for Sharonwood Road is correct",
+ 		);
+ 
+@@ -221,7 +225,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E99999%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++		qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E99999%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ 		"URL for Sharonwood Road Error is correct",
+ 		);
+ 
+--- a/t/test_or_live.t
++++ b/t/test_or_live.t
+@@ -15,8 +15,8 @@
+ 	ok( $webtools->_testing, "I think I'm testing" );
+ 
+ 	is( ! $webtools->_live, 1, "I don't think I'm live!" );
+-	is( $webtools->_api_host, "testing.shippingapis.com", "Testing host is right" );
+-	is( $webtools->_api_path, "/ShippingAPITest.dll", "Testing path is right" );
++	is( $webtools->_api_host, "stg-production.shippingapis.com", "Testing host is right" );
++	is( $webtools->_api_path, "/ShippingAPI.dll", "Testing path is right" );
+ 	};
+ 
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+--- a/t/zip_code_lookup.t
++++ b/t/zip_code_lookup.t
+@@ -21,6 +21,10 @@
+ 	"environment variables to run these tests\n";
+ 	}
+ 
++my $is_testing = uc($ENV{USPS_WEBTOOLS_ENVIRONMENT}) eq 'TESTING';
++
++my $base = 'https://' . ($is_testing ? 'stg-' : '') . 'production.shippingapis.com/ShippingAPI.dll';
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ my $verifier;
+ subtest setup => sub {
+@@ -29,13 +33,22 @@
+ 	$verifier = $class->new( {
+ 		UserID   => $ENV{USPS_WEBTOOLS_USERID},
+ 		Password => $ENV{USPS_WEBTOOLS_PASSWORD},
+-		Testing  => 1,
++                Testing => $is_testing,
+ 		} );
+ 	isa_ok( $verifier, 	$class );
+ 
+ 	can_ok( $verifier, $method );
+ 	};
+ 
++=pod
++
++2021-05-19: This test is failing because the API is no longer returning the
++expected output; it now includes the following warning:
++
++Default address: The address you entered was found but more information is
++needed (such as an apartment, suite, or box number) to match to a specific
++address.
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good Request #1
+ subtest good_request_1 => sub {
+@@ -50,7 +63,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E6406+Ivy+Lane%3C%2FAddress2%3E%3CCity%3EGreenbelt%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E6406+Ivy+Lane%3C%2FAddress2%3E%3CCity%3EGreenbelt%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Ivy Lane is correct",
+ 		);
+ 
+@@ -76,6 +89,8 @@
+ 	is( $hash->{Zip4},     '1441',                      'Zip4 matches for Ivy Lane' );
+ 	};
+ 
++=cut
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good request 2
+ subtest good_request_2 => sub {
+@@ -90,7 +105,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E8+Wildwood+Drive%3C%2FAddress2%3E%3CCity%3EOld+Lyme%3C%2FCity%3E%3CState%3ECT%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E8+Wildwood+Drive%3C%2FAddress2%3E%3CCity%3EOld+Lyme%3C%2FCity%3E%3CState%3ECT%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Wildwood Drive is correct",
+ 		);
+ 
+@@ -133,7 +148,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E4411+Romlon+Street%3C%2FAddress2%3E%3CCity%3EBeltsville%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E4411+Romlon+Street%3C%2FAddress2%3E%3CCity%3EBeltsville%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Romlan Street is correct",
+ 		);
+ 
+@@ -176,7 +191,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3ELaurel%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3ELaurel%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Sharonwood Road is correct",
+ 		);
+ 
+@@ -224,7 +239,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3EWilmington%3C%2FCity%3E%3CState%3EDE%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3EWilmington%3C%2FCity%3E%3CState%3EDE%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Sharonwood Road Error is correct",
+ 		);
+ 
+@@ -279,7 +294,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E1600+Pennsylvania+Avenue%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EDC%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E1600+Pennsylvania+Avenue%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EDC%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Pennsylvania Avenue Error is correct",
+ 		);
+ 
+@@ -330,7 +345,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EZZ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EZZ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Main Street Error is correct",
+ 		);
+ 
+@@ -382,7 +397,7 @@
+ 		} );
+ 	is(
+ 		$url,
+-		qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3ETrenton%3C%2FCity%3E%3CState%3ENJ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++		qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3ETrenton%3C%2FCity%3E%3CState%3ENJ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ 		"URL for Trenton, NJ Error is correct",
+ 		);
+ 
+--- a/t/track_confirm.t
++++ /dev/null
+@@ -1,14 +0,0 @@
+-#!/usr/bin/perl
+-
+-
+-use Test::More;
+-
+-my $class  = "Business::US::USPS::WebTools::TrackConfirm";
+-my $method = 'track';
+-
+-
+-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+-use_ok( $class );
+-
+-
+-done_testing();

Reply to: