From 8b82223b6d805a075abdd00b2f47107e8641ac06 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 21 Feb 2011 15:20:52 -0500 Subject: [PATCH] Category support --- convore/groups.py | 22 +++++++++++----------- convore/models.py | 10 +++++++++- test_convore.py | 4 ++++ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/convore/groups.py b/convore/groups.py index a5cddd4..54f9af7 100644 --- a/convore/groups.py +++ b/convore/groups.py @@ -41,8 +41,6 @@ class GroupsDiscover(object): def friend(self): return self._discover_group('friend') - # ^groups/discover/explore/(?Ppopular|recent|alphabetical).json - class GroupsDiscoverExplore(object): @@ -75,19 +73,21 @@ class GroupsDiscoverExplore(object): class GroupDiscoverCategory(SyncedList): - __data_keys__ = ['name',] + __data_keys__ = ['slug',] def __init__(self): super(GroupDiscoverCategory, self).__init__() def get(self, key): - pass + r = api.get('groups', 'discover', 'category', key) + print r.content + cat = models.Category() + cat.import_from_api(deserialize(r.content)['categories']) + return cat def sync(self): - r = api.get('groups') -# for _group in json.loads(r.content)['groups']: -# -# group = models.Group() -# group.import_from_api(_group) -# group.joined = True -# self.data.append(group) + r = api.get('groups', 'discover', 'category') + for _cat in deserialize(r.content)['categories']: + cat = models.Category() + cat.import_from_api(_cat) + self.data.append(cat) diff --git a/convore/models.py b/convore/models.py index 6346be1..bb5cac0 100644 --- a/convore/models.py +++ b/convore/models.py @@ -91,7 +91,15 @@ class Group(object): class Category(object): def __init__(self): - pass + self.groups_count = None + self.slug = None + self.name = None + + def __repr__(self): + return '' % (self.slug) def import_from_api(self, d): """Constructs Category from deserialized API Response.""" + self.groups_count = d.get('groups_count', None) + self.slug = d.get('slug', None) + self.name = d.get('name', None) diff --git a/test_convore.py b/test_convore.py index 00a45a7..af92d4d 100644 --- a/test_convore.py +++ b/test_convore.py @@ -64,6 +64,10 @@ class ConvoreGroups(unittest.TestCase): def test_discover_category(self): self.convore.groups.discover.category + c = self.convore.groups.discover.category['gossip'] + self.assertIsInstance(c, convore.models.Category) + + if __name__ == '__main__': unittest.main()