Exemplo n.º 1
0
    def test_instruction_invalid_element_separator(self):
        """
        Instruction with invalid element separator.
        """
        instruction_str = '3args,8.hostname,4.port;'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 2
0
    def test_instruction_invalid_arg_separator(self):
        """
        Instruction with invalid arg separator.
        """
        instruction_str = '3.args8.hostname,4.port;'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 3
0
    def test_instruction_invalid_termination(self):
        """
        Instruction with invalid terminator.
        """
        instruction_str = '4.args,8.hostname,4.port'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 4
0
    def test_instruction_invalid_arg_length_large(self):
        """
        Instruction with invalid large arg length.
        """
        instruction_str = '1000.args,8.hostname,4.port;'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 5
0
    def test_instruction_invalid_arg_separator(self):
        """
        Instruction with invalid arg separator.
        """
        instruction_str = '3.args8.hostname,4.port;'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 6
0
    def test_instruction_invalid_arg_length_large(self):
        """
        Instruction with invalid large arg length.
        """
        instruction_str = '1000.args,8.hostname,4.port;'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 7
0
    def test_instruction_invalid_element_separator(self):
        """
        Instruction with invalid element separator.
        """
        instruction_str = '3args,8.hostname,4.port;'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 8
0
    def test_instruction_invalid_termination(self):
        """
        Instruction with invalid terminator.
        """
        instruction_str = '4.args,8.hostname,4.port'

        with self.assertRaises(InvalidInstruction):
            Instruction.load(instruction_str)
Exemplo n.º 9
0
    def test_instruction_valid_decode(self):
        """
        Test valid instruction decoding.
        """
        instruction_str = '4.args,8.hostname,4.port,4.1984;'

        instruction_opcode = 'args'
        instruction_args = ('hostname', 'port', '1984')

        instruction = Instruction.load(instruction_str)

        self.assertEqual(instruction_str, instruction.encode())
        self.assertEqual(instruction_opcode, instruction.opcode)
        self.assertEqual(instruction_args, instruction.args)
Exemplo n.º 10
0
    def test_instruction_valid_decode(self):
        """
        Test valid instruction decoding.
        """
        instruction_str = '4.args,8.hostname,4.port,4.1984;'

        instruction_opcode = 'args'
        instruction_args = ('hostname', 'port', '1984')

        instruction = Instruction.load(instruction_str)

        self.assertEqual(instruction_str, instruction.encode())
        self.assertEqual(instruction_opcode, instruction.opcode)
        self.assertEqual(instruction_args, instruction.args)
Exemplo n.º 11
0
    def test_instruction_valid_decode_with_protocol_chars(self):
        """
        Test valid instruction decoding with arg containing
        protocol characters.
        """
        # arg includes ARG_SEP, ELEM_SEP, INST_TERM and a white space.
        arg_protocol_chars = 'p,.; t'
        instruction_str = '4.args,8.hostname,%s.%s;' %\
            (len(arg_protocol_chars), arg_protocol_chars)

        instruction_opcode = 'args'
        instruction_args = ('hostname', arg_protocol_chars)

        instruction = Instruction.load(instruction_str)

        self.assertEqual(instruction_str, instruction.encode())
        self.assertEqual(instruction_opcode, instruction.opcode)
        self.assertEqual(instruction_args, instruction.args)
Exemplo n.º 12
0
    def test_instruction_valid_decode_with_protocol_chars(self):
        """
        Test valid instruction decoding with arg containing
        protocol characters.
        """
        # arg includes ARG_SEP, ELEM_SEP, INST_TERM and a white space.
        arg_protocol_chars = 'p,.; t'
        instruction_str = '4.args,8.hostname,%s.%s;' %\
            (len(arg_protocol_chars), arg_protocol_chars)

        instruction_opcode = 'args'
        instruction_args = ('hostname', arg_protocol_chars)

        instruction = Instruction.load(instruction_str)

        self.assertEqual(instruction_str, instruction.encode())
        self.assertEqual(instruction_opcode, instruction.opcode)
        self.assertEqual(instruction_args, instruction.args)
Exemplo n.º 13
0
    def test_instruction_valid_decode_unicode(self):
        """
        Test valid instruction decoding with unicode characters.
        """
        # messing up by passing unicode instruction (with valid arg length!)
        instruction_str_u = u'4.args,8.hostname,%s.%s;' %\
            (self.u_arg_len, self.u_arg)

        # instruction str for validation!
        instruction_str = '4.args,8.hostname,%s.%s;' %\
            (self.u_arg_len, self.u_arg_utf8)

        instruction_opcode = 'args'
        instruction_args = ('hostname', self.u_arg_utf8)

        # Instruction.load should handle unicode string!
        instruction = Instruction.load(instruction_str_u)

        self.assertEqual(instruction_str, instruction.encode())
        self.assertEqual(instruction_opcode, instruction.opcode)
        self.assertEqual(instruction_args, instruction.args)
Exemplo n.º 14
0
    def test_instruction_valid_decode_unicode(self):
        """
        Test valid instruction decoding with unicode characters.
        """
        # messing up by passing unicode instruction (with valid arg length!)
        instruction_str_u = u'4.args,8.hostname,%s.%s;' %\
            (self.u_arg_len, self.u_arg)

        # instruction str for validation!
        instruction_str = '4.args,8.hostname,%s.%s;' %\
            (self.u_arg_len, self.u_arg_utf8)

        instruction_opcode = 'args'
        instruction_args = ('hostname', self.u_arg_utf8)

        # Instruction.load should handle unicode string!
        instruction = Instruction.load(instruction_str_u)

        self.assertEqual(instruction_str, instruction.encode())
        self.assertEqual(instruction_opcode, instruction.opcode)
        self.assertEqual(instruction_args, instruction.args)
Exemplo n.º 15
0
 def read_instruction(self):
     """
     Read and decode instruction.
     """
     self.logger.debug('Reading instruction.')
     return Instruction.load(self.receive())
Exemplo n.º 16
0
 def read_instruction(self):
     """
     Read and decode instruction.
     """
     self.logger.debug('Reading instruction.')
     return Instruction.load(self.receive())