Exemple #1
0
 def test_get_tags(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('content', 'doc1', 'caroline', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tags = g.unpack(g.get_tags('content', 'doc1', 'caroline'))
     self.assertEqual(tags, ['leadership', 'negotiations'])
Exemple #2
0
 def test_get_bookmarks_by_date(self):
     g = NetworkGraph()
     g.bookmark('content', 'fake_uuid_1')
     g.bookmark('content', 'fake_uuid_2')
     bookmarks = g.get_bookmarks_by_date('content')
     self.assertEquals(bookmarks[0].id, 'fake_uuid_1')
     self.assertTrue(bookmarks[1].datetime >= bookmarks[0].datetime)
Exemple #3
0
 def test_unpack_treeset(self):
     struct = OOBTree.OOTreeSet()
     struct.insert('foo')
     struct.insert('bar')
     g = NetworkGraph()
     flat = g.unpack(struct)
     self.assertEqual(flat, ['bar', 'foo'])
Exemple #4
0
 def test_unpack_treeset(self):
     struct = OOBTree.OOTreeSet()
     struct.insert('foo')
     struct.insert('bar')
     g = NetworkGraph()
     flat = g.unpack(struct)
     self.assertEqual(flat, ['bar', 'foo'])
Exemple #5
0
 def test_user_follow_unfollow(self):
     g = NetworkGraph()
     g.follow('user', u'bernard ☀')
     self.assertTrue(g.is_following('user', u'bernard ☀'))
     self.assertIn(u'bernard ☀', g.get_following('user'))
     g.unfollow('user', u'bernard ☀')
     self.assertFalse(g.is_following('user', u'bernard ☀'))
     self.assertNotIn(u'bernard ☀', g.get_following('user'))
Exemple #6
0
 def test_unpack_btree_treeset(self):
     struct = OOBTree.OOBTree()
     struct['foo'] = OOBTree.OOTreeSet()
     struct['foo'].insert('baz')
     struct['foo'].insert('bar')
     g = NetworkGraph()
     flat = g.unpack(struct)
     self.assertEqual(flat, {'foo': ['bar', 'baz']})
Exemple #7
0
 def test_unpack_btree_treeset(self):
     struct = OOBTree.OOBTree()
     struct['foo'] = OOBTree.OOTreeSet()
     struct['foo'].insert('baz')
     struct['foo'].insert('bar')
     g = NetworkGraph()
     flat = g.unpack(struct)
     self.assertEqual(flat, {'foo': ['bar', 'baz']})
Exemple #8
0
 def test_get_tagged_all(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('user', 'caroline', 'alex', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tagged = sorted(list(g.get_tagged('user', 'alex', 'leadership')))
     self.assertEqual(tagged, ['bernard', 'caroline'])
     tagged = sorted(list(g.get_tagged('content', 'alex', 'negotiations')))
     self.assertEqual(tagged, ['doc1'])
Exemple #9
0
 def test_user_follow_unfollow_followers(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')
     g.follow('user', 'bernard', 'caroline')
     g.unfollow('user', 'bernard', 'alex')
     self.assertEqual(['caroline'],
                      sorted(list(g.get_followers('user', 'bernard'))))
Exemple #10
0
 def test_user_bookmark_unbookmark_content(self):
     g = NetworkGraph()
     g.bookmark('content', 'fake uuid')
     self.assertTrue(g.is_bookmarking('content', 'fake uuid'))
     self.assertIn('fake uuid', g.get_bookmarks('content'))
     g.unbookmark('content', 'fake uuid')
     self.assertFalse(g.is_bookmarking('content', 'fake uuid'))
Exemple #11
0
 def test_user_like_unlike(self):
     g = NetworkGraph()
     g.like('content', 'fake uuid')
     self.assertTrue(g.is_liking('content', 'fake uuid'))
     self.assertIn('fake uuid', g.get_likes('content'))
     g.unlike('content', 'fake uuid')
     self.assertFalse(g.is_liking('content', 'fake uuid'))
Exemple #12
0
 def test_get_tagged_nouserid(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('user', 'caroline', 'alex', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tagged = g.get_tagged('user', None, 'leadership')
     self.assertEqual(tagged, {'bernard': ['alex'], 'caroline': ['alex']})
Exemple #13
0
 def test_get_tags(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('content', 'doc1', 'caroline', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tags = g.unpack(g.get_tags('content', 'doc1', 'caroline'))
     self.assertEqual(tags, ['leadership', 'negotiations'])
Exemple #14
0
 def test_user_follow_following(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')
     g.follow('user', 'caroline', 'alex')
     g.follow('user', 'dick', 'alex')
     self.assertEqual(['bernard', 'caroline', 'dick'],
                      sorted(list(g.get_following('user', 'alex'))))
Exemple #15
0
 def test_get_tagged_all(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('user', 'caroline', 'alex', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tagged = sorted(list(g.get_tagged('user', 'alex', 'leadership')))
     self.assertEqual(tagged, ['bernard', 'caroline'])
     tagged = sorted(list(g.get_tagged('content', 'alex', 'negotiations')))
     self.assertEqual(tagged, ['doc1'])
 def test_user_follow_unfollow_followers(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')
     g.follow('user', 'bernard', 'caroline')
     g.unfollow('user', 'bernard', 'alex')
     self.assertEqual(['caroline'],
                      sorted(list(g.get_followers('user', 'bernard'))))
 def test_user_follow_following(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')
     g.follow('user', 'caroline', 'alex')
     g.follow('user', 'dick', 'alex')
     self.assertEqual(['bernard', 'caroline', 'dick'],
                      sorted(list(g.get_following('user', 'alex'))))
Exemple #18
0
 def test_user_is_followed(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')
     self.assertTrue(g.is_followed('user', 'bernard', 'alex'))
     self.assertFalse(g.is_followed('user', 'alex', 'bernard'))
     self.assertFalse(g.is_followed('user', 'caroline', 'alex'))
     self.assertFalse(g.is_followed('tag', 'bernard', 'alex'))
Exemple #19
0
 def test_get_tagged_nouserid(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('user', 'caroline', 'alex', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tagged = g.get_tagged('user', None, 'leadership')
     self.assertEqual(
         tagged, {'bernard': ['alex'], 'caroline': ['alex']}
     )
 def test_user_is_followed(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')
     self.assertTrue(g.is_followed('user', 'bernard', 'alex'))
     self.assertFalse(g.is_followed('user', 'alex', 'bernard'))
     self.assertFalse(g.is_followed('user', 'caroline', 'alex'))
     self.assertFalse(g.is_followed('tag', 'bernard', 'alex'))
Exemple #21
0
 def test_is_tagged(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     self.assertTrue(
         g.is_tagged('user', 'bernard', 'alex', 'change management'))
     self.assertFalse(g.is_tagged('user', 'bernard', 'alex', 'negotiation'))
     self.assertFalse(g.is_tagged('content', 'doc1', 'alex', 'leadership'))
Exemple #22
0
 def test_utf8_args(self):
     """BTree keys MUST be of type unicode. Check that the implementation
     enforces this."""
     g = NetworkGraph()
     self.assertRaises(AttributeError, g.follow, 'user', 1, '2')
     self.assertRaises(AttributeError, g.follow, 'user', '1', 2)
     self.assertRaises(AttributeError, g.unfollow, 'user', 1, '2')
     self.assertRaises(AttributeError, g.unfollow, 'user', '1', 2)
     self.assertRaises(AttributeError, g.get_following, 'user', 2)
     self.assertRaises(AttributeError, g.get_followers, 'user', 2)
Exemple #23
0
 def test_utf8_args(self):
     """BTree keys MUST be of type unicode. Check that the implementation
     enforces this."""
     g = NetworkGraph()
     self.assertRaises(AttributeError, g.tag, 'user', 1, '2', '3')
     self.assertRaises(AttributeError, g.tag, 'user', '1', 2, '3')
     self.assertRaises(AttributeError, g.tag, 'user', '1', '2', 3)
     self.assertRaises(AttributeError, g.untag, 'user', 1, '2', '3')
     self.assertRaises(AttributeError, g.untag, 'user', '1', 2, '3')
     self.assertRaises(AttributeError, g.untag, 'user', '1', '2', 3)
Exemple #24
0
 def test_utf8_args(self):
     """BTree keys MUST be of type unicode. Check that the implementation
     enforces this."""
     g = NetworkGraph()
     self.assertRaises(AttributeError, g.like, 'content', 1, '2')
     self.assertRaises(AttributeError, g.like, 'content', '1', 2)
     self.assertRaises(AttributeError, g.unlike, 'content', 1, '2')
     self.assertRaises(AttributeError, g.unlike, 'content', '1', 2)
     self.assertRaises(AttributeError, g.get_likes, 'content', 1)
     self.assertRaises(AttributeError, g.get_likers, 'content', 1)
     self.assertRaises(AttributeError, g.is_liked, 'content', 1, 2)
Exemple #25
0
 def test_get_tagged_noparams(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('user', 'caroline', 'alex', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tagged = g.get_tagged()
     self.assertEqual(
         tagged, {'alex': {'change management': {'content': [],
                                                 'user': ['bernard']},
                           'leadership': {'content': [],
                                          'user': ['bernard', 'caroline']},
                           'negotiations': {'content': ['doc1'],
                                            'user': ['caroline']}}}
     )
Exemple #26
0
 def test_is_tagged(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     self.assertTrue(
         g.is_tagged('user', 'bernard', 'alex', 'change management'))
     self.assertFalse(
         g.is_tagged('user', 'bernard', 'alex', 'negotiation'))
     self.assertFalse(
         g.is_tagged('content', 'doc1', 'alex', 'leadership'))
Exemple #27
0
 def test_get_tagged_only_user_id(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('user', 'caroline', 'alex', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     tagged = g.get_tagged(None, 'alex', None)
     self.assertEqual(
         tagged, {
             'change management': {
                 'content': [],
                 'user': ['bernard']
             },
             'leadership': {
                 'content': [],
                 'user': ['bernard', 'caroline']
             },
             'negotiations': {
                 'content': ['doc1'],
                 'user': ['caroline']
             }
         })
    def test_to_0003(self):
        ''' Check that the network graph is fixed by this upgrade
        '''
        # Remove from ng tool the attributes added in version 0003
        ng = NetworkGraph()
        delattr(ng, '_bookmarks')
        delattr(ng, '_bookmarked')

        # the storages for bookmarks are no longer there
        # as it was up to version 0002
        with self.assertRaises(AttributeError):
            ng._bookmarks
            ng._bookmarked

        with patch('plone.api.portal.get_tool', return_value=ng):
            upgrade_to_0003(None)

        # the storages for bookmarks are back again
        for item_type in ng.supported_bookmark_types:
            self.assertTupleEqual(tuple(ng._bookmarks[item_type].keys()), ())
            self.assertTupleEqual(tuple(ng._bookmarked[item_type].keys()), ())
Exemple #29
0
 def setUp(self):
     self.userid = '*****@*****.**'
     self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
     self.statusid = str(long(time.time() * 1e6))
     self.container = NetworkGraph()
Exemple #30
0
class TestLikeMixed(unittest.TestCase):
    def setUp(self):
        self.userid = '*****@*****.**'
        self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
        self.statusid = str(long(time.time() * 1e6))
        self.container = NetworkGraph()

    def assertIterEqual(self, iterA, iterB):
        return self.assertEqual([x for x in iterA], [x for x in iterB])

    def test_like_mixed(self):
        self.assertIterEqual(self.container.get_likes("content", self.userid),
                             [])
        self.assertIterEqual(self.container.get_likes("update", self.userid),
                             [])

        self.container.like("content", self.object_uuid, self.userid)
        self.container.like("update", self.statusid, self.userid)
        self.assertIterEqual(self.container.get_likes("content", self.userid),
                             [self.object_uuid])
        self.assertIterEqual(self.container.get_likes("update", self.userid),
                             [self.statusid])

        self.container.unlike("content", self.object_uuid, self.userid)
        self.container.unlike("update", self.statusid, self.userid)
        self.assertIterEqual(self.container.get_likes("content", self.userid),
                             [])
        self.assertIterEqual(self.container.get_likes("update", self.userid),
                             [])
Exemple #31
0
 def setUp(self):
     # self.portal = self.layer['portal']
     self.userid = '*****@*****.**'
     self.statusid = str(long(time.time() * 1e6))
     self.container = NetworkGraph()
Exemple #32
0
class TestLikeUpdate(unittest.TestCase):
    def setUp(self):
        # self.portal = self.layer['portal']
        self.userid = '*****@*****.**'
        self.statusid = str(long(time.time() * 1e6))
        self.container = NetworkGraph()

    def _like_update(self):
        self.container.like("update", self.statusid, self.userid)

    def test_like_update(self):
        self._like_update()

        liked_items = self.container.get_likes("update", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.statusid])

        liking_users = self.container.get_likers("update", self.statusid)
        self.assertEqual(sorted(list(liking_users)), [self.userid])

    def test_update_liked_by_two_users(self):
        self._like_update()
        self.container.like("update", self.statusid, '*****@*****.**')

        liked_items = self.container.get_likes("update", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.statusid])
        liked_items = self.container.get_likes("update", '*****@*****.**')
        self.assertEqual(sorted(list(liked_items)), [self.statusid])

        liking_users = self.container.get_likers("update", self.statusid)
        self.assertEqual(sorted(list(liking_users)),
                         ['*****@*****.**', self.userid])

    def test_unlike_update(self):
        self._like_update()

        self.container.unlike("update", self.statusid, self.userid)

        liked_items = self.container.get_likes("update", self.userid)
        self.assertEqual(sorted(list(liked_items)), [])

        liking_users = self.container.get_likers("update", self.statusid)
        self.assertEqual(sorted(list(liking_users)), [])

    def test_get_update_likes(self):
        self._like_update()
        self.assertEqual(
            sorted(list(self.container.get_likes("update", self.userid))),
            [self.statusid])

    def test_get_update_likes_empty(self):
        self.assertEqual(self.container.get_likes("update", self.userid), [])

    def test_is_update_liked(self):
        self.assertFalse(
            self.container.is_liked("update", self.statusid, self.userid))

        self._like_update()

        self.assertTrue(
            self.container.is_liked("update", self.statusid, self.userid))

    def test_get_update_likers(self):
        self._like_update()
        self.assertIn(self.userid,
                      self.container.get_likers("update", self.statusid))

    def test_get_update_likers_empty(self):
        self.assertEqual(self.container.get_likers("update", self.statusid),
                         [])
Exemple #33
0
 def test_user_tag_untag(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.untag('user', 'bernard', 'alex', 'leadership')
     self.assertEqual(['change management'],
                      list(g.get_tags('user', 'bernard', 'alex')))
 def test_content_follow_unfollow_following(self):
     g = NetworkGraph()
     g.follow('content', 'doc1', 'alex')
     g.follow('content', 'doc2', 'alex')
     g.unfollow('content', 'doc1', 'alex')
     self.assertEqual(['doc2'], list(g.get_following('content', 'alex')))
Exemple #35
0
class TestLikeContent(unittest.TestCase):
    def setUp(self):
        # self.portal = self.layer['portal']
        self.userid = '*****@*****.**'
        self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
        self.container = NetworkGraph()

    def _like_content(self):
        self.container.like(
            "content",
            self.object_uuid,
            self.userid,
        )

    def test_like_content(self):
        self._like_content()

        liked_items = self.container.get_likes("content", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])

        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(sorted(list(liking_users)), [self.userid])

    def test_like_content_utf8(self):
        userid = u'M♥rÿ@test.org'
        self.container.like(
            "content",
            self.object_uuid,
            userid,
        )
        liked_items = self.container.get_likes("content", userid)
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])
        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(sorted(list(liking_users)), [userid])

    def test_utf8_args(self):
        """BTree keys MUST be of type unicode. Check that the implementation
        enforces this."""
        g = NetworkGraph()
        self.assertRaises(AttributeError, g.like, 'content', 1, '2')
        self.assertRaises(AttributeError, g.like, 'content', '1', 2)
        self.assertRaises(AttributeError, g.unlike, 'content', 1, '2')
        self.assertRaises(AttributeError, g.unlike, 'content', '1', 2)
        self.assertRaises(AttributeError, g.get_likes, 'content', 1)
        self.assertRaises(AttributeError, g.get_likers, 'content', 1)
        self.assertRaises(AttributeError, g.is_liked, 'content', 1, 2)

    def test_content_liked_by_two_users(self):
        self._like_content()
        self.container.like(
            "content",
            self.object_uuid,
            '*****@*****.**',
        )

        liked_items = self.container.get_likes("content", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])
        liked_items = self.container.get_likes("content", '*****@*****.**')
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])

        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(sorted(list(liking_users)),
                         ['*****@*****.**', self.userid])

    def test_unlike_content(self):
        self._like_content()
        self.container.unlike("content", self.object_uuid, self.userid)

        liked_items = self.container.get_likes("content", self.userid)
        self.assertEqual(sorted(list(liked_items)), [])

        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(sorted(list(liking_users)), [])

    def test_get_content_likes(self):
        self._like_content()
        self.assertEqual(
            sorted(list(self.container.get_likes("content", self.userid))),
            [self.object_uuid])

    def test_get_content_likes_empty(self):
        self.assertEqual(self.container.get_likes("content", self.userid), [])

    def test_is_content_liked(self):
        self.assertFalse(
            self.container.is_liked("content", self.object_uuid, self.userid))

        self._like_content()

        self.assertTrue(
            self.container.is_liked("content", self.object_uuid, self.userid))

    def test_get_content_likers(self):
        self._like_content()
        self.assertIn(self.userid,
                      self.container.get_likers("content", self.object_uuid))

    def test_get_content_likers_empty(self):
        self.assertEqual(
            self.container.get_likers("content", self.object_uuid), [])
Exemple #36
0
 def test_content_follow_unfollow_following(self):
     g = NetworkGraph()
     g.follow('content', 'doc1', 'alex')
     g.follow('content', 'doc2', 'alex')
     g.unfollow('content', 'doc1', 'alex')
     self.assertEqual(['doc2'], list(g.get_following('content', 'alex')))
 def test_user_follow_utf8(self):
     g = NetworkGraph()
     g.follow('user', 'bernard ☀', 'alex ☃')  # alex follows bernard
     self.assertEqual(
         [u'bernard ☀'], list(g.get_following('user', u'alex ☃')))
 def test_follow_followers(self):
     g = NetworkGraph()
     g.set_follow('alex', 'bernard')
     g.set_follow('caroline', 'bernard')
     self.assertEqual(['alex', 'caroline'],
                      sorted(list(g.get_followers('bernard'))))
Exemple #39
0
class TestBookmarkContent(unittest.TestCase):
    def setUp(self):
        self.userid = 'testperson'
        self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
        self.container = NetworkGraph()

    def _bookmark_content(self):
        self.container.bookmark("content", self.object_uuid, self.userid)

    def test_bookmark_content(self):
        self._bookmark_content()

        items = self.container.get_bookmarks("content", self.userid)
        self.assertListEqual(list(items), [self.object_uuid])

        users = self.container.get_bookmarkers("content", self.object_uuid)
        self.assertListEqual(sorted(list(users)), [self.userid])

    def test_bookmark_content_utf8(self):
        userid = u'M♥rÿ@test.org'
        self.container.bookmark(
            "content",
            self.object_uuid,
            userid,
        )
        items = self.container.get_bookmarks("content", userid)
        self.assertListEqual(sorted(list(items)), [self.object_uuid])
        users = self.container.get_bookmarkers("content", self.object_uuid)
        self.assertListEqual(sorted(list(users)), [userid])

    def test_utf8_args(self):
        """BTree keys MUST be of type unicode. Check that the implementation
        enforces this."""
        g = NetworkGraph()
        with self.assertRaises(AttributeError):
            g.bookmark('content', 1, '2')
        with self.assertRaises(AttributeError):
            g.bookmark('content', '1', 2)
        with self.assertRaises(AttributeError):
            g.unbookmark('content', 1, '2')
        with self.assertRaises(AttributeError):
            g.unbookmark('content', '1', 2)
        with self.assertRaises(AttributeError):
            g.get_bookmarks('content', 1)
        with self.assertRaises(AttributeError):
            g.get_bookmarkers('content', 1)
        with self.assertRaises(AttributeError):
            g.is_bookmarked('content', 1, 2)

    def test_content_bookmarked_by_two_users(self):
        self._bookmark_content()
        self.container.bookmark("content", self.object_uuid, '*****@*****.**')

        items = self.container.get_bookmarks("content", self.userid)
        self.assertListEqual(sorted(list(items)), [self.object_uuid])
        items = self.container.get_bookmarks("content", '*****@*****.**')
        self.assertListEqual(sorted(list(items)), [self.object_uuid])

        users = self.container.get_bookmarkers("content", self.object_uuid)
        self.assertListEqual(sorted(list(users)),
                             ['*****@*****.**', self.userid])

    def test_unbookmark_content(self):
        self._bookmark_content()
        self.container.unbookmark("content", self.object_uuid, self.userid)

        items = self.container.get_bookmarks("content", self.userid)
        self.assertListEqual(sorted(list(items)), [])

        users = self.container.get_bookmarkers("content", self.object_uuid)
        self.assertListEqual(sorted(list(users)), [])

    def test_get_content_bookmarks(self):
        self._bookmark_content()
        self.assertEqual(
            sorted(list(self.container.get_bookmarks("content", self.userid))),
            [self.object_uuid])

    def test_get_content_bookmarks_empty(self):
        self.assertListEqual(
            self.container.get_bookmarks("content", self.userid), [])

    def test_is_content_bookmarked(self):
        self.assertFalse(
            self.container.is_bookmarked("content", self.object_uuid,
                                         self.userid))
        self._bookmark_content()
        self.assertTrue(
            self.container.is_bookmarked("content", self.object_uuid,
                                         self.userid))

    def test_get_content_bookmarkers(self):
        self._bookmark_content()
        self.assertIn(
            self.userid,
            self.container.get_bookmarkers("content", self.object_uuid))

    def test_get_content_bookmarkers_empty(self):
        self.assertEqual(
            self.container.get_bookmarkers("content", self.object_uuid), [])
Exemple #40
0
 def setUp(self):
     self.userid = 'testperson'
     self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
     self.container = NetworkGraph()
 def test_follow_unfollow_following(self):
     g = NetworkGraph()
     g.set_follow('alex', 'bernard')
     g.set_follow('alex', 'caroline')
     g.set_unfollow('alex', 'bernard')
     self.assertEqual(['caroline'], list(g.get_following('alex')))
 def test_tag_follow_unfollow_following(self):
     g = NetworkGraph()
     g.follow('tag', 'foo', 'alex')
     g.follow('tag', 'bar', 'alex')
     g.unfollow('tag', 'foo', 'alex')
     self.assertEqual(['bar'], list(g.get_following('tag', 'alex')))
Exemple #43
0
class TestLikeMixed(unittest.TestCase):

    def setUp(self):
        self.userid = '*****@*****.**'
        self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
        self.statusid = str(long(time.time() * 1e6))
        self.container = NetworkGraph()

    def assertIterEqual(self, iterA, iterB):
        return self.assertEqual([x for x in iterA],
                                [x for x in iterB])

    def test_like_mixed(self):
        self.assertIterEqual(self.container.get_likes(
            "content", self.userid), [])
        self.assertIterEqual(self.container.get_likes(
            "update", self.userid), [])

        self.container.like("content", self.object_uuid, self.userid)
        self.container.like("update", self.statusid, self.userid)
        self.assertIterEqual(self.container.get_likes(
            "content", self.userid), [self.object_uuid])
        self.assertIterEqual(self.container.get_likes(
            "update", self.userid), [self.statusid])

        self.container.unlike("content", self.object_uuid, self.userid)
        self.container.unlike("update", self.statusid, self.userid)
        self.assertIterEqual(self.container.get_likes(
            "content", self.userid), [])
        self.assertIterEqual(self.container.get_likes(
            "update", self.userid), [])
Exemple #44
0
 def setUp(self):
     self.userid = '*****@*****.**'
     self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
     self.statusid = str(long(time.time() * 1e6))
     self.container = NetworkGraph()
Exemple #45
0
 def setUp(self):
     # self.portal = self.layer['portal']
     self.userid = '*****@*****.**'
     self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
     self.container = NetworkGraph()
Exemple #46
0
 def setUp(self):
     # self.portal = self.layer['portal']
     self.userid = '*****@*****.**'
     self.statusid = str(long(time.time() * 1e6))
     self.container = NetworkGraph()
Exemple #47
0
 def test_tag_follow_unfollow_following(self):
     g = NetworkGraph()
     g.follow('tag', 'foo', 'alex')
     g.follow('tag', 'bar', 'alex')
     g.unfollow('tag', 'foo', 'alex')
     self.assertEqual(['bar'], list(g.get_following('tag', 'alex')))
Exemple #48
0
 def test_user_tag_utf8(self):
     g = NetworkGraph()
     # alex tags bernard with 'leadership'
     g.tag('user', u'bernard ♥', u'alex ☀', u'leadership ☃')
     self.assertEqual([u'leadership ☃'],
                      list(g.get_tags('user', u'bernard ♥', u'alex ☀')))
Exemple #49
0
 def test_get_taggers_notag(self):
     g = NetworkGraph()
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     g.tag('user', 'caroline', 'alex', 'leadership', 'negotiations')
     g.tag('content', 'doc1', 'alex', 'negotiations')
     # an extra tag here
     g.tag('user', 'bernard', 'caroline', 'negotiations')
     taggers = g.unpack(g.get_taggers('user', 'bernard'))
     self.assertEqual(taggers,
                      {'change management': ['alex'],
                       'leadership': ['alex'],
                       'negotiations': ['caroline']})
Exemple #50
0
class TestLikeUpdate(unittest.TestCase):

    def setUp(self):
        # self.portal = self.layer['portal']
        self.userid = '*****@*****.**'
        self.statusid = str(long(time.time() * 1e6))
        self.container = NetworkGraph()

    def _like_update(self):
        self.container.like("update", self.statusid, self.userid)

    def test_like_update(self):
        self._like_update()

        liked_items = self.container.get_likes("update", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.statusid])

        liking_users = self.container.get_likers("update", self.statusid)
        self.assertEqual(sorted(list(liking_users)), [self.userid])

    def test_update_liked_by_two_users(self):
        self._like_update()
        self.container.like("update", self.statusid, '*****@*****.**')

        liked_items = self.container.get_likes("update", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.statusid])
        liked_items = self.container.get_likes("update", '*****@*****.**')
        self.assertEqual(sorted(list(liked_items)), [self.statusid])

        liking_users = self.container.get_likers("update", self.statusid)
        self.assertEqual(
            sorted(list(liking_users)),
            ['*****@*****.**', self.userid])

    def test_unlike_update(self):
        self._like_update()

        self.container.unlike("update", self.statusid, self.userid)

        liked_items = self.container.get_likes("update", self.userid)
        self.assertEqual(sorted(list(liked_items)), [])

        liking_users = self.container.get_likers("update", self.statusid)
        self.assertEqual(sorted(list(liking_users)), [])

    def test_get_update_likes(self):
        self._like_update()
        self.assertEqual(
            sorted(list(self.container.get_likes("update", self.userid))),
            [self.statusid])

    def test_get_update_likes_empty(self):
        self.assertEqual(self.container.get_likes("update", self.userid), [])

    def test_is_update_liked(self):
        self.assertFalse(
            self.container.is_liked("update", self.statusid, self.userid))

        self._like_update()

        self.assertTrue(
            self.container.is_liked("update", self.statusid, self.userid))

    def test_get_update_likers(self):
        self._like_update()
        self.assertIn(
            self.userid,
            self.container.get_likers("update", self.statusid)
        )

    def test_get_update_likers_empty(self):
        self.assertEqual(
            self.container.get_likers("update", self.statusid), []
        )
Exemple #51
0
class TestLikeContent(unittest.TestCase):

    def setUp(self):
        # self.portal = self.layer['portal']
        self.userid = '*****@*****.**'
        self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
        self.container = NetworkGraph()

    def _like_content(self):
        self.container.like("content", self.object_uuid, self.userid, )

    def test_like_content(self):
        self._like_content()

        liked_items = self.container.get_likes("content", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])

        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(sorted(list(liking_users)), [self.userid])

    def test_like_content_utf8(self):
        userid = u'M♥rÿ@test.org'
        self.container.like("content", self.object_uuid, userid, )
        liked_items = self.container.get_likes("content", userid)
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])
        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(sorted(list(liking_users)), [userid])

    def test_utf8_args(self):
        """BTree keys MUST be of type unicode. Check that the implementation
        enforces this."""
        g = NetworkGraph()
        self.assertRaises(AttributeError, g.like, 'content', 1, '2')
        self.assertRaises(AttributeError, g.like, 'content', '1', 2)
        self.assertRaises(AttributeError, g.unlike, 'content', 1, '2')
        self.assertRaises(AttributeError, g.unlike, 'content', '1', 2)
        self.assertRaises(AttributeError, g.get_likes, 'content', 1)
        self.assertRaises(AttributeError, g.get_likers, 'content', 1)
        self.assertRaises(AttributeError, g.is_liked, 'content', 1, 2)

    def test_content_liked_by_two_users(self):
        self._like_content()
        self.container.like("content", self.object_uuid, '*****@*****.**', )

        liked_items = self.container.get_likes("content", self.userid)
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])
        liked_items = self.container.get_likes("content", '*****@*****.**')
        self.assertEqual(sorted(list(liked_items)), [self.object_uuid])

        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(
            sorted(list(liking_users)),
            ['*****@*****.**', self.userid])

    def test_unlike_content(self):
        self._like_content()
        self.container.unlike("content", self.object_uuid, self.userid)

        liked_items = self.container.get_likes("content", self.userid)
        self.assertEqual(sorted(list(liked_items)), [])

        liking_users = self.container.get_likers("content", self.object_uuid)
        self.assertEqual(sorted(list(liking_users)), [])

    def test_get_content_likes(self):
        self._like_content()
        self.assertEqual(
            sorted(list(self.container.get_likes("content", self.userid))),
            [self.object_uuid])

    def test_get_content_likes_empty(self):
        self.assertEqual(self.container.get_likes("content", self.userid), [])

    def test_is_content_liked(self):
        self.assertFalse(
            self.container.is_liked("content", self.object_uuid, self.userid))

        self._like_content()

        self.assertTrue(
            self.container.is_liked("content", self.object_uuid, self.userid))

    def test_get_content_likers(self):
        self._like_content()
        self.assertIn(
            self.userid,
            self.container.get_likers("content", self.object_uuid)
        )

    def test_get_content_likers_empty(self):
        self.assertEqual(
            self.container.get_likers("content", self.object_uuid), []
        )
 def test_user_follow(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')  # alex follows bernard
     self.assertEqual(['bernard'], list(g.get_following('user', 'alex')))
Exemple #53
0
 def test_user_tag(self):
     g = NetworkGraph()
     # alex tags bernard with 'leadership'
     g.tag('user', 'bernard', 'alex', 'leadership')
     self.assertEqual(['leadership'],
                      list(g.get_tags('user', 'bernard', 'alex')))
Exemple #54
0
 def setUp(self):
     # self.portal = self.layer['portal']
     self.userid = '*****@*****.**'
     self.object_uuid = '827e65bd826a89790eba679e0c9ff864'
     self.container = NetworkGraph()
Exemple #55
0
 def test_user_tag_multi(self):
     g = NetworkGraph()
     # alex tags bernard with 'leadership' and 'change management'
     g.tag('user', 'bernard', 'alex', 'leadership', 'change management')
     self.assertEqual(['change management', 'leadership'],
                      sorted(list(g.get_tags('user', 'bernard', 'alex'))))
Exemple #56
0
 def test_user_follow(self):
     g = NetworkGraph()
     g.follow('user', 'bernard', 'alex')  # alex follows bernard
     self.assertEqual(['bernard'], list(g.get_following('user', 'alex')))
Exemple #57
0
 def test_user_follow_utf8(self):
     g = NetworkGraph()
     g.follow('user', 'bernard ☀', 'alex ☃')  # alex follows bernard
     self.assertEqual([u'bernard ☀'],
                      list(g.get_following('user', u'alex ☃')))
 def test_follow(self):
     g = NetworkGraph()
     g.set_follow('alex', 'bernard')
     self.assertEqual(['bernard'], list(g.get_following('alex')))