aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFilipp Lepalaan <filipp@mac.com>2016-03-21 17:59:36 +0200
committerFilipp Lepalaan <filipp@mac.com>2016-03-21 17:59:36 +0200
commit5d5a8eae87bc7249ab01a63fadfd87f5e0739fe0 (patch)
tree96e3e6c7e648596a9c1bf1f2943a29d0da135540
parentba5574f5674138c3332f4220951d8e51d560dc1e (diff)
downloadpy-gsxws-5d5a8eae87bc7249ab01a63fadfd87f5e0739fe0.tar.gz
py-gsxws-5d5a8eae87bc7249ab01a63fadfd87f5e0739fe0.tar.bz2
py-gsxws-5d5a8eae87bc7249ab01a63fadfd87f5e0739fe0.zip
Fixed comms
-rw-r--r--gsxws/comms.py30
-rw-r--r--tests/test_gsxws.py20
2 files changed, 42 insertions, 8 deletions
diff --git a/gsxws/comms.py b/gsxws/comms.py
index 6a9bf4f..dc37e9b 100644
--- a/gsxws/comms.py
+++ b/gsxws/comms.py
@@ -12,20 +12,38 @@ class Communication(GsxObject):
The Fetch Communication Content API allows the service providers/depot/carriers
to fetch the communication content by article ID from the service news channel.
"""
+ return self._submit("lookupRequestData", "FetchCommunicationContent",
+ "communicationMessage")
def get_articles(self):
"""
The Fetch Communication Articles API allows the service partners
to fetch all the active communication message IDs.
"""
- doc = self._submit("lookupRequestData", "FetchCommunicationArticles",
- "communicationMessage")
- print(doc)
+ return self._submit("lookupRequestData", "FetchCommunicationArticles",
+ "communicationMessage")
+
+ def acknowledge(self):
+ """
+ The Acknowledge Communication API allows the service providers/depot/carriers to
+ update the status as Read/UnRead.
+ """
+ return self._submit("communicationRequest", "AcknowledgeCommunication",
+ "communicationResponse")
+
+
+def fetch(**kwargs):
+ return Communication(**kwargs).get_articles()
+
+
+def content(id):
+ return Communication(articleID=id).get_content()
-def fetch():
- """Shortcut for fetching CompTIA data from GSX"""
- return Communication(priority="HIGH", readStatus=True).get_articles()
+def ack(id, status):
+ ack = GsxObject(articleID=id)
+ ack.acknowledgeType = status
+ return Communication(acknowledgement=ack).acknowledge()
if __name__ == '__main__':
diff --git a/tests/test_gsxws.py b/tests/test_gsxws.py
index cff04d9..164c90c 100644
--- a/tests/test_gsxws.py
+++ b/tests/test_gsxws.py
@@ -21,10 +21,26 @@ def empty(a):
class CommsTestCase(TestCase):
def setUp(self):
from gsxws.core import connect
+ self.priority = 'HIGH'
+ self.article_id = 'SN3133'
connect(os.getenv('GSX_USER'), os.getenv('GSX_SOLDTO'), os.getenv('GSX_ENV'))
+ self.articles = comms.fetch(priority=self.priority, readStatus=False)
- def test_fetch(self):
- comms.fetch()
+ def test_priority(self):
+ for a in self.articles:
+ self.assertEqual(a.priority, self.priority)
+
+ def test_date(self):
+ for a in self.articles:
+ self.assertIsInstance(a.createdDate, date)
+
+ def test_content(self):
+ content = comms.content(self.article_id)
+ self.assertEqual(content.languageCode, 'en')
+
+ def test_ack(self):
+ result = comms.ack(self.article_id, 'UNREAD')
+ self.assertEqual(result.acknowledgeType, 'UNREAD')
class RemoteTestCase(TestCase):