Skip to content

Commit 59fdef4

Browse files
committed
Add client.append function for easily appending data to a feed.
1 parent ab70fa4 commit 59fdef4

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

Adafruit_IO/client.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,14 @@ def send(self, feed_name, value):
8989
path = "api/feeds/{0}/data/send".format(feed_name)
9090
return Data.from_dict(self._post(path, {'value': value}))
9191

92+
def append(self, feed, value):
93+
"""Helper function to simplify adding a value to a feed. Will append the
94+
specified value to the feed identified by either name, key, or ID.
95+
Returns a Data instance with details about the newly appended row of data.
96+
Note that unlike send the feed should exist before calling append.
97+
"""
98+
return self.create_data(feed, Data(value=value))
99+
92100
def receive(self, feed):
93101
"""Retrieve the most recent value for the specified feed. Feed can be a
94102
feed ID, feed key, or feed name. Returns a Data instance whose value

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
setup(
66
name='adafruit-io',
7-
version='0.9.0',
7+
version='0.9.1',
88
author='Justin Cooper',
99
author_email='[email protected]',
1010
packages=['Adafruit_IO'],

tests/test_client.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,27 @@ def test_create_data(self):
111111
result = io.create_data('TestFeed', data)
112112
self.assertEqual(int(result.value), 42)
113113

114+
def test_append_by_feed_name(self):
115+
io = self.get_client()
116+
self.ensure_feed_deleted(io, 'TestFeed')
117+
feed = io.create_feed(Feed(name='TestFeed'))
118+
result = io.append('TestFeed', 42)
119+
self.assertEqual(int(result.value), 42)
120+
121+
def test_append_by_feed_key(self):
122+
io = self.get_client()
123+
self.ensure_feed_deleted(io, 'Test Feed Fancy Name')
124+
feed = io.create_feed(Feed(name='Test Feed Fancy Name'))
125+
result = io.append(feed.key, 42)
126+
self.assertEqual(int(result.value), 42)
127+
128+
def test_append_by_feed_id(self):
129+
io = self.get_client()
130+
self.ensure_feed_deleted(io, 'TestFeed')
131+
feed = io.create_feed(Feed(name='TestFeed'))
132+
result = io.append(feed.id, 42)
133+
self.assertEqual(int(result.value), 42)
134+
114135
def test_create_feed(self):
115136
io = self.get_client()
116137
self.ensure_feed_deleted(io, 'TestFeed')

0 commit comments

Comments
 (0)