def test_encode_atom(self): """ Try an atom 'hello' """ data1 = etf.term_to_binary(Term.Atom('hello', encoding="latin-1")) expected1 = bytes([131, ord('d'), 0, 5, 104, 101, 108, 108, 111]) self.assertEqual(data1, expected1) data2 = etf.term_to_binary(Term.Atom('hello', encoding="utf8")) expected2 = bytes([131, ord('v'), 0, 5, 104, 101, 108, 108, 111]) self.assertEqual(data2, expected2)
def _control_message(self, ctrl, msg): """ Pack a control message and a regular message (can be None) together and send them over the connection """ if msg is None: packet = b'p' + etf.term_to_binary(ctrl) else: packet = b'p' + etf.term_to_binary(ctrl) + etf.term_to_binary(msg) self._send_packet4(packet)
def test_binary(self): """ Encode and decode binary immediately and compare results """ data1 = bytes([131, 109, 0, 0, 0, 1, 34]) (val1, tail) = etf.binary_to_term(data1) data2 = etf.term_to_binary(val1) self.assertEqual(data1, data2) self.assertEqual(tail, b'')
def test_float(self): """ Encode and decode immediately and compare results """ val1 = 1.234567901 data1 = etf.term_to_binary(val1) (val2, tail) = etf.binary_to_term(data1) self.assertEqual(val1, val2) self.assertEqual(tail, b'')
def test_encode_decode_ref(self): data1 = bytes([ 131, 114, 0, 3, 100, 0, 13, 101, 114, 108, 64, 49, 50, 55, 46, 48, 46, 48, 46, 49, 1, 0, 0, 1, 58, 0, 0, 0, 2, 0, 0, 0, 0 ]) (val1, tail) = etf.binary_to_term(data1) data2 = etf.term_to_binary(val1) self.assertEqual(data1, data2)
def test_binary_bits(self): """ Encode and decode binary bits immediately and compare results. Erlang value is: <<3:2>> """ data1 = bytes([131, 77, 0, 0, 0, 1, 2, 192]) ((val1, lbbits1), tail) = etf.binary_to_term(data1) data2 = etf.term_to_binary(BitString(val1, lbbits1)) self.assertEqual(data1, data2) self.assertEqual(tail, b'')
def test_encode_map(self): """ Try encode a map #{1 => 2} """ data = etf.term_to_binary({1: 2}) expected = bytes([131, 116, 0, 0, 0, 1, 97, 1, 97, 2]) self.assertEqual(data, expected)