def test_build_packet_without_params(self): code = protocol.CMD content = 'no params' packet = protocol.build_packet(code, content) expected = protocol.DELIMITER.join([code, content, protocol.NULL ]) + protocol.EOF self.assertEqual(packet, expected.encode())
def test_file_download_packet_class(self): filename = 'foo.bar' packet = FileDownloadPacket(filename) self.assertIsNone(packet.content) self.assertEqual(packet.params, {'filename': filename}) self.assertEqual(build_packet(DOWNLOAD, params={'filename': filename}), bytes(packet))
def test_packet_class(self): content = 'bar' params = {'foo': 'baz'} packet = Packet(content=content, params=params) self.assertEqual(packet.content, content) self.assertEqual(packet.params, params) self.assertEqual(build_packet(CMD, content, params), packet.__bytes__())
def test_build_packet_without_content(self): code = protocol.CMD params = {'foo': 'bar'} qs_params = 'foo=bar' packet = protocol.build_packet(code, None, params) expected = protocol.DELIMITER.join([code, protocol.NULL, qs_params ]) + protocol.EOF self.assertEqual(packet, expected.encode())
def test_file_upload_packet_class(self): filename = os.path.abspath('tests/resources/foo.txt') with open(filename, 'rb') as buffer: content = buffer.read() packet = FileUploadPacket(filename) self.assertEqual(packet.content, content) self.assertEqual(packet.params, {'name': 'foo.txt'}) self.assertEqual(build_packet(UPLOAD, content, {'name': 'foo.txt'}), bytes(packet))
def test_build_packet_with_all_params(self): code = protocol.CMD content = 'test' params = {'foo': 'bar'} qs_params = 'foo=bar' packet = protocol.build_packet(code, content, params) expected = protocol.DELIMITER.join([code, content, qs_params ]) + protocol.EOF self.assertEqual(packet, expected.encode())
def test_file_upload_packet_with_non_unicode_char_class(self): filename = os.path.abspath('tests/resources/foo.txt') with open(filename, 'rb') as buffer: original = buffer.read() content = original + b'\x81' with open(filename, 'wb') as buffer: buffer.write(content) packet = FileUploadPacket(filename) self.assertEqual(build_packet(UPLOAD, content, {'name': 'foo.txt'}), packet.__bytes__()) with open(filename, 'wb') as buffer: buffer.write(original)
def test_packet_with_another_code_class(self): packet = Packet(code=UPLOAD) self.assertEqual(build_packet(UPLOAD, None), packet.__bytes__())
def test_null_packet_class(self): params = {'foo': 'baz'} packet = Packet(params=params) self.assertIsNone(packet.content) self.assertEqual(build_packet(CMD, None, params), packet.__bytes__())
def test_build_packet_with_invalid_code(self): with self.assertRaises(protocol.InvalidPacketCode): protocol.build_packet(protocol.ACK)
def test_build_packet_with_code(self): code = protocol.CMD packet = protocol.build_packet(code) excpeted = protocol.DELIMITER.join( [code, protocol.NULL, protocol.NULL]) + protocol.EOF self.assertEqual(packet, excpeted.encode())
def get_raw(self): """Get raw content to be sent over socket.""" return protocol.build_packet(self._code, content=self._content, params=self._params)