Skip to content

Commit bcfef95

Browse files
committed
Merge 'Fixed api_key bug.'
Fixes #67. Closes #68 Signed-off-by: James Brown <[email protected]>
2 parents 05c76ed + 29fe0cc commit bcfef95

File tree

4 files changed

+50
-27
lines changed

4 files changed

+50
-27
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@ Icon
1818
*.sublime-*
1919

2020
test
21-
virtualenv
21+
virtualenv
22+
.virtualenv
23+
.idea

easypost/__init__.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ def convert_to_easypost_object(response, api_key, parent=None, name=None):
147147

148148
class Requestor(object):
149149
def __init__(self, local_api_key=None):
150-
self.api_key = local_api_key
150+
self._api_key = local_api_key
151151

152152
@classmethod
153153
def api_url(cls, url=None):
@@ -263,7 +263,7 @@ def request(self, method, url, params=None, apiKeyRequired=True):
263263
def request_raw(self, method, url, params=None, apiKeyRequired=True):
264264
if params is None:
265265
params = {}
266-
my_api_key = self.api_key or api_key
266+
my_api_key = self._api_key or api_key
267267

268268
if apiKeyRequired and my_api_key is None:
269269
raise Error(
@@ -391,13 +391,13 @@ def __init__(self, easypost_id=None, api_key=None, parent=None, name=None, **par
391391
self.__dict__['_unsaved_values'] = set()
392392
self.__dict__['_transient_values'] = set()
393393
# python2.6 doesnt have {} syntax for sets
394-
self.__dict__['_immutable_values'] = set(['api_key', 'id'])
394+
self.__dict__['_immutable_values'] = set(['_api_key', 'id'])
395395
self.__dict__['_retrieve_params'] = params
396396

397397
self.__dict__['_parent'] = parent
398398
self.__dict__['_name'] = name
399399

400-
self.__dict__['api_key'] = api_key
400+
self.__dict__['_api_key'] = api_key
401401

402402
if easypost_id:
403403
self.id = easypost_id
@@ -456,7 +456,7 @@ def construct_from(cls, values, api_key=None, parent=None, name=None):
456456
return instance
457457

458458
def refresh_from(self, values, api_key):
459-
self.api_key = api_key
459+
self._api_key = api_key
460460

461461
for k, v in sorted(six.iteritems(values)):
462462
if k == 'id' and self.id != v:
@@ -537,7 +537,7 @@ def retrieve(cls, easypost_id, api_key=None, **params):
537537
return instance
538538

539539
def refresh(self):
540-
requestor = Requestor(self.api_key)
540+
requestor = Requestor(self._api_key)
541541
url = self.instance_url()
542542
response, api_key = requestor.request('get', url, self._retrieve_params)
543543
self.refresh_from(response, api_key)
@@ -594,7 +594,7 @@ def create(cls, api_key=None, **params):
594594
class UpdateResource(Resource):
595595
def save(self):
596596
if self._unsaved_values:
597-
requestor = Requestor(self.api_key)
597+
requestor = Requestor(self._api_key)
598598
params = {}
599599
for k in self._unsaved_values:
600600
params[k] = getattr(self, k)
@@ -610,7 +610,7 @@ def save(self):
610610

611611
class DeleteResource(Resource):
612612
def delete(self, **params):
613-
requestor = Requestor(self.api_key)
613+
requestor = Requestor(self._api_key)
614614
url = self.instance_url()
615615
response, api_key = requestor.request('delete', url, params)
616616
self.refresh_from(response, api_key)
@@ -663,7 +663,7 @@ def create_and_verify(cls, api_key=None, carrier=None, **params):
663663
return convert_to_easypost_object(response, api_key)
664664

665665
def verify(self, carrier=None):
666-
requestor = Requestor(self.api_key)
666+
requestor = Requestor(self._api_key)
667667
url = "%s/%s" % (self.instance_url(), "verify")
668668
if carrier:
669669
url += "?carrier=%s" % carrier
@@ -715,37 +715,37 @@ def track_with_code(cls, api_key=None, **params):
715715
return response
716716

717717
def get_rates(self):
718-
requestor = Requestor(self.api_key)
718+
requestor = Requestor(self._api_key)
719719
url = "%s/%s" % (self.instance_url(), "rates")
720720
response, api_key = requestor.request('get', url)
721721
self.refresh_from(response, api_key)
722722
return self
723723

724724
def buy(self, **params):
725-
requestor = Requestor(self.api_key)
725+
requestor = Requestor(self._api_key)
726726
url = "%s/%s" % (self.instance_url(), "buy")
727727
response, api_key = requestor.request('post', url, params)
728728
self.refresh_from(response, api_key)
729729
return self
730730

731731
def refund(self, **params):
732-
requestor = Requestor(self.api_key)
732+
requestor = Requestor(self._api_key)
733733
url = "%s/%s" % (self.instance_url(), "refund")
734734

735735
response, api_key = requestor.request('get', url, params)
736736
self.refresh_from(response, api_key)
737737
return self
738738

739739
def insure(self, **params):
740-
requestor = Requestor(self.api_key)
740+
requestor = Requestor(self._api_key)
741741
url = "%s/%s" % (self.instance_url(), "insure")
742742

743743
response, api_key = requestor.request('post', url, params)
744744
self.refresh_from(response, api_key)
745745
return self
746746

747747
def label(self, **params):
748-
requestor = Requestor(self.api_key)
748+
requestor = Requestor(self._api_key)
749749
url = "%s/%s" % (self.instance_url(), "label")
750750

751751
response, api_key = requestor.request('get', url, params)
@@ -806,35 +806,35 @@ def create_and_buy(cls, api_key=None, **params):
806806
return convert_to_easypost_object(response, api_key)
807807

808808
def buy(self, **params):
809-
requestor = Requestor(self.api_key)
809+
requestor = Requestor(self._api_key)
810810
url = "%s/%s" % (self.instance_url(), "buy")
811811
response, api_key = requestor.request('post', url, params)
812812
self.refresh_from(response, api_key)
813813
return self
814814

815815
def label(self, **params):
816-
requestor = Requestor(self.api_key)
816+
requestor = Requestor(self._api_key)
817817
url = "%s/%s" % (self.instance_url(), "label")
818818
response, api_key = requestor.request('post', url, params)
819819
self.refresh_from(response, api_key)
820820
return self
821821

822822
def remove_shipments(self, **params):
823-
requestor = Requestor(self.api_key)
823+
requestor = Requestor(self._api_key)
824824
url = "%s/%s" % (self.instance_url(), "remove_shipments")
825825
response, api_key = requestor.request('post', url, params)
826826
self.refresh_from(response, api_key)
827827
return self
828828

829829
def add_shipments(self, **params):
830-
requestor = Requestor(self.api_key)
830+
requestor = Requestor(self._api_key)
831831
url = "%s/%s" % (self.instance_url(), "add_shipments")
832832
response, api_key = requestor.request('post', url, params)
833833
self.refresh_from(response, api_key)
834834
return self
835835

836836
def create_scan_form(self, **params):
837-
requestor = Requestor(self.api_key)
837+
requestor = Requestor(self._api_key)
838838
url = "%s/%s" % (self.instance_url(), "scan_form")
839839
response, api_key = requestor.request('post', url, params)
840840
self.refresh_from(response, api_key)
@@ -863,14 +863,14 @@ def all_updated(cls, api_key=None, **params):
863863

864864
class Pickup(AllResource, CreateResource):
865865
def buy(self, **params):
866-
requestor = Requestor(self.api_key)
866+
requestor = Requestor(self._api_key)
867867
url = "%s/%s" % (self.instance_url(), "buy")
868868
response, api_key = requestor.request('post', url, params)
869869
self.refresh_from(response, api_key)
870870
return self
871871

872872
def cancel(self, **params):
873-
requestor = Requestor(self.api_key)
873+
requestor = Requestor(self._api_key)
874874
url = "%s/%s" % (self.instance_url(), "cancel")
875875
response, api_key = requestor.request('post', url, params)
876876
self.refresh_from(response, api_key)
@@ -879,14 +879,14 @@ def cancel(self, **params):
879879

880880
class Order(AllResource, CreateResource):
881881
def get_rates(self):
882-
requestor = Requestor(self.api_key)
882+
requestor = Requestor(self._api_key)
883883
url = "%s/%s" % (self.instance_url(), "rates")
884884
response, api_key = requestor.request('get', url)
885885
self.refresh_from(response, api_key)
886886
return self
887887

888888
def buy(self, **params):
889-
requestor = Requestor(self.api_key)
889+
requestor = Requestor(self._api_key)
890890
url = "%s/%s" % (self.instance_url(), "buy")
891891
response, api_key = requestor.request('post', url, params)
892892
self.refresh_from(response, api_key)
@@ -992,7 +992,7 @@ def retrieve(cls, easypost_id, api_key=None, **params):
992992

993993
class Webhook(AllResource, CreateResource, DeleteResource):
994994
def update(self, **params):
995-
requestor = Requestor(self.api_key)
995+
requestor = Requestor(self._api_key)
996996
url = self.instance_url()
997997
response, api_key = requestor.request('put', url, params)
998998
self.refresh_from(response, api_key)

tests/test_batch.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ def test_batch_create_and_buy():
7474
assert batch.shipments[0].buyer_address.street1 == '388 Townsend St'
7575

7676
# Assert on fees
77-
assert batch.shipments[0].fees[0].amount == '0.03000'
78-
assert batch.shipments[0].fees[1].amount == '6.52000'
77+
assert batch.shipments[0].fees[0].amount == '0.01000'
78+
assert batch.shipments[0].fees[1].amount == '7.10000'
7979
assert batch.shipments[0].fees[2].amount == '1.00000'
8080

8181
# Assert on parcel

tests/test_carrier_type.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Unit tests related to 'CarrierType' (https://www.easypost.com/docs/api#carrier-types).
2+
3+
import easypost
4+
5+
6+
def test_carrier_types(prod_api_key):
7+
carriers = easypost.CarrierAccount.types()
8+
9+
assert len(carriers) > 0
10+
11+
for carrier in carriers:
12+
if carrier.type == 'AustraliaPostAccount':
13+
assert hasattr(carrier.fields.credentials, 'api_key')
14+
assert hasattr(carrier.fields.credentials, 'api_secret')
15+
assert hasattr(carrier.fields.credentials, 'account_number')
16+
assert hasattr(carrier.fields.credentials, 'print_as_you_go')
17+
18+
assert isinstance(carrier.fields.credentials.api_key, easypost.EasyPostObject)
19+
assert isinstance(carrier.fields.credentials.api_secret, easypost.EasyPostObject)
20+
assert isinstance(carrier.fields.credentials.account_number, easypost.EasyPostObject)
21+
assert isinstance(carrier.fields.credentials.print_as_you_go, easypost.EasyPostObject)

0 commit comments

Comments
 (0)