File: test_client_common.py

package info (click to toggle)
pymodbus 2.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,708 kB
  • sloc: python: 17,594; makefile: 84; sh: 8
file content (55 lines) | stat: -rw-r--r-- 2,650 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env python
import unittest
from pymodbus.client.common import ModbusClientMixin
from pymodbus.bit_read_message import *
from pymodbus.bit_write_message import *
from pymodbus.file_message import *
from pymodbus.register_read_message import *
from pymodbus.register_write_message import *

#---------------------------------------------------------------------------#
# Mocks
#---------------------------------------------------------------------------#
class MockClient(ModbusClientMixin):

    def execute(self, request):
        return request

#---------------------------------------------------------------------------#
# Fixture
#---------------------------------------------------------------------------#
class ModbusCommonClientTests(unittest.TestCase):

    #-----------------------------------------------------------------------#
    # Setup/TearDown
    #-----------------------------------------------------------------------#
    def setUp(self):
        '''
        Initializes the test environment and builds request/result
        encoding pairs
        '''
        self.client = MockClient()

    def tearDown(self):
        ''' Cleans up the test environment '''
        del self.client

    #-----------------------------------------------------------------------#
    # Tests
    #-----------------------------------------------------------------------#
    def testModbusClientMixinMethods(self):
        ''' This tests that the mixing returns the correct request object '''
        arguments = {
            'read_address': 1, 'read_count': 1,
            'write_address': 1, 'write_registers': 1
        }
        self.assertTrue(isinstance(self.client.read_coils(1,1), ReadCoilsRequest))
        self.assertTrue(isinstance(self.client.read_discrete_inputs(1,1), ReadDiscreteInputsRequest))
        self.assertTrue(isinstance(self.client.write_coil(1,True), WriteSingleCoilRequest))
        self.assertTrue(isinstance(self.client.write_coils(1,[True]), WriteMultipleCoilsRequest))
        self.assertTrue(isinstance(self.client.write_register(1,0x00), WriteSingleRegisterRequest))
        self.assertTrue(isinstance(self.client.write_registers(1,[0x00]), WriteMultipleRegistersRequest))
        self.assertTrue(isinstance(self.client.read_holding_registers(1,1), ReadHoldingRegistersRequest))
        self.assertTrue(isinstance(self.client.read_input_registers(1,1), ReadInputRegistersRequest))
        self.assertTrue(isinstance(self.client.readwrite_registers(**arguments), ReadWriteMultipleRegistersRequest))
        self.assertTrue(isinstance(self.client.mask_write_register(1,0,0), MaskWriteRegisterRequest))