def create_neo4j_node(sender, instance, created, **kwargs): if created: user = instance.user neo = NeoFourJ() if not neo.get_person(user): neo.create_person(neo.person(user)) logger.info('Create Neo4j node with user: {}'.format(user.id))
class FriendUtilsTestCase(TestCase): def setUp(self): self.user = FacebookCustomUser.objects.create_user(username='******', password='******', first_name='Ani', last_name='Lendel') self.user1 = FacebookCustomUser.objects.create_user(username='******', password='******', first_name='Sneja', last_name='Yerson') self.user2 = FacebookCustomUser.objects.create_user(username='******', password='******', first_name='Alena', last_name='Winner') self.neo = NeoFourJ() self.neo.graph.delete_all() def test_create_person(self): self.neo.create_person(self.neo.person(self.user)) neo_user = self.neo.get_person(self.user) self.assertEqual(neo_user.properties['user_id'], self.user.id) self.assertEqual( neo_user.properties['name'], u'{} {}'.format(self.user.first_name, self.user.last_name)) def test_add_to_friend(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) friends = self.neo.get_my_friends(self.user.id) self.assertEqual(friends.one['node_name'], n2.properties['name']) def test_passes_friend(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) self.neo.pass_friend(n1, n2) friends = self.neo.get_my_passes(self.user.id) self.assertEqual(friends.one['node_name'], n2.properties['name']) def test_check_friends(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) friends = self.neo.check_friendship(self.user.id, self.user1.id) self.assertEqual(friends.one['n.name'], n2.properties['name']) def test_get_or_create(self): self.neo.create_person(self.neo.person(self.user)) p, c = self.neo.get_or_create_node(self.user) self.assertFalse(c) self.assertEqual(p['user_id'], self.user.id) def test_get_my_friends_ids(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) n3 = self.neo.create_person(self.neo.person(self.user2)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) self.neo.add_to_friends(n2, n3) self.neo.add_to_friends(n3, n2) self.neo.add_to_friends(n1, n3) self.neo.add_to_friends(n3, n1) user_ids = self.neo.get_my_friends_ids(self.user.id) self.assertEqual(sorted(user_ids), sorted([self.user1.id, self.user2.id])) def test_get_my_friends_icontains_name(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) n3 = self.neo.create_person(self.neo.person(self.user2)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) self.neo.add_to_friends(n2, n3) self.neo.add_to_friends(n3, n2) self.neo.add_to_friends(n1, n3) self.neo.add_to_friends(n3, n1) user_id = self.neo.get_my_friends_icontains_name(self.user.id, 'sne') self.assertIn(self.user1.id, user_id) user_id = self.neo.get_my_friends_icontains_name(self.user.id, 'ens') self.assertEqual(user_id, list()) user_id = self.neo.get_my_friends_icontains_name(self.user.id, '') self.assertEqual(user_id, list()) user_id = self.neo.get_my_friends_icontains_name(self.user.id, 'Alena') self.assertIn(self.user2.id, user_id) def test_remove_from_friends(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) self.neo.remove_from_friends(self.user.id, self.user1.id) ids = self.neo.get_my_friends_ids(self.user.id) self.assertEqual(ids, []) def test_check_friendsip(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) self.neo.add_to_friends(n1, n2) self.assertTrue( self.neo.check_friendship_rel(self.user.id, self.user1.id)) def test_check_friendship_negative(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) self.neo.add_to_friends(n2, n1) self.assertFalse( self.neo.check_friendship_rel(self.user.id, self.user1.id)) def test_get_new_friends(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) n3 = self.neo.create_person(self.neo.person(self.user2)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) self.neo.add_to_friends(n1, n3) self.neo.add_to_friends(n3, n1) self.neo.add_to_friends(n3, n2) self.neo.add_to_friends(n2, n3) count = self.neo.get_new_friends_count(n1['user_id']) self.assertEqual(count, 2) def test_update_rel_seen(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) self.assertEqual(self.neo.get_new_friends_count(n1['user_id']), 1) self.neo.update_rel_seen(n1['user_id'], n2['user_id']) self.assertEqual(self.neo.get_new_friends_count(n1['user_id']), 0) self.assertEqual(self.neo.get_new_friends_count(n2['user_id']), 1) def test_mutual_friends(self): n1 = self.neo.create_person(self.neo.person(self.user)) n2 = self.neo.create_person(self.neo.person(self.user1)) n3 = self.neo.create_person(self.neo.person(self.user2)) self.neo.add_to_friends(n1, n2) self.neo.add_to_friends(n2, n1) self.neo.add_to_friends(n1, n3) self.neo.add_to_friends(n3, n1) self.neo.add_to_friends(n3, n2) self.neo.add_to_friends(n2, n3) mutual_friends = self.neo.get_mutual_friends(self.user.id, self.user2.id) self.assertEqual(mutual_friends, [self.user1.id])