def tearDownClass(cls): cls.test_server.stop() ads.close_port() if platform_is_linux(): ads.delete_route(cls.endpoint)
def tearDownClass(cls): cls.test_server.stop() # wait a bit for server to shutdown time.sleep(1) ads.close_port() if platform_is_linux(): ads.delete_route(cls.endpoint)
def setUpClass(cls): # Start dummy ADS Endpoint cls.test_server = AdsTestServer(logging=False) cls.test_server.start() # Endpoint AMS Address cls.endpoint = AmsAddr(TEST_SERVER_AMS_NET_ID, TEST_SERVER_AMS_PORT) # Open AMS Port ads.open_port() # wait a bit otherwise error might occur time.sleep(1) # NOTE: On a Windows machine, this route needs to be configured # within the router service for the tests to work. if platform_is_linux(): ads.add_route(cls.endpoint, TEST_SERVER_IP_ADDRESS)
def test_set_local_address(self): # type: () -> None """Test set_local_address function. Skip test on Windows as set_local_address is not supported for Windows. """ if platform_is_linux(): pyads.open_port() org_adr = pyads.get_local_address() self.assertIsNotNone(org_adr) org_netid = org_adr.netid # Set netid to specific value pyads.set_local_address("0.0.0.0.1.5") netid = pyads.get_local_address().netid self.assertEqual(netid, "0.0.0.0.1.5") # Change netid by String pyads.set_local_address("0.0.0.0.1.6") netid = pyads.get_local_address().netid self.assertEqual(netid, "0.0.0.0.1.6") # Change netid by Struct pyads.set_local_address(org_adr.netIdStruct()) netid = pyads.get_local_address().netid self.assertEqual(netid, org_netid) # Check raised error on short netid with self.assertRaises(ValueError): pyads.ads.set_local_address("1.2.3") # Check raised error on invalid netid with self.assertRaises(ValueError): pyads.set_local_address("1.2.3.a") # Check wrong netid datatype with self.assertRaises(AssertionError): pyads.set_local_address(123)
def test_correct_route(self): if platform_is_linux(): # Start receiving listener route_thread = threading.Thread(target=self.plc_route_receiver) route_thread.setDaemon(True) route_thread.start() time.sleep(1) # Try to set up a route with ourselves using all the optionals try: result = add_route_to_plc( self.SENDER_AMS, self.HOSTNAME, self.PLC_IP, self.USERNAME, self.PASSWORD, route_name=self.ROUTE_NAME, added_net_id=self.ADDING_AMS_ID, ) except: result = None self.assertTrue(result)