def test_07(self, llc): """Default server limits""" payload = bytearray(x % 256 for x in range(1024 - 32)) records = [ndef.Record("application/octet-stream", "1", payload)] ndef_message = b''.join(ndef.message_encoder(records)) snep = nfc.snep.SnepClient(llc) try: info("connect to {0}".format("urn:nfc:sn:snep")) snep.connect("urn:nfc:sn:snep") except nfc.llcp.ConnectRefused: raise cli.TestFail("could not connect to default server") try: info("put {0} octets ndef message".format(len(ndef_message))) snep.put_octets(ndef_message) identifier = ndef.Record("application/octet-stream", "1") info("request ndef message {}".format(identifier)) identifier = b''.join(ndef.message_encoder([identifier])) try: ndef_message = snep.get_octets(identifier) except nfc.snep.SnepError as e: if e.errno != nfc.snep.NotImplemented: raise cli.TestFail("received unexpected response code") info("received 'not implemented' response as expected") else: raise cli.TestFail("received unexpected message from server") finally: info("disconnect from server") snep.close()
def test_05(self, llc): """Undeliverable resource""" payload = bytearray(range(122 - 29)) records = [ndef.Record("application/octet-stream", "1", payload)] ndef_message_sent = b''.join(ndef.message_encoder(records)) max_ndef_msg_recv_size = len(ndef_message_sent) - 1 snep = nfc.snep.SnepClient(llc, max_ndef_msg_recv_size) try: info("connect to {0}".format(validation_server)) snep.connect(validation_server) except nfc.llcp.ConnectRefused: raise cli.TestFail("could not connect to validation server") try: info("put {0} octets ndef message".format(len(ndef_message_sent))) snep.put_octets(ndef_message_sent) info( "request ndef message with max acceptable lenght of {} octets". format(max_ndef_msg_recv_size)) identifier = ndef.Record("application/octet-stream", "1") identifier = b''.join(ndef.message_encoder([identifier])) try: snep.get_octets(identifier) except nfc.snep.SnepError as e: if e.errno != nfc.snep.ExcessData: raise cli.TestFail("received unexpected response code") info("received 'excess data' response as expected") else: raise cli.TestFail("received unexpected message from server") finally: info("disconnect from {0}".format(validation_server)) snep.close()
def test_06(self, llc): """Unavailable resource""" snep = nfc.snep.SnepClient(llc) try: info("connect to {0}".format(validation_server)) snep.connect(validation_server) except nfc.llcp.ConnectRefused: raise cli.TestFail("could not connect to validation server") try: identifier = ndef.Record("application/octet-stream", "na") info("request ndef message {}".format(identifier)) identifier = b''.join(ndef.message_encoder([identifier])) try: snep.get_octets(identifier) except nfc.snep.SnepError as e: if e.errno != nfc.snep.NotFound: raise cli.TestFail("received unexpected response code") info("received 'not found' response as expected") else: raise cli.TestFail("received unexpected message from server") finally: info("disconnect from {0}".format(validation_server)) snep.close()
def test_04(self, llc): """Multiple ndef messages""" ndef_message_sent = list() ndef_message_rcvd = list() payload = bytearray(range(50)) records = [ndef.Record("application/octet-stream", "1", payload)] ndef_message_sent.append(b''.join(ndef.message_encoder(records))) records = [ndef.Record("application/octet-stream", "2", payload)] ndef_message_sent.append(b''.join(ndef.message_encoder(records))) snep = nfc.snep.SnepClient(llc, max_ndef_msg_recv_size=10000) try: info("connect to {0}".format(validation_server)) snep.connect(validation_server) except nfc.llcp.ConnectRefused: raise cli.TestFail("could not connect to validation server") try: info("put 1st ndef message") snep.put_octets(ndef_message_sent[0]) info("put 2nd ndef message") snep.put_octets(ndef_message_sent[1]) info("get 1st ndef message") identifier = ndef.Record("application/octet-stream", "1") identifier = b''.join(ndef.message_encoder([identifier])) ndef_message = snep.get_octets(identifier) ndef_message_rcvd.append(ndef_message) info("get 2nd ndef message") identifier = ndef.Record("application/octet-stream", "2") identifier = b''.join(ndef.message_encoder([identifier])) ndef_message = snep.get_octets(identifier) ndef_message_rcvd.append(ndef_message) for i in range(len(ndef_message_sent)): if not ndef_message_rcvd == ndef_message_sent: info("rcvd ndef message {0} differs".format(i)) raise cli.TestFail("rcvd message {0} differs".format(i)) else: info("rcvd message {0} is correct".format(i)) except Exception as e: raise cli.TestFail("exception " + str(e)) finally: info("disconnect from {0}".format(validation_server)) snep.close()
def test_01(self, llc): """Connect and terminate""" snep = nfc.snep.SnepClient(llc, max_ndef_msg_recv_size=1024) try: info("1st connect to {0}".format(validation_server)) snep.connect(validation_server) except nfc.llcp.ConnectRefused: raise cli.TestFail("could not connect to validation server") else: info("disconnect from {0}".format(validation_server)) snep.close() try: info("2nd connect to {0}".format(validation_server)) snep.connect(validation_server) except nfc.llcp.ConnectRefused: raise cli.TestFail("could not connect to validation server") else: info("disconnect from {0}".format(validation_server)) snep.close()