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_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
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
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
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})
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'
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'] == '*****@*****.**'
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']
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_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})
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()
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 test_update(): model = MongoModel() model.update({'a':1},{'b':3}) data = model.query({'a':1}) assert data['b'] == 3
def test_get_single(): model = MongoModel() data = model.query({'a':1}) assert data['a'] == 1