Пример #1
0
class Database(object):
    """
    Handle both databases.
    """
    def __init__(self):
        self.user_database = UserDatabase()
        self.site_database = SiteDatabase()

    def push(self, userid, url):
        """
        Push data to databases.
        """
        self.site_database.push(url)
        url_idx = self.site_database.ch_url_to_idx(url)
        self.user_database.push(userid, url_idx)
    def setUp(self):
        connection = pymongo.MongoClient('mongodb://localhost:27017/')
        self.database = connection.test
        self.collection = self.database.user
        self.collection.drop()
        self.user = UserDatabase()

        # monkey patch the mongodb handler to use the test database of user
        from mongodbhandler import MongoDatabaseHandler

        MongoDatabaseHandler.get_users_collection = self.get_user_collection
Пример #3
0
class BasicHandler(SessionHandler):

    __lock__ = threading.Lock()
    __database__ = UserDatabase("user.db")
    __oauth__ = FangcloudOAuth2FlowBase()

    def get_login_user(self):
        return self.get_session_obj("login_user")

    def set_login_user(self, username):
        self.set_session_obj("login_user", username)

    def user_logout(self):
        self.del_session_obj("login_user")

    def set_state(self, value):
        self.set_session_obj("state", value)

    def get_state(self):
        return self.get_session_obj("state")
class TestUser(unittest.TestCase):
    def get_user_collection(self):
        return self.collection

    def setUp(self):
        connection = pymongo.MongoClient('mongodb://localhost:27017/')
        self.database = connection.test
        self.collection = self.database.user
        self.collection.drop()
        self.user = UserDatabase()

        # monkey patch the mongodb handler to use the test database of user
        from mongodbhandler import MongoDatabaseHandler

        MongoDatabaseHandler.get_users_collection = self.get_user_collection

    def test_insert_user(self):
        """save a valid user to the database """
        user = '******'
        password = '******'

        result = self.user.save_user(user, password)

        self.assertEqual(result, True)
        # read the user from database
        doc = self.collection.find_one({'_id': user})
        self.assertEqual(doc['_id'], user)
        self.assertEqual(doc['password'], password)

        self.collection.delete_one({'_id': user})

    def test_insert_duplicateuser(self):
        """" save the user twice and that we return a false"""

        user = '******'
        password = '******'
        password2 = 'duplicatetestuserpassword2'
        self.user.save_user(user, password)

        result = self.user.save_user(user, password2)

        self.assertEqual(result, False)

        self.collection.delete_one({'_id': user})

    def test_remove_user(self):
        user = '******'
        password = '******'
        self.user.save_user(user, password)

        result = self.user.delete_user(user)

        self.assertEqual(result, True)
        doc = self.collection.find_one({'_id': user})
        self.assertEqual(doc, None)

    def test_remove_non_existing_user(self):
        user = '******'

        result = self.user.delete_user(user)

        self.assertEqual(result, False)

    def test_get_user(self):
        user = '******'
        password = '******'
        self.user.save_user(user, password)

        result = self.user.get_password(user)

        self.assertEqual(result, password)

        self.collection.delete_one({'_id': user})

    def test_get_user_non_existing(self):
        result = self.user.get_password('nonExistingUser')

        self.assertEqual(result, None)
Пример #5
0
 def __init__(self):
     self.user_database = UserDatabase()
     self.site_database = SiteDatabase()