def test_pull_tickets_from_all(_, c): ticket_to_be_pulled = do_until_truthy( fill_tickets, lambda: Serial.query.order_by(Serial.number).filter( Serial.number != 100, Serial.p != True).first()) response = c.get(f'/pull', follow_redirects=True) assert response.status == '200 OK' assert ticket_to_be_pulled is not None assert ticket_to_be_pulled.p is False assert Serial.get( ticket_to_be_pulled.id).number == ticket_to_be_pulled.number assert Serial.get(ticket_to_be_pulled.id).p is True
def test_update_ticket(c): ticket = Serial.get() if not ticket.p: ticket.pull(ticket.office.id) assert ticket.status != TICKET_UNATTENDED c.post(f'/serial_u/{ticket.id}/testing', data={ 'value': ticket.name, 'printed': not ticket.n, 'status': TICKET_UNATTENDED }) assert Serial.get(ticket.id).status == TICKET_UNATTENDED
def test_delete_ticket(c): ticket = Serial.all_clean().first() auth_token = AuthTokens.get() response = c.delete(f'{BASE}/{ticket.id}', follow_redirects=True, headers={'Authorization': auth_token.token}) assert response.status == '204 NO CONTENT' assert response.data == b'' assert Serial.get(ticket.id) is None
def test_get_ticket(c): ticket = Serial.all_clean().first() auth_token = AuthTokens.get() response = c.get(f'{BASE}/{ticket.id}', follow_redirects=True, headers={'Authorization': auth_token.token}) assert response.status == '200 OK' assert Serial.get(response.json.get('id')).id == ticket.id assert all(p in response.json for p in get_module_columns(Serial)) is True
def test_pull_ticket(c): auth_token = AuthTokens.get() response = c.get(f'{BASE}/pull', follow_redirects=True, headers={'Authorization': auth_token.token}) ticket = Serial.get(response.json.get('id')) assert response.status == '200 OK' assert ticket is not None assert ticket.p is True assert all(p in response.json for p in get_module_columns(Serial)) is True
def put(self, ticket_id): ''' Update a specific ticket. ''' ticket = Serial.get(ticket_id) if not ticket: abort(message='Ticket not found', code=HTTPStatus.NOT_FOUND) api.payload.pop('id', '') ticket.query.update(api.payload) db.session.commit() return ticket, HTTPStatus.OK
def test_update_ticket(c): ticket = Serial.all_clean().first() new_name = 'new testing name' auth_token = AuthTokens.get() response = c.put(f'{BASE}/{ticket.id}', follow_redirects=True, headers={'Authorization': auth_token.token}, json={'name': new_name}) assert response.status == '200 OK' assert Serial.get(response.json.get('id')).name == new_name assert all(p in response.json for p in get_module_columns(Serial)) is True
def test_list_tickets(c): auth_token = AuthTokens.get() response = c.get(BASE, follow_redirects=True, headers={'Authorization': auth_token.token}) assert response.status == '200 OK' assert len(response.json) > 0 assert LIMIT_PER_CHUNK > len(response.json) for t in response.json: assert Serial.get(t.get('id')) is not None assert all(p in t for p in get_module_columns(Serial)) is True
def get(self): ''' Pull a ticket from the waiting list. ''' ticket_id = request.args.get('ticket_id', None, type=int) office_id = request.args.get('office_id', None, type=int) ticket = Serial.get(ticket_id) if ticket_id and not ticket: abort(message='Ticket not found', code=HTTPStatus.NOT_FOUND) next_ticket = ticket or Serial.get_next_ticket() if not next_ticket: abort(message='No tickets left to pull', code=HTTPStatus.NOT_FOUND) next_ticket.pull(office_id, self.auth_token and self.auth_token.id) return next_ticket, HTTPStatus.OK
def test_pull_tickets_from_common_task(_, c): settings = Settings.get() settings.strict_pulling = False db.session.commit() task = Task.get_first_common() office = choice(task.offices) ticket_to_be_pulled = do_until_truthy( fill_tickets, lambda: Serial.query.order_by(Serial.number).filter( Serial.number != 100, Serial.p != True, Serial.task_id == task.id). first()) response = c.get(f'/pull/{task.id}/{office.id}', follow_redirects=True) pulled_ticket = Serial.get(ticket_to_be_pulled.id) assert response.status == '200 OK' assert ticket_to_be_pulled is not None assert ticket_to_be_pulled.p is False assert pulled_ticket is not None assert pulled_ticket.task_id == task.id assert pulled_ticket.office_id == office.id
def test_generate_ticket(c): name = 'new testing name' task = Task.get() office = task.offices[0] auth_token = AuthTokens.get() response = c.post(f'{BASE}', follow_redirects=True, headers={'Authorization': auth_token.token}, json={ 'name': name, 'task_id': task.id, 'office_id': office.id }) ticket = Serial.get(response.json.get('id')) assert response.status == '200 OK' assert ticket is not None assert ticket.name == name assert ticket.task_id == task.id assert ticket.office_id == office.id assert all(p in response.json for p in get_module_columns(Serial)) is True