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
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})
def test_user_settings_password(): 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.auth_token in result.data # create an update call, then check data # remember to reauthenticate password = '******' result = test_client.post('/settings/',data={ 'password':password, 'confirm':password },follow_redirects=True) user = User() user.login(username,password) assert user.is_authenticated() assert user.user.auth_token in result.data
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'})
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'})
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'})
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'})
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')
def test_user_project_list(): user = User() user.login('test_user_list','test_pass') api_key = user.user.auth_token test_client = webapp.app.test_client() data = {'action':'user_list'} url = '/api/project/?api_key=%s' % api_key result = test_client.get(url) print result.data assert 'project list 1' in result.data assert 'project list 2' in result.data
def test_user_registration(): username = '******' password = '******' email = '*****@*****.**' test_client = webapp.app.test_client() create = test_client.post('/register/',data={ 'username':username, 'password':password, 'confirm':password, 'email':email },follow_redirects=True) user = User() user.login(username,password) assert user.is_authenticated()
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
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'
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])
def login(): form = LoginForm(csrf_enabled=False) user = User() if form.validate_on_submit(): username = form.username.data password = form.password.data user = user.login(username,password) login_user(user) flash('user is logged in') identity_changed.send(current_app._get_current_object(),identity=Identity(user.user.id)) return redirect(request.args.get('next') or '/') return render_template('login.html',form=form)
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
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
def teardown_user_settings_email(): user = User() user.login('test_user_email','test_password') db = MongoModel(project=user.project,collection=user.collection) db.delete({'username':'******'})
def teardown_user(): user = User() user.login('test_user','test_pass') model = MongoModel(project=user.project,collection=user.collection) model.delete({'username':'******'})
def teardown_register(): user = User() user.login('test_register','test_password') db = MongoModel(project=user.project,collection=user.collection) db.delete({'username':'******'})
def teardown_login(): user = User() user.login('test_user','test_password') db = MongoModel(project=user.project,collection=user.collection) db.delete({'_id':user.user.id})