def test_new_printed_ticket_with_aliases(c, monkeypatch): last_ticket = None mock_printer = MagicMock() monkeypatch.setattr(escpos.printer, 'Usb', mock_printer) # NOTE: set ticket setting to printed printer_settings = Printer.get() touch_screen_settings = Touch_store.get() touch_screen_settings.n = False printer_settings.vendor = 150 printer_settings.product = 3 printer_settings.in_ep = 170 printer_settings.out_ep = 170 # NOTE: setting aliases office_alt = 'Department' task_alt = 'Mission' ticket_alt = 'Token' aliases = Aliases.get() aliases.office = office_alt aliases.task = task_alt aliases.ticket = ticket_alt db.session.commit() task = choice(Task.query.all()) last_ticket = Serial.query.filter_by(task_id=task.id)\ .order_by(Serial.number.desc()).first() name = 'TESTING PRINTED TICKET' response = c.post(f'/serial/{task.id}', data={'name': name}, follow_redirects=True) new_ticket = Serial.query.filter_by(task_id=task.id)\ .order_by(Serial.number.desc()).first() office = new_ticket.office tickets = Serial.all_office_tickets(office.id, desc=False)\ .filter(Serial.number != new_ticket.number) cur_ticket = tickets.first() assert response.status == '200 OK' assert last_ticket.number != new_ticket.number assert new_ticket.name == name assert mock_printer().text.call_count == 12 assert mock_printer().set.call_count == 7 mock_printer().set.assert_called_with(align='left', height=1, width=1) mock_printer().cut.assert_called_once() mock_printer().text.assert_any_call( f'\n{office_alt} : {office.prefix}{office.name}\n') mock_printer().text.assert_any_call( f'\n{office.prefix}.{new_ticket.number}\n') mock_printer().text.assert_any_call( f'\n{ticket_alt}s ahead : {tickets.count()}\n') mock_printer().text.assert_any_call( f'\n{task_alt} : {new_ticket.task.name}\n') mock_printer().text.assert_any_call( f'\nCurrent {ticket_alt.lower()} : {office.prefix}.{cur_ticket and cur_ticket.number}\n' )
def test_list_office(c): office = choice(Office.query.all()) tickets = Serial.all_office_tickets(office.id)\ .filter(Serial.number != 100)\ .order_by(Serial.p, Serial.timestamp.desc())\ .limit(10) response = c.get(f'/offices/{office.id}', follow_redirects=True) page_content = response.data.decode('utf-8') assert response.status == '200 OK' for ticket in tickets: assert f'<b> {office.prefix}{ticket.number}.</b>' in page_content
def test_list_office_with_common_task(c): with c.application.app_context(): task = Task.get_first_common() office = choice(task.offices) tickets = Serial.all_office_tickets(office.id)\ .filter(Serial.number != 100)\ .order_by(Serial.p, Serial.timestamp.desc())\ .limit(10) response = c.get(f'/offices/{office.id}', follow_redirects=True) page_content = response.data.decode('utf-8') assert response.status == '200 OK' for ticket in tickets: assert f'<b> {office.prefix}{ticket.number}.</b>' in page_content