def test_submit_another(self, app, db_session, smtplib): # created guy and proposal pers = CompletePersonFactory() prop = ProposalFactory(title='sub one', people=[pers]) type = ProposalTypeFactory() stat = ProposalStatusFactory(name='Pending Review') # Required by code trav = TravelAssistanceTypeFactory() accm = AccommodationAssistanceTypeFactory() audc = TargetAudienceFactory() db_session.commit() # now go to list, click on the submit another link, and do so do_login(app, pers) resp = app.get(url_for(controller='proposal', action='index')) assert prop.title in unicode(resp.body, 'utf-8') assert "You haven't submitted any proposals" not in unicode( resp.body, 'utf-8') resp = resp.click(description='New proposal') resp = resp.maybe_follow() f = resp.form f['proposal.title'] = 'sub two' f['proposal.type'] = str(type.id) f['proposal.abstract'] = "cubist" f['proposal.accommodation_assistance'] = str(accm.id) f['proposal.travel_assistance'] = str(trav.id) f['proposal.audience'] = str(audc.id) f['person.experience'] = "n" f['attachment'] = "foo" f['person.mobile'] = "NONE" f['person.bio'] = "Jim isn't real Dave, he never was" resp = f.submit() resp.status_code = 302 # Failure suggests form didn't submit cleanly pers_id = pers.id db_session.expunge_all() # does it exist? s2 = Proposal.find_by_title('sub two') assert len(s2) == 1 s2 = s2[0] assert Person.find_by_id( pers_id) in s2.people # Attached to correct person assert len(s2.attachments) == 1 # With attachment # Ensure that confirmation email was sent assert smtplib.existing is not None assert "Thank you for proposing" in smtplib.existing.message
def test_submit_another(self, app, db_session, smtplib): # created guy and proposal pers = CompletePersonFactory() prop = ProposalFactory(title='sub one', people=[pers]) type = ProposalTypeFactory() stat = ProposalStatusFactory(name = 'Pending Review') # Required by code trav = TravelAssistanceTypeFactory() accm = AccommodationAssistanceTypeFactory() audc = TargetAudienceFactory() db_session.commit() # now go to list, click on the submit another link, and do so do_login(app, pers) resp = app.get(url_for(controller='proposal', action='index')) assert prop.title in unicode(resp.body, 'utf-8') assert "You haven't submitted any proposals" not in unicode(resp.body, 'utf-8') resp = resp.click(description='New proposal') resp = resp.maybe_follow() f = resp.form f['proposal.title'] = 'sub two' f['proposal.type'] = str(type.id) f['proposal.abstract'] = "cubist" f['proposal.accommodation_assistance'] = str(accm.id) f['proposal.travel_assistance'] = str(trav.id) f['proposal.audience'] = str(audc.id) f['person.experience'] = "n" f['attachment'] = "foo" f['person.mobile'] = "NONE" f['person.bio'] = "Jim isn't real Dave, he never was" resp = f.submit() resp.status_code = 302 # Failure suggests form didn't submit cleanly pers_id = pers.id db_session.expunge_all() # does it exist? s2 = Proposal.find_by_title('sub two') assert len(s2) == 1 s2 = s2[0] assert Person.find_by_id(pers_id) in s2.people # Attached to correct person assert len(s2.attachments) == 1 # With attachment # Ensure that confirmation email was sent assert smtplib.existing is not None assert "Thank you for proposing" in smtplib.existing.message