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'))
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_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'))))
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'))
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'))
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)
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'))
def test_get_tagged_nomatch(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', 'bernard', 'leadership'))) self.assertEqual(tagged, [])
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'])
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_unpack_treeset(self): struct = OOBTree.OOTreeSet() struct.insert('foo') struct.insert('bar') g = NetworkGraph() flat = g.unpack(struct) self.assertEqual(flat, ['bar', 'foo'])
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']})
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'))
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)
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)
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_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'] })
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_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()), ())
def setUp(self): self.userid = 'testperson' self.object_uuid = '827e65bd826a89790eba679e0c9ff864' self.container = NetworkGraph()
def setUp(self): self.userid = '*****@*****.**' self.object_uuid = '827e65bd826a89790eba679e0c9ff864' self.statusid = str(long(time.time() * 1e6)) self.container = NetworkGraph()
def setUp(self): # self.portal = self.layer['portal'] self.userid = '*****@*****.**' self.statusid = str(long(time.time() * 1e6)) self.container = NetworkGraph()
def test_bookmark_sets_timestamp(self): g = NetworkGraph() g.bookmark('content', 'fake_uuid') self.assertTrue(isinstance(g.bookmarked_on('fake_uuid'), datetime))
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')))
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_unbookmark_removes_timestamp(self): g = NetworkGraph() g.bookmark('content', 'fake_uuid') g.unbookmark('content', 'fake_uuid') with self.assertRaises(KeyError): g.bookmarked_on('fake_uuid')
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 setUp(self): # self.portal = self.layer['portal'] self.userid = '*****@*****.**' self.object_uuid = '827e65bd826a89790eba679e0c9ff864' self.container = NetworkGraph()
def test_user_follow(self): g = NetworkGraph() g.follow('user', 'bernard', 'alex') # alex follows bernard self.assertEqual(['bernard'], list(g.get_following('user', 'alex')))