Ejemplo n.º 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
Ejemplo n.º 2
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'    
Ejemplo n.º 3
0
def test_project_stats():
    project = Project()
    project.find('test project db')
    entry_id = project.find_entry('test entries')
    print entry_id
    print project.project.entry
    databases = project.get_stats()
    for database in databases:
        assert database == entry_id 
Ejemplo n.º 4
0
def test_get_all():
    project = Project()
    project.find('scraped')
    entry_id = project.find_entry('entry')
    client = webapp.app.test_client()
    response = client.get('/api/db/%s/%s/' % (project.project.id,entry_id))
    result = json.loads(response.data)
    
    assert result[0]['a'] == 1
Ejemplo n.º 5
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')
Ejemplo n.º 6
0
def test_project_view():
    test_client = webapp.app.test_client()
    result = test_client.get('/')
    project = Project()
    project.find('project view')
    assert project.project.id in result.data
    
    result = test_client.get('/project/%s/'% project.project.id)
    assert 'project view' in result.data
    assert 'data' in result.data
Ejemplo n.º 7
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')
Ejemplo n.º 8
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(' ','_'))
Ejemplo n.º 9
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'] 
Ejemplo n.º 10
0
def test_load_data():
    project = Project()
    project.find('test load data')
    entry_id = project.find_entry('test entries')
    datasource = project.project.input_file[entry_id]
    key = datasource.keys()[0]
    entry = project.get_entry_collection(entry_id)
    print key
    project.load_datafile(entry_id,key)
    test_data = entry.query({'a':'1'})
    assert test_data['b'] == '2' 
    assert test_data['c'] == '3'
Ejemplo n.º 11
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
Ejemplo n.º 12
0
def get_entry(project_id,entry):
    form = EntryUpdateForm()
    edit = False
    # entry should be short_name
    if form.validate_on_submit():
        project = Project()
        description = form.description.data
        source = form.source.data
        project.get(project_id)
        project.update_entry(entry,description,source)
        return redirect('/entry/%s/%s/' % (project_id,entry))
    project = Project()
    project.find(project_name)
    return render_template('entry_view.html',project=project,entry=entry,
                           edit=edit,form=form)
Ejemplo n.º 13
0
def test_project_update():
    test_client = webapp.app.test_client()
    result = test_client.post('/login/',data={
        'username':'******',
        'password':'******'
    },follow_redirects=True)
    project = Project()
    project.find('project update') 
    project_ui = test_client.post('/project/%s/' % project.project.id,data={
        'description':'project updated',
    },follow_redirects=True) 
    print project_ui.data
    
    assert 'project updated' in project_ui.data
    assert 'data' in project_ui.data
Ejemplo n.º 14
0
def test_project_file_download():
    content = "a,b,c\n1,2,3\n4,5,6"
    project = Project()
    project.find('test project download')
    data = project.project.input_file
    entry_id = project.find_entry('test entries')
    files = data[entry_id]
    valid_flag = False
    for file_id in files:
        test_file = project.get_datafile(file_id)
        test_data = test_file.read()
        if test_data == content:
            valid_flag = True
    
    assert valid_flag
Ejemplo n.º 15
0
 def get(self, *args, **kwargs):
     if not self.user.admin:
         self.add_message(u'您没有访问该页面的权限, 请联系管理员')
         return self.render('failed.html')
     ps = Project.find(status__no=Project._status_del)
     users = User.find(status=User._status_ok)
     return self.render('manager.html', ps=ps, users=users)
Ejemplo n.º 16
0
def test_user_project_join():
    user = User()
    user.login('test_user_list','test_pass')
    api_key = user.user.auth_token
    test_client = webapp.app.test_client()
    project = Project()
    project.find('project list 3')
    
    url = '/api/project/%s/?api_key=%s' % (project.project.id,api_key)

    data = {'project':'project list 3','action':'join'}

    result = test_client.put(url,data=json.dumps(data),content_type='application/json')
    user.login('test_user_list','test_pass')
    print user.user.project
    assert str(project.get_id()) in user.user.project
Ejemplo n.º 17
0
def test_project_get():
    # this do not require user auth 
    data = (
        ('project 1','project content 1'),
        ('project 2','project content 2'),
        ('project 3','project content 3')
    )
    
    test_client = webapp.app.test_client()
    
    for d in data:
        project = Project()
        project.find(d[0])
        url = '/api/project/%s/' % (project.project.id)
        result = test_client.get(url)
        assert d[0] in result.data
        assert d[1] in result.data
Ejemplo n.º 18
0
def test_project_update():
    user = User()
    user.login('test_user_update_project','test_pass')
    api_key = user.user.auth_token
    project = Project()
    project.find('project update')
    test_client = webapp.app.test_client()
    url = '/api/project/%s/?api_key=%s' % (project.project.id,api_key)
    data = json.dumps({'description':'project updated content'})
    result = test_client.put(url,data=data,content_type='application/json')
    status = json.loads(result.data)
    print status
    assert status['status']
    
    project=Project()
    project.find('project update')
    assert project.project.description == 'project updated content'
Ejemplo n.º 19
0
def test_project_file_upload():
    content = "a,b,c\n1,2,3\n4,5,6"
    test_data = cStringIO.StringIO(content)
    f = MockFile('test_data.csv',content)
    project = Project()
    project.find('test project upload')
    entry_id = project.find_entry('test entries')
    project.add_datafile(entry_id,f)
    
    input_file = project.project.input_file
    exist_flag = False
    for entry in input_file:
        for file_id in input_file[entry]:
            if input_file[entry][file_id]['filename'] == 'test_data.csv':
                exist_flag = True
    
    assert exist_flag 
Ejemplo 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])
Ejemplo n.º 21
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
Ejemplo n.º 22
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
Ejemplo n.º 23
0
def test_project_api():
    project = Project()
    project.find('test project db')
    print project.get_api()
    assert '/api/db/test_project_db/test_entries/' in project.get_api()