def api_post_event(): if not session.get('user'): return jsonify( {'outcome': 'You need to be logged in to perform this action.'}), 401 formData = dict(request.form) sessionData = session.get('user') filePath = '' if dict(request.files): if dict(request.files)['file']: image = dict(request.files)['file'][0] imageName = formData['fileName'][0] filePath = os.path.join(UPLOAD_FOLDER, imageName) image.save(filePath) if formData: title = formData['title'][0] description = formData['description'][0] eventTime = formData['eventTime'][0] createdAt = formData['createdAt'][0] lat = formData['lat'][0] lng = formData['lng'][0] if not filePath: filePath = os.path.join(UPLOAD_FOLDER, DEFAULT_EVENT_IMAGE) if formData['savedTickets'][0]: tickets = json.loads(formData['savedTickets'][0]) for t in tickets: ticket = Ticket(type=t['type'], price=t['price'], currency=t['currency']) event = Event(title=title, created=createdAt, time=eventTime, image=filePath, uid=sessionData['id'], description=description, lat=lat, lng=lng) event.add() eid = event.returnId() if formData['savedTickets'][0]: print formData['savedTickets'][0] tickets = json.loads(formData['savedTickets'][0]) print tickets for t in tickets: print t ticket = Ticket(eid=eid, type=t['type'], price=t['price'], currency=t['currency']) ticket.save() return jsonify({'outcome': 'Created'}), 201
def setUp(self): # set up the test DB self.db = tested_db self.db.create_all() self.db.session.add(Ticket(ticket_id=1, movie_name="A star is born", ticket_number=50)) self.db.session.add(Ticket(ticket_id=2, movie_name="Escape Room", ticket_number=30)) self.db.session.commit() self.app = tested_app.test_client()
def loadtickets(): ticket = Ticket() ticket.id = "1" ticket.evento_id = 1 ticket.categoria_id = 1 db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "2" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "3" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "4" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "5" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "6" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "7" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "8" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "9" db.session.add(ticket) db.session.commit() ticket = Ticket() ticket.id = "10" db.session.add(ticket) db.session.commit() print("Tickets creados")
def post(self): session = get_current_session() email = helper.sanitizeHtml(self.request.get('email')) if len(email) > 1: users = User.all().filter("email =", email).fetch(1) if len(users) == 1: if session.is_active(): session.terminate() user = users[0] Ticket.deactivate_others(user) ticket = Ticket(user=user,code=Ticket.create_code(user.password + user.nickname + str(random.random()))) ticket.put() code = ticket.code host = self.request.url.replace(self.request.path,'',1) mail.send_mail(sender="NoticiasHacker <*****@*****.**>", to=user.nickname + "<"+user.email+">", subject="Liga para restablecer password", html=template.render('templates/mail/forgotten-password-email.html', locals()), body=template.render('templates/mail/forgotten-password-email-plain.html', locals())) session['forgotten_password_ok'] = "Se ha enviado un correo electrónico a tu bandeja de entrada con las instrucciones" else: session['forgotten_password_error'] = "El correo electronico <strong>"+ email +"</strong> no existe en nuestra base de datos" else: session['forgotten_password_error'] = "Debes especificar tu correo electrónico" self.redirect('/olvide-el-password')
def new_item(request): ret = check_auth(request) if ret: return ret if request.method == 'POST': print request.POST if request.GET["new"] == "ticket": form = TicketForm(request.POST) print "valid", form.errors if form.is_valid(): a = Ticket() a.title = form.cleaned_data["title"] a.text = form.cleaned_data["text"] a.priority = form.cleaned_data["priority"] a.author = request.user a.save() send_mail_ticket(a.group, "new_ticket") return show_item(request, a.id) form = {"ticket": TicketForm(), "comment": CommentForm()} return render_to_response('ticket_new.html', {'forms': form, }, context_instance=RequestContext(request))
def test_new_ticket(self): ticket = Ticket() ticket.status = 'new' ticket.sender = User.objects.get(username='******') ticket.queue = Queue.objects.get(name=QUEUE_SUPPORT_REQUESTS) ticket.save() self.assertEqual(ticket.assignee, None)
def new_contact_ticket(request): ticket_created = False if request.POST: form = __get_contact_form(request) if form.is_valid(): ticket = Ticket() ticket.title = form.cleaned_data['title'] ticket.source = TICKET_SOURCE_CONTACT_FORM ticket.status = TICKET_STATUS_NEW ticket.queue = Queue.objects.get(name=QUEUE_SUPPORT_REQUESTS) tc = TicketComment() if request.user.is_authenticated(): ticket.sender = request.user tc.sender = request.user else: ticket.sender_email = form.cleaned_data['email'] tc.text = form.cleaned_data['message'] ticket.save() tc.ticket = ticket tc.save() ticket_created = True # TODO: send email else: form = __get_contact_form(request, False) return render_to_response('tickets/contact.html', locals(), context_instance=RequestContext(request))
def continue_scenario(self, text, state): steps = settings.TICKET_SCENARIOS[state.scenario_name]['steps'] step = steps[state.step_name] handler = getattr(handlers, step['handler']) if handler(text=text, context=state.context, state=state): if type(handler(text=text, context=state.context, state=state)) is str: next_step = steps[handler(text=text, context=state.context, state=state)] else: next_step = steps[step['next_step']] text_to_send = next_step['text'].format(**state.context) if next_step['next_step']: state.step_name = step['next_step'] else: if next_step == steps['step8']: log.info( 'Оформлен билет {point_1}-{point_2} на рейс {flight_number}' ' {out_date}.'.format(**state.context)) Ticket(city_out=state.context['point_1'], city_in=state.context['point_2'], flight_date=state.context['out_date'], flight_number=state.context['flight_number']) else: log.info('Билет не оформлен.'.format(**state.context)) # finish scenario state.delete() else: text_to_send = step['failure_text'].format(**state.context) return text_to_send
def newrequest(): """Create and show only request fields.""" if request.method == 'GET': return render_template('new_request.html', title="New Ticket") if request.method == 'POST': item = request.form['item'] deliverer = '' requester = request.form['requester'] dropoff_address = request.form['dropoff_address'] dropoff_time = request.form['dropoff_time'] dropoff_date = request.form['dropoff_date'] gyfter = '' pickup_address = '' pickup_time = '' pickup_date = '' ticket = Ticket(item, deliverer, gyfter, pickup_address, pickup_time, pickup_date, requester, dropoff_address, dropoff_time, dropoff_date) db.session.add(ticket) db.session.commit() return render_template('show_request.html', ticket=ticket)
def confirm(): show_id = request.args.get('id') koncert = Concert.query.get(show_id) l_plyta = int( request.form["l_plyta"]) #ustawicwartosczero jesli nic nie przechodzi l_trybuny = int(request.form["l_trybuny"]) l_gc = int(request.form["l_gc"]) l_vip = int(request.form["l_vip"]) suma = l_plyta + l_trybuny + l_gc + l_vip kwota =(l_plyta * koncert.price_plyta_ticket) + (l_trybuny * koncert.price_trybuny_ticket) \ + (l_gc * koncert.price_gc_ticket) + (l_vip * koncert.price_vip_ticket) new_ticket = Ticket() new_ticket.user_login = current_user.username new_ticket.nr_plyta_ticket = l_plyta new_ticket.price_plyta_ticket = l_plyta * koncert.price_plyta_ticket new_ticket.nr_trybuny_ticket = l_trybuny new_ticket.price_trybuny_ticket = l_trybuny * koncert.price_trybuny_ticket new_ticket.nr_gc_ticket = l_gc new_ticket.price_gc_ticket = l_gc * koncert.price_gc_ticket new_ticket.nr_vip_ticket = l_vip new_ticket.price_vip_ticket = l_vip * koncert.price_vip_ticket new_ticket.show_id = show_id new_ticket.name = koncert.name db.session.add(new_ticket) db.session.commit() return render_template("confirm.html", suma=suma, l_plyta=l_plyta, koncert=koncert, kwota=kwota, show_id=show_id)
def create_ticket(): ticket_details = request.get_json()['ticket'] date_due = parser.parse(ticket_details['dateDue']) user = User.query.filter_by(address=ticket_details['userAddress']) ticket = Ticket(user[0].address, None, 'requested', ticket_details['price'], date_due, datetime.now(), ticket_details['text'], ticket_details['subject']) fox_ticket = add_ticket(ticket, user[0]) ticket.happy_fox_id = fox_ticket['id'] user.update(dict(happy_fox_id=fox_ticket['user']['id'])) ticket_data = {} if fox_ticket: db.session.add(ticket) db.session.commit() # db.session.add(ticket) # db.session.commit() ticket_data = { 'id': ticket.id, 'subject': ticket.subject, 'text': ticket.text, 'price': ticket.price, 'requestedPrice': ticket.requested_price, 'status': ticket.status, 'dateDue': ticket.date_due, 'dateCreated': ticket.date_created, 'userAddress': ticket.user_address } response = jsonify({'ticket': ticket_data}) response.headers.add('Access-Control-Allow-Origin', '*') return response
def test_add_ticket_note(self): # Add users and a ticket so that we can add some notes. self.add_users_to_db() ticket = Ticket(id=9, status=1, createdAt=datetime.date.today(), updatedAt=datetime.date.today()) self.session.add(ticket) self.session.commit() # Create the note. result = self.app.post('/portal/ticket/note/9', data=dict(poster="oompa", message="my message to the world", status=1, type=2), follow_redirects=True) assert result.status == "200 OK" # Verify the note is actually in the db. note = self.session.query(Note).filter_by( ticket_id=9, message="my message to the world", status=1, type=2).first() assert note is not None ticket = self.session.query(Ticket).first()
def create_ticket(): """ Function creates new ticket takes the ticket values checks if ticket with 'name' parameter already exists in database and flashes the message back to frontend if True saves new ticket in database redirects to url served by 'project_show_update_delete' function """ name = request.form.get('name') description = request.form.get('description') author_id = request.form.get('author_id') project_id = request.form.get('project_id') ticket_priority = request.form.get('ticket_priority') ticket_status = request.form.get('ticket_status') time = request.form.get('due_date') due_date = datetime.strptime(time, '%Y-%m-%d') new_ticket = Ticket(name=name, description=description, author_id=author_id, project_id=project_id, ticket_priority=ticket_priority, ticket_status=ticket_status, due_date=due_date) db.session.add(new_ticket) db.session.commit() return redirect(url_for('project_show_update_delete', id=project_id))
def test_delete_ticket_note(self): # Create our two users and make them owners of the same ticket. self.add_users_to_db() ticket = Ticket(id=3, status=0, createdAt=datetime.date.today(), updatedAt=datetime.date.today()) self.session.add(ticket) users = self.session.query(User).all() for user in users: owner = Ownership(owner_id=user.id, ticket_id=3, createdAt=datetime.date.today(), updatedAt=datetime.date.today()) self.session.add(owner) note = Note(id=6, poster_id=users[0].id, ticket_id=3, message="My message to the world", status=2, type=3, createdAt=datetime.date.today(), updatedAt=datetime.date.today()) self.session.add(note) self.session.commit() # Now delete the note and verify it is gone. response = self.app.delete('/portal/ticket/note/6') response.status == "200 OK" result = self.session.query(Note).first() assert result is None
def api_load_ticket_data(): fd = dict(request.form) if not fd: return jsonify({'outcome': 'Missing parameters!'}), 422 ticket = Ticket(tid=fd['id']) return ticket.getTicketData(), 200
def test_new_ticket(self): """New tickets shouldn't have an assignee""" ticket = Ticket() ticket.status = 'new' ticket.sender = User.objects.get(username='******') ticket.queue = Queue.objects.get(name=QUEUE_SOUND_MODERATION) ticket.save() self.assertEqual(ticket.assignee, None)
def newticket(item='', deliverer='', gyfter='', pickup_address='', pickup_time='', pickup_date='', requester='', dropoff_address='', dropoff_time='', dropoff_date=''): """Render ticket form.""" if request.method == 'GET': return render_template('new_ticket.html', title="New Ticket") if request.method == 'POST': # alternative store form fields in varibles & create new ticket object item = request.form['item'] deliverer = request.form['deliverer'] gyfter = request.form['gyfter'] pickup_address = request.form['pickup_address'] pickup_time = request.form['pickup_time'] pickup_date = request.form['pickup_date'] requester = request.form['requester'] dropoff_address = request.form['dropoff_address'] dropoff_time = request.form['dropoff_time'] dropoff_date = request.form['dropoff_date'] ticket = Ticket(item, deliverer, gyfter, pickup_address, pickup_time, pickup_date, requester, dropoff_address, dropoff_time, dropoff_date) db.session.add(ticket) db.session.commit() # map2 show pickup_ll = geocoder.google(pickup_address) dropoff_ll = geocoder.google(dropoff_address) pickup_geoj = pickup_ll.geojson dropoff_geoj = dropoff_ll.geojson # complete address pickup_address = pickup_geoj['properties']['address'] dropoff_address = dropoff_geoj['properties']['address'] p_lat, p_lng = pickup_ll.lat, pickup_ll.lng d_lat, d_lng = dropoff_ll.lat, dropoff_ll.lng coords_1 = (p_lat, p_lng) coords_2 = (d_lat, d_lng) dist = geopy.distance.vincenty(coords_1, coords_2).mi dist = round(dist, 2) dist = str(dist) + ' mi' return render_template('map2.html', ticket=ticket, p_lat=p_lat, p_lng=p_lng, d_lat=d_lat, d_lng=d_lng, pickup_geoj=pickup_geoj, dropoff_geoj=dropoff_geoj, dist=dist)
def api_load_tickets(): fd = dict(request.form) if not fd: return jsonify({'outcome': 'Missing parameters!'}), 422 ticket = Ticket(eid=fd['event']) tickets = ticket.get() return tickets, 200
def test_get_ticket_notes_where_note_does_not_exist(self): ticket = Ticket(id=2, status=2, createdAt=datetime.date.today(), updatedAt=datetime.date.today()) self.session.add(ticket) self.session.commit() result = self.app.get('/portal/ticket/note/2') assert result.status == "204 NO CONTENT"
def ticket_buy(tariff_id): if request.method == 'POST' and int(tariff_id) in [20, 29]: # HOTFIX - umoznuje to volat i GETem # if int(tariff_id) in [20, 29]: phone = request.form['phone'] ticket = Ticket(tariff=tariff_id, phone=phone) d = {} d["settled_currency"] = "CZK" d["return_url"] = "http://%s/notification" % request.host d["notify_url"] = "http://%s/notification" % request.host d["notify_email"] = "%s" % settings.bitcoinPayOwnerEmail d["price"] = tariff_id d["currency"] = "CZK" ref = {} ref["phone_number"] = phone ref["tariff"] = tariff_id d["reference"] = ref headers = { 'Content-Type': 'application/json', 'Authorization': 'Token %s' % settings.bitcoinPayAuthToken } request_payment = Request( 'https://www.bitcoinpay.com/api/v1/payment/btc', data=json.dumps(d), headers=headers) response_body = urlopen(request_payment).read() data = json.loads(response_body)["data"] ticket.payment_id = data["payment_id"] ticket.status = data["status"] ticket.settled_amount = data["settled_amount"] ticket.settled_currency = data["settled_currency"] ticket.payment_response = json.dumps(data) db_session.add(ticket) db_session.commit() # ulozime payment id v session session["last_payment_id"] = ticket.payment_id # saving user's phone to be able to retrieve tickets overview session[PHONE_SESSION_KEY] = int(phone) return redirect(data["payment_url"], code=302) phone = session.get(PHONE_SESSION_KEY) tariff = get_tariffs(tariff_id) # return redirect(url_for('index')) return render_template('ticket_buy.html', tariff=tariff, phone=phone)
def increase_growth_backlog(column: Column): while True: from app import app with app.app_context(): ticket_complexity = np.random.choice(Complexity.query.all(), 1, p=[0.1, 0.3, 0.4, 0.15, 0.05])[0] ticket_type = np.random.choice(TicketType.query.all(), 1, p=[0.47, 0.43, 0.05, 0.05])[0] ticket_priority = np.random.choice(Priority.query.all(), 1, p=[0.15, 0.41, 0.38, 0.06])[0] status = Status.query.filter_by(name=column.name).first() ticket_components = np.random.choice(Component.query.all(), np.random.randint(1, 3), p=[0.5, 0.25, 0.25]) Ticket(complexity=ticket_complexity.id, type=ticket_type.id, priority=ticket_priority.id, status=status.id, column_id=column.id, components=[component for component in ticket_components]) yield g.env.timeout(1) return # def development(self): # while True: # """START TO WORK""" # yield g.env.timeout(0.25) # """START TO WORK: SEARCH TICKET""" # ticket_selected = self._search_ticket() # return # def _search_ticket(self): # for ticket in # for ticket in self.board.board.tickets['SELECTED FOR DEVELOPMENT']: # for ticket_component in ticket.components: # if ticket_component in self.components: # if ticket.type == g.subtask_types: # # """TAKE COMPLETION BLOCKER""" # self.start_to_work(ticket, 'IN DEV') # return True # elif ticket.type in g.subtask_types: # # """TAKE SUB-TASK""" # self.start_to_work(ticket, 'IN DEV') # return True # elif ticket.type == 'Feature': # # """TAKE FEATURE""" # self.start_to_work(ticket, 'IN ANALYSIS') # ticket.move_on('IN ANALYSIS', self.board.board) # return True # else: # # """TAKE TASK, DECHNICAL DEBT AND OTHER PARENT CARD""" # self.start_to_work(ticket, 'IN DEV') # return True # return False
def run(self): faker = Faker() for i in range(1500): user = User('*****@*****.**' % i, faker.name()) db.session.add(user) db.session.commit() for user in User.query.all(): try: # Choose a random number and type of tickets for this user full_count = random.choice([1] * 3 + [2, 3]) full_type = TicketType.query.filter_by( fixed_id=random.choice([0, 1, 2, 3] * 30 + [9, 10] * 3 + [4])).one() full_tickets = [ Ticket(user.id, type=full_type) for _ in range(full_count) ] kids_count = random.choice([0] * 10 + [1, 2]) kids_type = TicketType.query.filter_by( fixed_id=random.choice([5, 11, 6])).one() kids_tickets = [ Ticket(user.id, type=kids_type) for _ in range(kids_count) ] vehicle_count = random.choice([0] * 2 + [1]) vehicle_type = TicketType.query.filter_by( fixed_id=random.choice([7] * 5 + [8])).one() vehicle_tickets = [ Ticket(user.id, type=vehicle_type) for _ in range(vehicle_count) ] for t in full_tickets + kids_tickets + vehicle_tickets: t.paid = random.choice([True] * 4 + [False]) t.refunded = random.choice([False] * 20 + [True]) db.session.commit() except TicketLimitException: db.session.rollback()
def make_test_user(self): try: user = User.query.filter(User.email == "*****@*****.**").one() except NoResultFound: user = User('*****@*****.**', 'testuser') user.set_password('happycamper') db.session.add(user) types = {"full": TicketType.query.get('full')} # # FIXME: this is a complete mess # # TODO: needs to cover: # # single full ticket # multiple full tickets # # kids & campervans? # # full for full in ([1], [0], [3], [0], [2]): for pt in (BankPayment, GoCardlessPayment): for curr in ['GBP', 'EUR']: total = (full * amounts['full'].get_price(curr)) payment = pt(curr, total) payment.state = "inprogress" if payment.provider == "gocardless": payment.gcid = "%3dSDJADG" % (int( random.random() * 1000)) sess.add(payment) for i in range(full): t = Ticket(code='full') t.payment = payment if payment.currency == 'GBP': t.expires = datetime.utcnow() + timedelta( days=app.config['EXPIRY_DAYS_TRANSFER']) elif payment.currency == 'EUR': t.expires = datetime.utcnow() + timedelta( days=app. config['EXPIRY_DAYS_TRANSFER_EURO']) user.tickets.append(t) user.payments.append(payment) db.session.commit() self.user = user print user.name for p in user.payments.all(): print p.provider, p.amount print p.tickets.all()
def setUp(self): self.group, created = Group.objects.get_or_create(name='test') self.user, created = DjangoUser.objects.get_or_create( username=self.username) self.user.set_password(self.password) self.user.save() perspective, created = Perspective.objects.get_or_create( name='default') perspective.set_default_user() perspective.save() ModuleSetting.set('default_perspective', perspective.id) self.contact_type = ContactType(name='test') self.contact_type.set_default_user() self.contact_type.save() self.contact = Contact(name='test', contact_type=self.contact_type) self.contact.set_default_user() self.contact.save() self.status = TicketStatus(name='TestStatus') self.status.set_default_user() self.status.save() self.queue = TicketQueue(name='TestQueue', default_ticket_status=self.status) self.queue.set_default_user() self.queue.save() self.ticket = Ticket(name='TestTicket', status=self.status, queue=self.queue) self.ticket.set_default_user() self.ticket.save() self.agent = ServiceAgent(related_user=self.user.profile, available_from=datetime.time(9), available_to=datetime.time(17)) self.agent.set_default_user() self.agent.save() self.service = Service(name='test') self.service.set_default_user() self.service.save() self.sla = ServiceLevelAgreement(name='test', service=self.service, client=self.contact, provider=self.contact) self.sla.set_default_user() self.sla.save()
def continue_scenario(self, text, state, user_id): """Продолжаем сценарий""" # достаем шаги steps = SCENARIOS[state.scenario_name]['steps'] step = steps[state.step_name] step_to_send = step # достаем хэндлер handler = getattr(handlers, step['handler']) if handler(text=text, context=state.context): # next step next_step = steps[step["next_step"]] text_to_send = next_step['text'].format(**state.context) step_to_send = next_step # проверяем что ввел пользоваетль на 7ом шаге if self.is_it_ok(state=state): self.clear_context(state) self.send_text(INTENTS[2]['answer'], user_id) return # Достаем экшен elif next_step['action']: action = getattr(handlers, next_step['action']) text_to_send += action(state.context) if next_step['next_step']: # переключаем на след шаг state.step_name = step['next_step'] else: # после удаления из бд обратится к объекту не получится, отправляем прощание self.send_step(step=step_to_send, user_id=user_id, text=text, context=state.context, text_to_send=text_to_send) Ticket( departure=state.context['departure'], arrival=state.context['arrival'], date=state.context['date'], flight_number=state.context['flight_number'], seats_count=state.context['seats_count'], comment=str(state.context['comment']), ) state.delete() print('удалили userstate из бд, проверь!') return else: # retry current step text_to_send = step['failure_text'].format(**state.context) text_to_send += self.print_extra_content(state) self.send_step(step=step_to_send, user_id=user_id, text=text, context=state.context, text_to_send=text_to_send)
def create_ticket(self, subject, **kwargs): """Creates a ticket""" url = 'tickets' status = kwargs.get('status', 2) priority = kwargs.get('priority', 1) data = { 'subject': subject, 'status': status, 'priority': priority, } data.update(kwargs) ticket = self._api._post(url, data=json.dumps(data)) return Ticket(**ticket)
def test_new_ticket_linked_sound(self): test_user = User.objects.get(username='******') ticket = Ticket() ticket.status = 'new' ticket.sender = User.objects.get(username='******') ticket.assignee = User.objects.get(username='******') ticket.queue = Queue.objects.get(name=QUEUE_SOUND_MODERATION) ticket.save() # just to test, this would be a sound object for example s = Sound(description='test sound', license_id=1, user=test_user) s.save() ticket.sound = s ticket.save() self.assertEqual(s.id, ticket.sound.id)
def test_get_ticket_that_exists(self): ticket = Ticket(id=3, status=7, createdAt=datetime.date.today(), updatedAt=datetime.date.today()) self.session.add(ticket) self.session.commit() # Verify the ticket was added to the db. check = self.session.query(Ticket).filter_by(id=3).first() assert check is not None response = self.app.get('/portal/ticket/3') assert response.status == "200 OK"
def create_outbound_email(self, subject, description, email, email_config_id, **kwargs): """Creates an outbound email""" url = 'tickets/outbound_email' priority = kwargs.get('priority', 1) data = { 'subject': subject, 'description': description, 'priority': priority, 'email': email, 'email_config_id': email_config_id, } data.update(kwargs) ticket = self._api._post(url, data=json.dumps(data)) return Ticket(**ticket)
def test_add_ticket_note_using_bad_status_arg(self): self.add_users_to_db() ticket = Ticket(id=4, status=1, createdAt=datetime.date.today(), updatedAt=datetime.date.today()) self.session.add(ticket) self.session.commit() result = self.app.post('/portal/ticket/note/4', data=dict(poster="oompa", message="hello", status="greg", type=3), follow_redirects=True) assert result.status == "400 BAD REQUEST"