def test_encoding_class(self): number = '2b3334363534313233343536'.decode('hex') text = "hey yo" expected_0 = "0001000B914356143254F6001006E8721E947F03" expected_1 = "0001000B914356143254F6001106E8721E947F03" expected_2 = "0001000B914356143254F6001206E8721E947F03" expected_3 = "0001000B914356143254F6001306E8721E947F03" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.klass = 0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_0) sms.klass = 1 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_1) sms.klass = 2 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_2) sms.klass = 3 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_3)
def test_encoding_class(self): number = "+34654123456" text = "hey yo" expected_0 = "0001000B914356143254F6001006E8721E947F03" expected_1 = "0001000B914356143254F6001106E8721E947F03" expected_2 = "0001000B914356143254F6001206E8721E947F03" expected_3 = "0001000B914356143254F6001306E8721E947F03" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.klass = 0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_0) sms.klass = 1 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_1) sms.klass = 2 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_2) sms.klass = 3 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected_3)
def test_encoding_request_status(self): # tested with pduspy.exe and http://www.rednaxela.net/pdu.php number = '2b3334363534313233343536'.decode('hex') text = "hey yo" expected = "0021000B914356143254F6000006E8721E947F03" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.request_status = True pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_request_status(self): # tested with pduspy.exe and http://www.rednaxela.net/pdu.php number = "+34654123456" text = "hey yo" expected = "0021000B914356143254F6000006E8721E947F03" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.request_status = True pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_request_status(self): # tested with pduspy.exe and http://www.rednaxela.net/pdu.php number = codecs.decode(b'2b3334363534313233343536', 'hex') text = "hey yo" expected = "0021000B914356143254F6000006E8721E947F03" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.request_status = True pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_8bit_message(self): number = "01000000000" csca = "+44000000000" text = "Hi there..." expected = "07914400000000F001000B811000000000F000040B48692074686572652E2E2E" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.csca = csca sms.fmt = 0x04 # 8 bits pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_message_with_latin1_chars(self): # tested with pduspy.exe number = '2b3334363534313233343536'.decode('hex') text = u"Hölä" expected = "0011000B914356143254F60000AA04483E7B0F" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = timedelta(days=4) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) # tested with pduspy.exe number = '2b3334363534313233343536'.decode('hex') text = u"BÄRÇA äñ@" expected = "0001000B914356143254F6000009C2AD341104EDFB00" sms = SmsSubmit(number, text) sms.ref = 0x0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_ucs2_message(self): number = '2b3334363136353835313139'.decode('hex') text = u'あ叶葉' csca = '+34646456456' expected = "07914346466554F601000B914316565811F9000806304253F68449" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.csca = csca pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) text = u"Русский" number = '363535333435363738'.decode('hex') expected = "001100098156355476F80008AA0E0420044304410441043A04380439" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = timedelta(days=4) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_ucs2_message(self): number = codecs.decode(b'2b3334363136353835313139', 'hex').decode() text = u'あ叶葉' csca = '+34646456456' expected = "07914346466554F601000B914316565811F9000806304253F68449" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.csca = csca pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) text = u"Русский" number = codecs.decode(b'363535333435363738', 'hex').decode() expected = "001100098156355476F80008AA0E0420044304410441043A04380439" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = timedelta(days=4) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_ucs2_message(self): number = "+34616585119" text = u'あ叶葉' csca = '+34646456456' expected = "07914346466554F601000B914316565811F9000806304253F68449" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.csca = csca pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) text = u"Русский" number = "655345678" expected = "001100098156355476F80008AA0E0420044304410441043A04380439" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = timedelta(days=4) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_message_with_latin1_chars(self): # tested with pduspy.exe number = "+34654123456" text = u"Hölä" expected = "0011000B914356143254F60000AA04483E7B0F" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = timedelta(days=4) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) # tested with pduspy.exe number = "+34654123456" text = u"BÄRÇA äñ@" expected = "0001000B914356143254F6000009C2AD341104EDFB00" sms = SmsSubmit(number, text) sms.ref = 0x0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected)
def test_encoding_validity(self): # no validity number = "+34616585119" text = "hola" expected = "0001000B914316565811F9000004E8373B0C" sms = SmsSubmit(number, text) sms.ref = 0x0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) # absolute validity number = "+34616585119" text = "hola" expected = "0019000B914316565811F900000170520251930004E8373B0C" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = datetime(2010, 7, 25, 20, 15, 39) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) # relative validity number = "+34616585119" text = "hola" expected = "0011000B914316565811F90000AA04E8373B0C" expected_len = 18 sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = timedelta(days=4) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) self.assertEqual(pdu.length, expected_len)
def test_encoding_validity(self): # no validity number = '2b3334363136353835313139'.decode('hex') text = "hola" expected = "0001000B914316565811F9000004E8373B0C" sms = SmsSubmit(number, text) sms.ref = 0x0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) # absolute validity number = '2b3334363136353835313139'.decode('hex') text = "hola" expected = "0019000B914316565811F900000170520251930004E8373B0C" sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = datetime(2010, 7, 25, 20, 15, 39) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) # relative validity number = '2b3334363136353835313139'.decode('hex') text = "hola" expected = "0011000B914316565811F90000AA04E8373B0C" expected_len = 18 sms = SmsSubmit(number, text) sms.ref = 0x0 sms.validity = timedelta(days=4) pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) self.assertEqual(pdu.length, expected_len)
def test_encoding_csca(self): number = codecs.decode(b'2b3334363136353835313139', 'hex').decode() text = "hola" csca = "+34646456456" expected = "07914346466554F601000B914316565811F9000004E8373B0C" expected_len = 17 sms = SmsSubmit(number, text) sms.csca = csca sms.ref = 0x0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) self.assertEqual(pdu.length, expected_len) self.assertEqual(pdu.cnt, 1) self.assertEqual(pdu.seq, 1)
def test_encoding_csca(self): number = '2b3334363136353835313139'.decode('hex') text = "hola" csca = "+34646456456" expected = "07914346466554F601000B914316565811F9000004E8373B0C" expected_len = 17 sms = SmsSubmit(number, text) sms.csca = csca sms.ref = 0x0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) self.assertEqual(pdu.length, expected_len) self.assertEqual(pdu.cnt, 1) self.assertEqual(pdu.seq, 1)
def test_encoding_csca(self): number = "+34616585119" text = "hola" csca = "+34646456456" expected = "07914346466554F601000B914316565811F9000004E8373B0C" expected_len = 17 sms = SmsSubmit(number, text) sms.csca = csca sms.ref = 0x0 pdu = sms.to_pdu()[0] self.assertEqual(pdu.pdu, expected) self.assertEqual(pdu.length, expected_len) self.assertEqual(pdu.cnt, 1) self.assertEqual(pdu.seq, 1)
def test_encoding_multipart_7bit(self): # text encoded with umts-tools text = "Or walk with Kings - nor lose the common touch, if neither foes nor loving friends can hurt you, If all men count with you, but none too much; If you can fill the unforgiving minute With sixty seconds' worth of distance run, Yours is the Earth and everything thats in it, And - which is more - you will be a Man, my son" number = '363535333435363738'.decode('hex') expected = [ "005100098156355476F80000AAA00500038803019E72D03DCC5E83EE693A1AB44CBBCF73500BE47ECB41ECF7BC0CA2A3CBA0F1BBDD7EBB41F4777D8C6681D26690BB9CA6A3CB7290F95D9E83DC6F3988FDB6A7DD6790599E2EBBC973D038EC06A1EB723A28FFAEB340493328CC6683DA653768FCAEBBE9A07B9A8E06E5DF7516485CA783DC6F7719447FBF41EDFA18BD0325CDA0FCBB0E1A87DD", "005100098156355476F80000AAA005000388030240E6349B0DA2A3CBA0BADBFC969FD3F6B4FB0C6AA7DD757A19744DD3D1A0791A4FCF83E6E5F1DB4D9E9F40F7B79C8E06BDCD20727A4E0FBBC76590BCEE6681B2EFBA7C0E4ACF41747419540CCBE96850D84D0695ED65799E8E4EBBCF203A3A4C9F83D26E509ACE0205DD64500B7447A7C768507A0E6ABFE565500B947FD741F7349B0D129741", "005100098156355476F80000AA14050003880303C2A066D8CD02B5F3A0F9DB0D", ] sms = SmsSubmit(number, text) sms.ref = 0x0 sms.rand_id = 136 sms.validity = timedelta(days=4) ret = sms.to_pdu() cnt = len(ret) for i, pdu in enumerate(ret): self.assertEqual(pdu.pdu, expected[i]) self.assertEqual(pdu.seq, i + 1) self.assertEqual(pdu.cnt, cnt)
def test_encoding_multipart_7bit(self): # text encoded with umts-tools text = "Or walk with Kings - nor lose the common touch, if neither foes nor loving friends can hurt you, If all men count with you, but none too much; If you can fill the unforgiving minute With sixty seconds' worth of distance run, Yours is the Earth and everything thats in it, And - which is more - you will be a Man, my son" number = "655345678" expected = [ "005100098156355476F80000AAA00500038803019E72D03DCC5E83EE693A1AB44CBBCF73500BE47ECB41ECF7BC0CA2A3CBA0F1BBDD7EBB41F4777D8C6681D26690BB9CA6A3CB7290F95D9E83DC6F3988FDB6A7DD6790599E2EBBC973D038EC06A1EB723A28FFAEB340493328CC6683DA653768FCAEBBE9A07B9A8E06E5DF7516485CA783DC6F7719447FBF41EDFA18BD0325CDA0FCBB0E1A87DD", "005100098156355476F80000AAA005000388030240E6349B0DA2A3CBA0BADBFC969FD3F6B4FB0C6AA7DD757A19744DD3D1A0791A4FCF83E6E5F1DB4D9E9F40F7B79C8E06BDCD20727A4E0FBBC76590BCEE6681B2EFBA7C0E4ACF41747419540CCBE96850D84D0695ED65799E8E4EBBCF203A3A4C9F83D26E509ACE0205DD64500B7447A7C768507A0E6ABFE565500B947FD741F7349B0D129741", "005100098156355476F80000AA14050003880303C2A066D8CD02B5F3A0F9DB0D", ] sms = SmsSubmit(number, text) sms.ref = 0x0 sms.rand_id = 136 sms.validity = timedelta(days=4) ret = sms.to_pdu() cnt = len(ret) for i, pdu in enumerate(ret): self.assertEqual(pdu.pdu, expected[i]) self.assertEqual(pdu.seq, i + 1) self.assertEqual(pdu.cnt, cnt)
def test_encoding_multipart_7bit_egsm(self): # text encoded with umts-tools self.maxDiff = None text = '€' * 229 + 'x' number = binascii.unhexlify(b'363535333435363738').decode() expected = [ "005100098156355476F80000AAA005000388030136E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437", "005100098156355476F80000AAA0050003880302CA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA9BF2A6BC296FCA", "005100098156355476F80000AAA005000388030336E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE9437E54D7953DE94F1", ] sms = SmsSubmit(number, text) sms.ref = 0x0 sms.rand_id = 136 sms.validity = timedelta(days=4) ret = sms.to_pdu() cnt = len(ret) for i, pdu in enumerate(ret): self.assertEqual(pdu.pdu, expected[i]) self.assertEqual(pdu.seq, i + 1) self.assertEqual(pdu.cnt, cnt)