Exemplo n.º 1
0
def test_user_settings_email():
    test_client = webapp.app.test_client()
    
    user = User()
    username = '******'
    password = '******'
    user.login(username,password)

    result = test_client.post('/login/',data={
        'username':username,
        'password':password
    },follow_redirects=True)
    result = test_client.get('/settings/',follow_redirects=True)
    assert user.user.email in result.data

    # create an update call, then check data
    # remember to reauthenticate 
    
    result = test_client.post('/settings/',data={
        'email':'*****@*****.**'
    },follow_redirects=True)

    user = User()    
    user.login(username,password)
    
    assert user.user.email == '*****@*****.**'
    db = MongoModel(project=user.project,collection=user.collection)
    db.delete({'_id':user.user.id})
Exemplo n.º 2
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
Exemplo n.º 3
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
Exemplo n.º 4
0
def test_project_create():
    # login user get token
    user = User()
    user.login('test_user','test_pass')
    api_key = user.user.auth_token 
    # do a post
    url = '/api/project/?api_key=%s' % api_key
    # now check project in user
    test_client = webapp.app.test_client()
    data = {'name':'project create','description':'project content create'}
    
    result = test_client.post(url,data=json.dumps(data),content_type='application/json')
    status = json.loads(result.data)
    assert status['status']
    project = ProjectList()
    test_user = User()
    test_user.login('test_user','test_pass')
    print test_user.user.project
    registered = False
    for i in project.all():
        if i.get_id() in test_user.get_project():
            registered = True
    assert registered, "project not in user project"
       
    exist = False
    for i in project.all():
        
        if 'project create' == i.project.name:
            exist = True
    assert exist, "project created"
    
    # now delete it
    project = Project()
    model = MongoModel(project=project.project_,collection=project.collection_)
    model.delete({'name':'project create'})
Exemplo n.º 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})
Exemplo n.º 6
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
Exemplo n.º 7
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'    
Exemplo n.º 8
0
def setup_test_update():
    mongo = MongoModel(project='test_api_update',collection='test_api_entry')
    mongo.insert({'a':1})
    user = User()
    user.create('test_user_api_update','test_pass','*****@*****.**')
    project = Project()
    project.create('test api update','scraped')
    project.add_entry('test api entry','entry','localhost')
    user.add_project(project.get_id())
Exemplo n.º 9
0
def teardown_test_load_data():
    project = Project()
    project.find('test load data') 
    fs = gridfs.GridFS(project.get_db())
    for entry in project.project.input_file:
        for file_id in project.project.input_file[entry]:
            fs.delete(ObjectId(file_id))
    db = MongoModel(project='internal',collection='project')
    
    db.delete({'name':'test load data'})
    db.conn.drop_database('test_load_data')
Exemplo n.º 10
0
def teardown_user_project_list():
    user = User()
    model = MongoModel(project=user.project,collection=user.collection)
    model.delete({'username':'******'})
    project = Project()
    model = MongoModel(project=project.project_,collection=project.collection_)
    model.delete({'name':'project list 1'})
    model.conn.drop_database('project_list_1')
    model.delete({'name':'project list 2'})
    model.conn.drop_database('project_list_2')
    model.delete({'name':'project list 3'})
    model.conn.drop_database('project_list_3')
Exemplo n.º 11
0
def teardown_project():
    data = (
        ('project 1','project content 1'),
        ('project 2','project content 2'),
        ('project 3','project content 3')
    )
    for d in data:
        project = Project()
        project.find(d[0])
        model = MongoModel(project=project.project_,collection=project.collection_)
        model.delete({'_id':ObjectId(str(project.project.id))})
        model.conn.drop_database(d[0].replace(' ','_'))
Exemplo n.º 12
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'] == '*****@*****.**'
Exemplo n.º 13
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'] 
Exemplo n.º 14
0
def teardown_test_update():
    mongo = MongoModel(project='test_api_update',collection='test_api_entry')
    mongo.delete({'a':2})
    user = User()
    user.login('test_user_api_update','test_pass')
    model = MongoModel(project=user.project,collection=user.collection)
    model.delete({'_id':objectid.ObjectId(str(user.user.id))})
    model = MongoModel(project='internal',collection='project')
    model.delete({'name':'test api update'})
