def get_feedback(): if request.method == 'POST': recipients = request.form.getlist('email') share = request.form.get('share-objectives') share_objectives = share == 'share-objectives' for recipient in recipients: user = current_user._get_current_object() other_user = User.objects.filter(email=recipient).first() entry = Entry() entry.requested_by = user.email entry.requested_from = other_user.email entry.requested_by_name = user.full_name entry.requested_from_name = other_user.full_name entry.template = request.form.get('feedback-template') entry.share_objectives = share_objectives if share_objectives: # get and attach objectives pass entry.save() log_entry = LogEntry() log_entry.entry_type = 'feedback' log_entry.owner = user log_entry.entry = entry log_entry.save() log_entry.add_tag('Feedback') _send_feedback_email(log_entry, user, other_user) flash('Submitted request') return render_template('feedback/get-feedback.html')
def test_log_with_valid_fields(): entry = Entry() entry.content = 'content is all there is' entry.save() log_entry = LogEntry() log_entry.entry_type = 'log' log_entry.entry = entry entry.save()
def test_entry_type_must_be_in_models_schema(): entry = Entry() entry.save() log_entry = LogEntry() log_entry.entry_type = 'catfish' log_entry.entry = entry with pytest.raises(ValidationError): log_entry.save()
def test_log_with_valid_fields(): entry = Entry() entry.content = "content is all there is" entry.save() log_entry = LogEntry() log_entry.entry_type = "log" log_entry.entry = entry entry.save()
def test_objective_with_valid_fields(): entry = Entry() entry.how = 'this is how' entry.what = 'this is what' entry.save() log_entry = LogEntry() log_entry.entry_type = 'objective' log_entry.entry = entry log_entry.save()
def test_log_with_invalid_fields(): entry = Entry() entry.foo = 'this is not right there is no foo' entry.save() log_entry = LogEntry() log_entry.entry_type = 'log' log_entry.entry = entry with pytest.raises(ValidationError): log_entry.save()
def test_log_with_invalid_fields(): entry = Entry() entry.foo = "this is not right there is no foo" entry.save() log_entry = LogEntry() log_entry.entry_type = "log" log_entry.entry = entry with pytest.raises(ValidationError): log_entry.save()
def test_save_log_entry_with_content(): entry = Entry() entry.content = 'content is all there is' entry.save() log_entry = LogEntry() log_entry.entry_type = 'log' log_entry.entry = entry log_entry.save() from_db = LogEntry.objects(id=log_entry.id).get() assert from_db.entry.content == 'content is all there is' assert from_db.entry_type == 'log'
def test_save_log_entry_with_content(): entry = Entry() entry.content = 'content is all there is' entry.save() log_entry = LogEntry() log_entry.entry_type = 'log' log_entry.entry = entry log_entry.save() from_db = LogEntry.objects(id=log_entry.id).get() assert from_db.entry.content == 'content is all there is' assert from_db.entry_type == 'log'
def test_feedback_with_valid_fields(): entry = Entry() entry.requested_from = '*****@*****.**' entry.requested_by = '*****@*****.**' entry.details = 'details' entry.share_objectives = True entry.sent = True entry.replied = True entry.save() log_entry = LogEntry() log_entry.entry_type = 'feedback' log_entry.entry = entry log_entry.save()
def test_feedback_with_valid_fields(): entry = Entry() entry.requested_from = '*****@*****.**' entry.requested_by = '*****@*****.**' entry.details = 'details' entry.share_objectives = True entry.sent = True entry.replied = True entry.save() log_entry = LogEntry() log_entry.entry_type = 'feedback' log_entry.entry = entry log_entry.save()
def test_save_log_entry_with_objective(): entry = Entry() entry.how = 'this is how' entry.what = 'this is what' entry.save() log_entry = LogEntry() log_entry.entry_type = 'objective' log_entry.entry = entry log_entry.save() from_db = LogEntry.objects(id=log_entry.id).get() assert from_db.entry_type == 'objective' assert from_db.entry.how == 'this is how' assert from_db.entry.what == 'this is what'
def test_save_log_entry_with_objective(): entry = Entry() entry.how = 'this is how' entry.what = 'this is what' entry.save() log_entry = LogEntry() log_entry.entry_type = 'objective' log_entry.entry = entry log_entry.save() from_db = LogEntry.objects(id=log_entry.id).get() assert from_db.entry_type == 'objective' assert from_db.entry.how == 'this is how' assert from_db.entry.what == 'this is what'
def create(self): entry = Entry( title=self.title.data, content=self.content.data) entry.save() note = LogEntry( entry_type='log', owner=current_user._get_current_object(), entry=entry) note.save() for tag in self.tags.data.split(','): note.add_tag(tag) return note
def test_save_log_entry_with_feedback(): entry = Entry() entry.requested_from = '*****@*****.**' entry.requested_by = '*****@*****.**' entry.details = 'details' entry.share_objectives = True entry.sent = True entry.replied = True entry.save() log_entry = LogEntry() log_entry.entry_type = 'feedback' log_entry.entry = entry log_entry.save() from_db = LogEntry.objects(id=log_entry.id).get() assert from_db.entry_type == 'feedback' assert from_db.entry.requested_from == '*****@*****.**' assert from_db.entry.requested_by == '*****@*****.**' assert from_db.entry.details == 'details' assert from_db.entry.share_objectives assert from_db.entry.sent assert from_db.entry.replied
def test_save_log_entry_with_feedback(): entry = Entry() entry.requested_from = '*****@*****.**' entry.requested_by = '*****@*****.**' entry.details = 'details' entry.share_objectives = True entry.sent = True entry.replied = True entry.save() log_entry = LogEntry() log_entry.entry_type = 'feedback' log_entry.entry = entry log_entry.save() from_db = LogEntry.objects(id=log_entry.id).get() assert from_db.entry_type == 'feedback' assert from_db.entry.requested_from == '*****@*****.**' assert from_db.entry.requested_by == '*****@*****.**' assert from_db.entry.details == 'details' assert from_db.entry.share_objectives assert from_db.entry.sent assert from_db.entry.replied
def setUp(self): self.app = application.app bcrypt = Bcrypt(self.app) # forcibly reconnect to testing db connection.disconnect() self.app.config['MONGO_CONFIG']['db_name'] = 'pipeline_testing' mongo_config = self.app.config['MONGO_CONFIG'] mongodb_uri = 'mongodb://' if mongo_config['dbuser'] and mongo_config['dbpassword']: mongodb_uri += '%s:%s@' % (mongo_config['dbuser'] , mongo_config['dbpassword']) mongodb_uri += '%s/%s' % (mongo_config['hosts'], mongo_config['db_name']) self.connection = connect(mongo_config['db_name'], host=mongodb_uri) # drop any lingering test dbs self.connection.drop_database( self.app.config['MONGO_CONFIG']['db_name']) ''' create test user ''' member_user = User( admin_rights = False , email = '*****@*****.**' , email_confirmation_code = 'goodday' , email_confirmed = True , last_login_time = datetime.utcnow() , password_hash = bcrypt.generate_password_hash('hola!') , registration_time = datetime.utcnow() , verified = True) member_user.save() ''' create test org ''' test_org = Organization( label = 'euro-water' , name = 'Euro Water') test_org.save() # save membership member_user.update(push__organizations = test_org) ''' create test headers ''' date_header = Header(data_type = 'datetime', name = 'date', label = 'date') date_header.save() pH_header = Header(data_type = 'number', name = 'pH', label = 'pH') pH_header.save() city_header = Header(data_type = 'string', name = 'city', label = 'city') city_header.save() headers = [date_header, pH_header, city_header] # save ref to this header for later test self.date_header_id = date_header.id ''' create test project ''' test_project = Project( creation_time = datetime.utcnow() , label = 'water-quality' , name = 'water quality' , ordered_schema = headers , organization = test_org) test_project.save() test_org.update(push__projects=test_project) ''' update the headers with a ref to the project ''' for header in headers: header.update(set__project = test_project) ''' create test datapoints ''' test_data = [ {'date': datetime(2012, 3, 4), 'pH': 2.2, 'city': 'Madrid'} , {'date': datetime(2012, 3, 5), 'pH': 3, 'city': 'Paris'} , {'date': datetime(2012, 3, 6), 'pH': 4, 'city': 'London'} , {'date': datetime(2012, 3, 6), 'pH': 3, 'city': 'London'} , {'date': datetime(2012, 3, 6), 'pH': None, 'city': 'London'} ] for datapoint in test_data: new_entry = Entry( project = test_project , unique = True , values = datapoint) new_entry.save()