From 039644b684dcff50f355379296c1c687737355a4 Mon Sep 17 00:00:00 2001 From: Donald Little Date: Wed, 30 Sep 2015 04:22:03 -0400 Subject: [PATCH] fix(metadata): add metadata support to ListableAPIResource --- lob/resource.py | 8 ++++++-- tests/test_postcard.py | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lob/resource.py b/lob/resource.py index 1ac9161..d54d107 100644 --- a/lob/resource.py +++ b/lob/resource.py @@ -99,8 +99,12 @@ def retrieve(cls, id, **params): class ListableAPIResource(APIResource): @classmethod def list(cls, **params): - for key in params.keys(): - if isinstance(params[key], list): + for key, value in params.items(): + if isinstance(params[key], dict): + for subKey in value: + params[str(key) + '[' + subKey + ']'] = value[subKey] + del params[key] + elif isinstance(params[key], list): params[str(key) + '[]'] = params[key] del params[key] requestor = api_requestor.APIRequestor() diff --git a/tests/test_postcard.py b/tests/test_postcard.py index 4a2e465..db28253 100644 --- a/tests/test_postcard.py +++ b/tests/test_postcard.py @@ -18,6 +18,11 @@ def test_list_postcards_limit(self): self.assertTrue(isinstance(postcards.data[0], lob.Postcard)) self.assertEqual(len(postcards.data), 2) + def test_list_postcards_metadata(self): + postcards = lob.Postcard.list(metadata={ 'campagin': 'LOB2015' }) + self.assertTrue(isinstance(postcards.data[0], lob.Postcard)) + self.assertEqual(len(postcards.data), 1) + def test_list_postcards_fail(self): self.assertRaises(lob.error.InvalidRequestError, lob.Postcard.list, count=1000)