Example #1
0
def test_update():
    user = User()
    user.login('test_user_api_update','test_pass')
    api_key = user.user.auth_token

    project = Project()
    project.find('test api update')
    entry_id = project.find_entry('test api entry')
    print user.get_project()
    print project.get_id()
    mongo = MongoModel(project='test_api_update',collection='test_api_entry')
    data = mongo.query({'a':1})
    print data
    id = str(data['_id'])
    updated = {'a':2}
    url = '/api/db/%s/%s/%s/?api_key=%s' % (project.project.id,entry_id,id,api_key) 
    
    client = webapp.app.test_client()
    response = client.put(url, data = json.dumps(updated),
            content_type='application/json')
    print response.data
    status = json.loads(response.data)
    
    assert status['status']
  
    updated_data = mongo.query({'_id':objectid.ObjectId(id)})
    assert updated_data['a'] == 2
Example #2
0
def test_insert_remove():
    model = MongoModel()
    model.insert({'a':1,'b':2})
    data = model.query({'a':1})
    assert data['b'] == 2
    model.delete({'a':1})
    data = model.query({'a':1})
    assert not data
Example #3
0
def test_update_add():
    model = MongoModel()
    model.update({'a':1},{'c':3})
    data = model.query({'a':1})
    print data
    assert 'c' in data
    assert data['c'] == 3
Example #4
0
def test_get_multiple():
    model = MongoModel()
    data = model.query({'type':'test'},fetch_all=True)
    
    assert data[0]['a'] == 1
    assert data[1]['b'] == 2
    assert data[2]['c'] == 3
Example #5
0
def test_create_user():
    user = model.User()
    test_username = '******'
    test_password = '******'
    test_email = '*****@*****.**'
    
    user.create(test_username,test_password,test_email)

    passwd = user.user.password

    assert user.user.username == test_username

    assert bcrypt.hashpw(test_password,passwd) == passwd
    
    assert user.user.email == test_email
    
    auth_token = hashlib.sha224('%s%s' % (test_username,test_password))
    assert user.user.auth_token == auth_token.hexdigest()
    assert user.get_auth_token() == auth_token.hexdigest()
    
    db = MongoModel(project='internal',collection='user')
    
    test_result = db.query({'username':test_username}) 
    
    assert test_result['username'] == test_username
    assert test_result['email'] == test_email
    
    assert bcrypt.hashpw(test_password,test_result['password']) == test_result['password'] 
    assert test_result['auth_token'] == auth_token.hexdigest()

    db.delete({'username':test_username})
Example #6
0
def test_project_update():
    project = Project()
    project.find('test project update')
    project.project.description = 'project updated'
    project.save()
    db = MongoModel(project='internal',collection='project')
    temp = db.query({'name':'test project update'})
    assert temp['description'] == 'project updated'    
Example #7
0
def test_update_user_email():
    user = model.User()
    test_user = user.login('test_user','test_password')
    
    test_user.update(email='*****@*****.**')
    assert test_user.user.email == '*****@*****.**'

    db = MongoModel(project='internal',collection='user')
    
    test_result = db.query({'username':'******'}) 
    
    assert test_result['email'] == '*****@*****.**'
Example #8
0
def test_project_entries():
    project = Project()
    project.find('test project entries')
    # add_entries now should have a description and name file
    # there should be a short name field, for field name
    # We should have a source
    entry_id = project.add_entry('test entries','test data','test_entries','test_entries')
    
    db = MongoModel(project='internal',collection='project')
    temp = db.query({'name':'test project entries'})
    
    assert entry_id in temp['stats'] 
Example #9
0
def test_delete():
    user = User()
    user.login('test_user','test_pass')
    api_key = user.user.auth_token
    mongo = MongoModel(project='scraped',collection='entry')
    client = webapp.app.test_client()

    mongo.insert({'a':1})
    
    data = mongo.query({'a':1})
    id = str(data['_id'])
    project = Project()
    project.find('scraped')
    entry_id = project.find_entry('entry')
    url = '/api/db/%s/%s/%s/?api_key=%s' % (project.project.id,entry_id,id,api_key) 
    response = client.delete(url)

    status = json.loads(response.data)
    assert status['status']
    
    check = mongo.query({'_id':objectid.ObjectId(id)})
    assert not check
Example #10
0
def test_project_create():
    project = Project()
    test_project_name = 'test project db'
    test_project_desc = 'test_project_desc'
    project.create(test_project_name,test_project_desc)
    assert project.project.name == test_project_name
    assert project.project.description == test_project_desc
    assert project.project.entries == []
    db = MongoModel(project='internal',collection='project')
    test_data = db.query({'name':test_project_name})
    assert test_data['name'] == test_project_name
    assert test_data['description'] == test_project_desc
    db.delete({'name':test_project_name})
Example #11
0
def test_update_user_password():
    user = model.User()
    test_user = user.login('test_user','test_password')
    test_user.update(password='******')
    auth_token = hashlib.sha224('%s%s' % ('test_user','test_pass'))
    assert bcrypt.hashpw('test_pass',test_user.user.password) == test_user.user.password
    assert test_user.user.auth_token == auth_token.hexdigest()
    
    db = MongoModel(project='internal',collection='user')
    
    test_result = db.query({'username':'******'}) 
    
    assert bcrypt.hashpw('test_pass',test_result['password']) == test_result['password'] 
    assert test_result['auth_token'] == auth_token.hexdigest()

    test_user = user.login('test_user','test_pass')
    assert user.is_authenticated()
Example #12
0
def test_project_delete():
    # login user get token
    user = User()
    user.login('test_user_delete_api_project','test_pass')
    
    api_key = user.user.auth_token
    print api_key
    project = Project()
    project.find('project 1')
    project_id = project.get_id()
    # do a delete
    test_client = webapp.app.test_client()
    url = '/api/project/%s/?api_key=%s' % (project.project.id,api_key)
    result = test_client.delete(url)
    status = json.loads(result.data)
    # now check user don't exist
    project = Project()
    model = MongoModel(project=project.project_,collection=project.collection_)
    data = model.query({'name':'project 1'})
    assert not data

    test_user = User()
    test_user.login('test_user_delete','test_pass')
    assert project_id not in test_user.user.project
Example #13
0
def test_update():
    model = MongoModel()
    model.update({'a':1},{'b':3})
    data = model.query({'a':1})
    assert data['b'] == 3
Example #14
0
def test_get_single():
    model = MongoModel()
    data = model.query({'a':1})
    assert data['a'] == 1