Exemplo n.º 1
0
 def setUp(self):
     self.tmp_dir = tempfile.mkdtemp()
     self.host = '127.0.0.1'
     databus = conpot_core.get_databus()
     databus.initialize('conpot/templates/default/template.xml')
     args = namedtuple('FakeArgs', 'mibpaths raw_mib')
     args.mibpaths = [self.tmp_dir]
     args.raw_mib = [self.tmp_dir]
     self.opc_server = OPCServer('conpot/templates/default/opc/opc.xml', 'none', args)
     self.server_greenlet = gevent.spawn(self.opc_server.start, self.host, 0)
     gevent.sleep(1)
     self.port = self.opc_server.get_port()
Exemplo n.º 2
0
class TestBase(unittest.TestCase):
    def setUp(self):
        self.tmp_dir = tempfile.mkdtemp()
        self.host = '127.0.0.1'
        databus = conpot_core.get_databus()
        databus.initialize('conpot/templates/default/template.xml')
        args = namedtuple('FakeArgs', 'mibpaths raw_mib')
        args.mibpaths = [self.tmp_dir]
        args.raw_mib = [self.tmp_dir]
        self.opc_server = OPCServer('conpot/templates/default/opc/opc.xml', 'none', args)
        self.server_greenlet = gevent.spawn(self.opc_server.start, self.host, 0)
        gevent.sleep(1)
        self.port = self.opc_server.get_port()

    def tearDown(self):
        shutil.rmtree(self.tmp_dir)

    def test_opc_get(self):
        """
        Objective: Test if we can get data via opc_get
        """
        client = opc_client.OPCClient(self.host, self.port)
        oid = ((1, 3, 6, 1, 2, 1, 1, 1, 0), None)
        client.get_command(oid, callback=self.mock_callback)
        self.assertEqual("Siemens, SIMATIC, S7-200", self.result)

    def test_opc_set(self):
        """
        Objective: Test if we can set data via opc_set
        """
        client = opc_client.OPCClient(self.host, self.port)
        # syslocation
        oid = ((1, 3, 6, 1, 2, 1, 1, 6, 0), rfc1902.OctetString('TESTVALUE'))
        client.set_command(oid, callback=self.mock_callback)
        databus = conpot_core.get_databus()
        self.assertEqual('TESTVALUE', databus.get_value('sysLocation'))

    def mock_callback(self, sendRequestHandle, errorIndication, errorStatus, errorIndex, varBindTable, cbCtx):
        self.result = None
        if errorIndication:
            self.result = errorIndication
        elif errorStatus:
            self.result = errorStatus.prettyPrint()
        else:
            for oid, val in varBindTable:
                self.result = val.prettyPrint()