Browse Source

[FIX][8.0] hw_telium_payment_terminal - Make lint tools happy

pull/471/head
Éloi Rivard 5 years ago
committed by Florent de Labarre
parent
commit
4fc3ac3842
  1. 2
      hw_telium_payment_terminal/controllers/main.py
  2. 39
      hw_telium_payment_terminal/test-scripts/telium-test.py

2
hw_telium_payment_terminal/controllers/main.py

@ -264,7 +264,7 @@ class TeliumPaymentTerminalDriver(Thread):
if self.get_one_byte_answer('EOT'): if self.get_one_byte_answer('EOT'):
logger.info("Answer received from Terminal") logger.info("Answer received from Terminal")
except Exception, e:
except Exception as e:
logger.error('Exception in serial connection: %s' % str(e)) logger.error('Exception in serial connection: %s' % str(e))
self.set_status("error", self.set_status("error",
"Exception in serial connection to {}" "Exception in serial connection to {}"

39
hw_telium_payment_terminal/test-scripts/telium-test.py

@ -49,7 +49,7 @@ def initialize_msg(serial):
if get_one_byte_answer(serial, 'ACK'): if get_one_byte_answer(serial, 'ACK'):
return True return True
else: else:
print "Terminal : SAME PLAYER TRY AGAIN"
print("Terminal : SAME PLAYER TRY AGAIN")
send_one_byte_signal(serial, 'EOT') send_one_byte_signal(serial, 'EOT')
# Wait 1 sec between each attempt # Wait 1 sec between each attempt
time.sleep(1) time.sleep(1)
@ -61,7 +61,7 @@ def send_one_byte_signal(serial, signal):
assert signal in ascii_names, 'Wrong signal' assert signal in ascii_names, 'Wrong signal'
char = ascii_names.index(signal) char = ascii_names.index(signal)
serial_write(serial, chr(char)) serial_write(serial, chr(char))
print 'Signal %s sent to terminal' % signal
print('Signal %s sent to terminal' % signal)
def get_one_byte_answer(serial, expected_signal): def get_one_byte_answer(serial, expected_signal):
@ -69,7 +69,7 @@ def get_one_byte_answer(serial, expected_signal):
one_byte_read = serial.read(1) one_byte_read = serial.read(1)
expected_char = ascii_names.index(expected_signal) expected_char = ascii_names.index(expected_signal)
if one_byte_read == chr(expected_char): if one_byte_read == chr(expected_char):
print "%s received from terminal" % expected_signal
print("%s received from terminal" % expected_signal)
return True return True
else: else:
return False return False
@ -81,14 +81,14 @@ def prepare_data_to_send():
elif PAYMENT_MODE == 'card': elif PAYMENT_MODE == 'card':
payment_mode = '1' payment_mode = '1'
else: else:
print "The payment mode '%s' is not supported" % PAYMENT_MODE
print("The payment mode '%s' is not supported" % PAYMENT_MODE)
return False return False
cur_iso_letter = CURRENCY_ISO.upper() cur_iso_letter = CURRENCY_ISO.upper()
try: try:
cur = pycountry.currencies.get(alpha_3=cur_iso_letter) cur = pycountry.currencies.get(alpha_3=cur_iso_letter)
cur_numeric = str(cur.numeric) cur_numeric = str(cur.numeric)
except: except:
print "Currency %s is not recognized" % cur_iso_letter
print("Currency %s is not recognized" % cur_iso_letter)
return False return False
data = { data = {
'pos_number': str(1).zfill(2), 'pos_number': str(1).zfill(2),
@ -124,13 +124,13 @@ def send_message(serial, data):
data['private'] + data['private'] +
data['delay'] + data['delay'] +
data['auto']) data['auto'])
print 'Real message to send = %s' % real_msg
print('Real message to send = %s' % real_msg)
assert len(real_msg) == 34, 'Wrong length for protocol E+' assert len(real_msg) == 34, 'Wrong length for protocol E+'
real_msg_with_etx = real_msg + chr(ascii_names.index('ETX')) real_msg_with_etx = real_msg + chr(ascii_names.index('ETX'))
lrc = generate_lrc(real_msg_with_etx) lrc = generate_lrc(real_msg_with_etx)
message = chr(ascii_names.index('STX')) + real_msg_with_etx + chr(lrc) message = chr(ascii_names.index('STX')) + real_msg_with_etx + chr(lrc)
serial_write(serial, message) serial_write(serial, message)
print 'Message sent to terminal'
print('Message sent to terminal')
def compare_data_vs_answer(data, answer_data): def compare_data_vs_answer(data, answer_data):
@ -152,7 +152,7 @@ def parse_terminal_answer(real_msg, data):
'currency_numeric': real_msg[12:15], 'currency_numeric': real_msg[12:15],
'private': real_msg[15:26], 'private': real_msg[15:26],
} }
print 'answer_data = %s' % answer_data
print('answer_data = %s' % answer_data)
compare_data_vs_answer(data, answer_data) compare_data_vs_answer(data, answer_data)
return answer_data return answer_data
@ -161,18 +161,19 @@ def get_answer_from_terminal(serial, data):
ascii_names = curses.ascii.controlnames ascii_names = curses.ascii.controlnames
full_msg_size = 1+2+1+8+1+3+10+1+1 full_msg_size = 1+2+1+8+1+3+10+1+1
msg = serial.read(size=full_msg_size) msg = serial.read(size=full_msg_size)
print '%d bytes read from terminal' % full_msg_size
print('%d bytes read from terminal' % full_msg_size)
assert len(msg) == full_msg_size, 'Answer has a wrong size' assert len(msg) == full_msg_size, 'Answer has a wrong size'
if msg[0] != chr(ascii_names.index('STX')): if msg[0] != chr(ascii_names.index('STX')):
print 'The first byte of the answer from terminal should be STX'
print('The first byte of the answer from terminal should be STX')
if msg[-2] != chr(ascii_names.index('ETX')): if msg[-2] != chr(ascii_names.index('ETX')):
print 'The byte before final of the answer from terminal should be ETX'
print('The byte before final of the answer '
'from terminal should be ETX')
lrc = msg[-1] lrc = msg[-1]
computed_lrc = chr(generate_lrc(msg[1:-1])) computed_lrc = chr(generate_lrc(msg[1:-1]))
if computed_lrc != lrc: if computed_lrc != lrc:
print 'The LRC of the answer from terminal is wrong'
print('The LRC of the answer from terminal is wrong')
real_msg = msg[1:-2] real_msg = msg[1:-2]
print 'Real answer received = %s' % real_msg
print('Real answer received = %s' % real_msg)
return parse_terminal_answer(real_msg, data) return parse_terminal_answer(real_msg, data)
@ -189,7 +190,7 @@ def transaction_start():
# that we have to wait to up 3 seconds to get LRC # that we have to wait to up 3 seconds to get LRC
serial = Serial( serial = Serial(
DEVICE, DEVICE_RATE, timeout=3) DEVICE, DEVICE_RATE, timeout=3)
print 'serial.is_open = %s' % serial.isOpen()
print('serial.is_open = %s' % serial.isOpen())
if initialize_msg(serial): if initialize_msg(serial):
data = prepare_data_to_send() data = prepare_data_to_send()
if not data: if not data:
@ -198,19 +199,19 @@ def transaction_start():
if get_one_byte_answer(serial, 'ACK'): if get_one_byte_answer(serial, 'ACK'):
send_one_byte_signal(serial, 'EOT') send_one_byte_signal(serial, 'EOT')
print "Now expecting answer from Terminal"
print("Now expecting answer from Terminal")
if get_one_byte_answer(serial, 'ENQ'): if get_one_byte_answer(serial, 'ENQ'):
send_one_byte_signal(serial, 'ACK') send_one_byte_signal(serial, 'ACK')
get_answer_from_terminal(serial, data) get_answer_from_terminal(serial, data)
send_one_byte_signal(serial, 'ACK') send_one_byte_signal(serial, 'ACK')
if get_one_byte_answer(serial, 'EOT'): if get_one_byte_answer(serial, 'EOT'):
print "Answer received from Terminal"
print("Answer received from Terminal")
except Exception, e:
print 'Exception in serial connection: %s' % str(e)
except Exception as e:
print('Exception in serial connection: %s' % str(e))
finally: finally:
if serial: if serial:
print 'Closing serial port for payment terminal'
print('Closing serial port for payment terminal')
serial.close() serial.close()

Loading…
Cancel
Save