Example #1
0
    def test_clear(self):
        fdb = FriendlyDB(data_directory=self.data_dir)
        daniel = fdb['daniel']

        self.assertFalse(os.path.exists(daniel.full_path))
        daniel.setup()
        self.assertTrue(os.path.exists(daniel.full_path))

        self.assertTrue(fdb.clear())
        self.assertFalse(os.path.exists(daniel.full_path))
Example #2
0
    def test_clear(self):
        fdb = FriendlyDB(host=self.host, port=self.port, db=self.db)
        daniel = fdb['daniel']
        daniel_key = daniel.generate_key(daniel.username, 'following')

        self.assertFalse(self.conn.zrange(daniel_key, 0, -1))
        daniel.follow('alice')
        self.assertTrue(self.conn.zrange(daniel_key, 0, -1))

        self.assertTrue(fdb.clear())
        self.assertFalse(self.conn.zrange(daniel_key, 0, -1))
Example #3
0
    def test_clear(self):
        fdb = FriendlyDB(host=self.host, port=self.port, db=self.db)
        daniel = fdb['daniel']
        daniel_key = daniel.generate_key(daniel.username, 'following')

        self.assertFalse(self.conn.zrange(daniel_key, 0, -1))
        daniel.follow('alice')
        self.assertTrue(self.conn.zrange(daniel_key, 0, -1))

        self.assertTrue(fdb.clear())
        self.assertFalse(self.conn.zrange(daniel_key, 0, -1))
Example #4
0
    def test_delete_user(self):
        fdb = FriendlyDB(host=self.host, port=self.port, db=self.db)
        daniel = fdb['daniel']
        alice = fdb['alice']

        daniel.follow('alice')
        alice.follow('daniel')
        alice.follow('bob')

        self.assertEqual(daniel.following(), ['alice'])
        self.assertEqual(alice.following(), ['daniel', 'bob'])
        self.assertEqual(alice.followers(), ['daniel'])

        fdb.delete_user('alice')

        self.assertEqual(daniel.following(), [])
Example #5
0
    def test_delete_user(self):
        fdb = FriendlyDB(host=self.host, port=self.port, db=self.db)
        daniel = fdb['daniel']
        alice = fdb['alice']

        daniel.follow('alice')
        alice.follow('daniel')
        alice.follow('bob')

        self.assertEqual(daniel.following(), ['alice'])
        self.assertEqual(alice.following(), ['daniel', 'bob'])
        self.assertEqual(alice.followers(), ['daniel'])

        fdb.delete_user('alice')

        self.assertEqual(daniel.following(), [])
Example #6
0
    def test_delete_user(self):
        fdb = FriendlyDB(data_directory=self.data_dir)
        daniel = fdb['daniel']
        alice = fdb['alice']
        bob = fdb['bob']

        daniel.follow('alice')
        alice.follow('daniel')
        alice.follow('bob')

        self.assertEqual(daniel.following(), ['alice'])
        self.assertEqual(alice.following(), ['daniel', 'bob'])
        self.assertEqual(alice.followers(), ['daniel'])

        fdb.delete_user('alice')

        self.assertEqual(daniel.following(), [])
Example #7
0
 def test_init(self):
     fdb = FriendlyDB(host=self.host, port=self.port, db=self.db)
     self.assertEqual(fdb.host, self.host)
     self.assertEqual(fdb.port, self.port)
     self.assertEqual(fdb.db, self.db)
     self.assertEqual(fdb.user_klass, FriendlyUser)
     self.assertEqual(fdb.separator, None)
     self.assertTrue(fdb.is_setup)
Example #8
0
def setup(options):
    # Feel gross about this but just sucking it up for now.
    global fdb

    if not options.data_directory:
        print("The -d flag is required!")
        sys.exit()

    fdb = FriendlyDB(options.data_directory, options.hash_width)
Example #9
0
    def test_init(self):
        self.assertFalse(os.path.exists(self.data_dir))

        fdb = FriendlyDB(data_directory=self.data_dir)
        self.assertEqual(fdb.data_directory, self.data_dir)
        self.assertEqual(fdb.hash_width, HASH_WIDTH)
        self.assertEqual(fdb.separator, SEPARATOR)
        self.assertEqual(fdb.user_klass, FriendlyUser)
        self.assertTrue(fdb.is_setup)
        self.assertTrue(os.path.exists(self.data_dir))
        self.assertTrue(os.path.exists(os.path.join(self.data_dir, 'config.json')))
Example #10
0
def setup(options):
    # Feel gross about this but just sucking it up for now.
    global fdb
    fdb = FriendlyDB(host=options.redis_host,
                     port=options.redis_port,
                     db=options.redis_db)
Example #11
0
 def test_get_user(self):
     fdb = FriendlyDB(data_directory=self.data_dir)
     daniel = fdb['daniel']
     self.assertTrue(isinstance(daniel, FriendlyUser))
     self.assertEqual(daniel.username, 'daniel')
Example #12
0
 def test_get_user(self):
     fdb = FriendlyDB(host=self.host, port=self.port, db=self.db)
     daniel = fdb['daniel']
     self.assertTrue(isinstance(daniel, FriendlyUser))
     self.assertEqual(daniel.username, 'daniel')
Example #13
0

# Config.
all_chars = 'abcdefghijklmnopqrstuvwxyz0123456789'
host = 'localhost'
port = 6379
db = 15
user_count = 10000
relation_count = 1000000
followers_check = 1000


# Go go go!
chars = [char for char in all_chars]
users = []
fdb = FriendlyDB(host=host, port=port, db=db)


def time_taken(func):
    start = time.time()
    func()
    return time.time() - start


def generate_users():
    # Generate enough usernames to matter.
    for i in range(0, user_count):
        users.append(''.join(random.sample(chars, random.randint(6, 12))))


def build_relations():
Example #14
0
import time
from friendlydb.db import FriendlyDB


# Config.
all_chars = 'abcdefghijklmnopqrstuvwxyz0123456789'
data_dir = '/tmp/bench_friendly'
user_count = 10000
relation_count = 1000000
followers_check = 1000


# Go go go!
chars = [char for char in all_chars]
users = []
fdb = FriendlyDB(data_dir)


def time_taken(func):
    start = time.time()
    func()
    return time.time() - start


def generate_users():
    # Generate enough usernames to matter.
    for i in range(0, user_count):
        users.append(''.join(random.sample(chars, random.randint(6, 12))))


def build_relations():
Example #15
0
        self.conn.srem("%s_followers" % username, self.username)

    def following(self):
        return self.conn.smembers("%s_following" % self.username)

    def followers(self):
        return self.conn.smembers("%s_followers" % self.username)

    def is_following(self, username):
        return self.conn.sismember("%s_following" % self.username, username)

    def is_followed_by(self, username):
        return self.conn.sismember("%s_followers" % self.username, username)


fdb = FriendlyDB(data_dir, user_klass=RedisFriendlyUser)


def time_taken(func):
    start = time.time()
    func()
    return time.time() - start


def generate_users():
    # Generate enough usernames to matter.
    for i in range(0, user_count):
        users.append(''.join(random.sample(chars, random.randint(6, 12))))


def build_relations():