Exemplo n.º 15
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})
Exemplo n.º 16
0
def test_get():
    mongo = MongoModel(project='scraped',collection='entry')
    client = webapp.app.test_client()

    data = mongo.all()

    id = str(data[0]['_id'])
    project = Project()
    project.find('scraped')
    entry_id = project.find_entry('entry')
    response = client.get('/api/db/%s/%s/%s/' % (project.project.id,entry_id,id))
    result = json.loads(response.data)

    assert result['a'] == 1
Exemplo n.º 17
0
 def delete(self,project_id):
     api_key = request.args.get('api_key')
     if not authorized(api_key,project_id):
         return jsonify({'status':False})
     user = User()
     user.api_login(api_key)
     project = Project()
     project.get(project_id)
     if not project.get_id() in user.user.project:
         return jsonify({'status':False})
     user.remove_project(project.get_id())
     model = MongoModel(project=project.project_,collection=project.collection_)
     model.delete({'_id':objectid.ObjectId(str(project_id))})
     
     return jsonify({'status':True})
Exemplo n.º 18
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()
Exemplo n.º 19
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
Exemplo n.º 20
0
def test_insert():
    user = User()
    user.login('test_user','test_pass')
    api_key = user.user.auth_token
    client = webapp.app.test_client()
    data = {'a':1}
    project = Project()
    project.find('scraped')
    entry_id = project.find_entry('entry')
    url = '/api/db/%s/%s/?api_key=%s' % (project.project.id,entry_id,api_key)
    response = client.post(url,data=json.dumps(data),
            content_type='application/json')
    
    status = json.loads(response.data)
    assert status['status']

    mongo = MongoModel(project='scraped',collection='entry')
    check = mongo.all()
    assert check[0]['a'] == 1

    mongo.delete(check[0])
Exemplo n.º 21
0
def teardown_project_update():
    user = User()
    user.login('test_update_user','test_password')
    db = MongoModel(project=user.project,collection=user.collection)
    db.delete({'username':'******'})
    db = MongoModel(project='internal',collection='project')
    db.delete({'name':'project update'})
Exemplo n.º 22
0
def teardown_user():
    user = User()
    user.login('test_user','test_pass')
    model = MongoModel(project=user.project,collection=user.collection)
    model.delete({'_id':objectid.ObjectId(str(user.user.id))})
    model = MongoModel(project='internal',collection='project')
    model.delete({'name':'scraped'})
Exemplo n.º 23
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
Exemplo n.º 24
0
def teardown_user_project():
    user = User()
    model = MongoModel(project=user.project,collection=user.collection)
    model.delete({'username':'******'})
    project = Project()
    model = MongoModel(project=project.project_,collection=project.collection_)
    model.delete({'name':'project update'})
    model.conn.drop_database('project_update')
Exemplo n.º 25
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
Exemplo n.º 26
0
def teardown_project_delete():
    user = User()
    user.login('test_user_delete_api_project','test_pass')
    project = Project()
    model = MongoModel(project=user.project,collection=user.collection)
    model.delete({'_id':ObjectId(user.user.id)})
    project.find('project 1')
    model = MongoModel(project=project.project_,collection=project.collection_)
    model.delete({'name':'project 1'})
    model.conn.drop_database('project_1')
Exemplo n.º 27
0
def test_update():
    model = MongoModel()
    model.update({'a':1},{'b':3})
    data = model.query({'a':1})
    assert data['b'] == 3
Exemplo n.º 28
0
def teardown_test_update():
    model = MongoModel()
    model.delete({'a':1})
Exemplo n.º 29
0
def setup_test_update():
    model = MongoModel()
    model.insert({'a':1,'b':2})
Exemplo n.º 30
0
def test_get_all():
    model = MongoModel()
    data = model.all()
    assert data[0]['a'] == 1
    assert data[1]['b'] == 2
    assert data[2]['c'] == 3