Загрузка данных
...
[INFO] 2026-09-29 12:13:11.085000 subprocess_client.py [RUN] Выполняю команду: ssh [MASKED]@10.7.49.209 "timeout 5 bash -c 'cat < /dev/null > /dev/tcp/yyyyy-yyyyyyyyy.xx.xxxxx.xx/10521' && echo OK || echo FAIL"
[INFO] 2026-09-29 12:13:11.592000 subprocess_client.py [RUN] [OK] Команда выполнена успешно: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/yyyyy-yyyyyyyyy.xx.xxxxx.xx/10521' && echo OK || echo FAIL
[INFO] 2026-09-29 12:13:11.592000 stand_setup_manager.py [SETUP] [OK] OPC сервер yyyyy-yyyyyyyyy.xx.xxxxx.xx:10521 доступен
[INFO] 2026-09-29 12:13:11.592000 subprocess_client.py [POPEN] выполняю команду: ssh -N -L 10521:yyyyy-yyyyyyyyy.xx.xxxxx.xx:10521 [MASKED]@10.7.49.209
[INFO] 2026-09-29 12:13:16.598000 subprocess_client.py [RUN] Выполняю команду: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/10521' && echo OK || echo FAIL
[INFO] 2026-09-29 12:13:16.608000 subprocess_client.py [RUN] [OK] Команда выполнена успешно: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/10521' && echo OK || echo FAIL
[INFO] 2026-09-29 12:13:16.608000 stand_setup_manager.py [SETUP] [OK] OPC SSH-туннель поднят: localhost:10521 -> yyyyy-yyyyyyyyy.xx.xxxxx.xx:10521
...
и делее для каждого теста одно и то же:
[INFO] 2026-09-29 12:21:24.800000 client.py connect (auto_reconnect=None)
[INFO] 2026-09-29 12:21:24.801000 ua_client.py opening connection
[INFO] 2026-09-29 12:21:24.815000 connection.py updating client limits to: TransportLimits(max_recv_buffer=65535, max_send_buffer=65535, max_chunk_count=0, max_message_size=0)
[INFO] 2026-09-29 12:21:24.815000 ua_client.py open_secure_channel
[INFO] 2026-09-29 12:21:24.822000 ua_session.py create_session
[INFO] 2026-09-29 12:21:24.856000 client.py find_endpoint [EndpointDescription(EndpointUrl='opc.tcp://yyyyy-yyyyyyyyy:10521', Server=ApplicationDescription(ApplicationUri='...:...:..-scada:opc-ua:server', ProductUri=None, ApplicationName=LocalizedText(Locale=None, Text=None), ApplicationType=<ApplicationType.Server: 0>, GatewayServerUri=None, DiscoveryProfileUri=None, DiscoveryUrls=None), ServerCertificate=None, SecurityMode=<MessageSecurityMode.None_: 1>, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#None', UserIdentityTokens=[UserTokenPolicy(PolicyId='anonymous', TokenType=<UserTokenType.Anonymous: 0>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri=None), UserTokenPolicy(PolicyId='username', TokenType=<UserTokenType.UserName: 1>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256'), UserTokenPolicy(PolicyId='certificate', TokenType=<UserTokenType.Certificate: 2>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256')], TransportProfileUri='http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary', SecurityLevel=32), EndpointDescription(EndpointUrl='opc.tcp://10.7.49.210:10521', Server=ApplicationDescription(ApplicationUri='...:...:.-scada:opc-ua:server', ProductUri=None, ApplicationName=LocalizedText(Locale=None, Text=None), ApplicationType=<ApplicationType.Server: 0>, GatewayServerUri=None, DiscoveryProfileUri=None, DiscoveryUrls=None), ServerCertificate=None, SecurityMode=<MessageSecurityMode.None_: 1>, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#None', UserIdentityTokens=[UserTokenPolicy(PolicyId='anonymous', TokenType=<UserTokenType.Anonymous: 0>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri=None), UserTokenPolicy(PolicyId='username', TokenType=<UserTokenType.UserName: 1>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256'), UserTokenPolicy(PolicyId='certificate', TokenType=<UserTokenType.Certificate: 2>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256')], TransportProfileUri='http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary', SecurityLevel=32), EndpointDescription(EndpointUrl='opc.tcp://127.0.0.1:10521', Server=ApplicationDescription(ApplicationUri='...:...:..-scada:opc-ua:server', ProductUri=None, ApplicationName=LocalizedText(Locale=None, Text=None), ApplicationType=<ApplicationType.Server: 0>, GatewayServerUri=None, DiscoveryProfileUri=None, DiscoveryUrls=None), ServerCertificate=None, SecurityMode=<MessageSecurityMode.None_: 1>, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#None', UserIdentityTokens=[UserTokenPolicy(PolicyId='anonymous', TokenType=<UserTokenType.Anonymous: 0>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri=None), UserTokenPolicy(PolicyId='username', TokenType=<UserTokenType.UserName: 1>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256'), UserTokenPolicy(PolicyId='certificate', TokenType=<UserTokenType.Certificate: 2>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256')], TransportProfileUri='http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary', SecurityLevel=32)] <MessageSecurityMode.None_: 1> 'http://opcfoundation.org/UA/SecurityPolicy#None'
[WARNING] 2026-09-29 12:21:24.857000 client.py Requested session timeout to be 3600000ms, got 120000ms instead
[INFO] 2026-09-29 12:21:24.857000 ua_session.py activate_session
[INFO] 2026-09-29 12:21:24.860000 opc_ua_client.py [OPC] [OK] Подключено к opc.tcp://localhost:10521
FAILED
------------------------------ live log teardown -------------------------------
[INFO] 2026-09-29 12:21:25.009000 client.py disconnect
[INFO] 2026-09-29 12:21:25.010000 ua_session.py close_session
[INFO] 2026-09-29 12:21:25.015000 ua_client.py close_secure_channel
[INFO] 2026-09-29 12:21:25.016000 ua_client.py Request to close socket received
[INFO] 2026-09-29 12:21:25.016000 ua_client.py Socket has closed connection
tests/test_output_signal_imitation.py::TestOutputSignalImitation::test_imitate_leak_coordinate[OutputSignalImitation_tn3]
-------------------------------- live log setup --------------------------------
[INFO] 2026-09-29 12:21:54.725000 client.py connect (auto_reconnect=None)
[INFO] 2026-09-29 12:21:54.725000 ua_client.py opening connection
[INFO] 2026-09-29 12:21:54.736000 connection.py updating client limits to: TransportLimits(max_recv_buffer=65535, max_send_buffer=65535, max_chunk_count=0, max_message_size=0)
[INFO] 2026-09-29 12:21:54.736000 ua_client.py open_secure_channel
[INFO] 2026-09-29 12:21:54.739000 ua_session.py create_session
[INFO] 2026-09-29 12:21:54.753000 client.py find_endpoint [EndpointDescription(EndpointUrl='opc.tcp://...:10521', Server=ApplicationDescription(ApplicationUri='...:...:..-scada:opc-ua:server', ProductUri=None, ApplicationName=LocalizedText(Locale=None, Text=None), ApplicationType=<ApplicationType.Server: 0>, GatewayServerUri=None, DiscoveryProfileUri=None, DiscoveryUrls=None), ServerCertificate=None, SecurityMode=<MessageSecurityMode.None_: 1>, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#None', UserIdentityTokens=[UserTokenPolicy(PolicyId='anonymous', TokenType=<UserTokenType.Anonymous: 0>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri=None), UserTokenPolicy(PolicyId='username', TokenType=<UserTokenType.UserName: 1>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256'), UserTokenPolicy(PolicyId='certificate', TokenType=<UserTokenType.Certificate: 2>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256')], TransportProfileUri='http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary', SecurityLevel=32), EndpointDescription(EndpointUrl='opc.tcp://10.7.49.210:10521', Server=ApplicationDescription(ApplicationUri='...:...:..-scada:opc-ua:server', ProductUri=None, ApplicationName=LocalizedText(Locale=None, Text=None), ApplicationType=<ApplicationType.Server: 0>, GatewayServerUri=None, DiscoveryProfileUri=None, DiscoveryUrls=None), ServerCertificate=None, SecurityMode=<MessageSecurityMode.None_: 1>, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#None', UserIdentityTokens=[UserTokenPolicy(PolicyId='anonymous', TokenType=<UserTokenType.Anonymous: 0>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri=None), UserTokenPolicy(PolicyId='username', TokenType=<UserTokenType.UserName: 1>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256'), UserTokenPolicy(PolicyId='certificate', TokenType=<UserTokenType.Certificate: 2>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256')], TransportProfileUri='http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary', SecurityLevel=32), EndpointDescription(EndpointUrl='opc.tcp://127.0.0.1:10521', Server=ApplicationDescription(ApplicationUri='...:...:..-scada:opc-ua:server', ProductUri=None, ApplicationName=LocalizedText(Locale=None, Text=None), ApplicationType=<ApplicationType.Server: 0>, GatewayServerUri=None, DiscoveryProfileUri=None, DiscoveryUrls=None), ServerCertificate=None, SecurityMode=<MessageSecurityMode.None_: 1>, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#None', UserIdentityTokens=[UserTokenPolicy(PolicyId='anonymous', TokenType=<UserTokenType.Anonymous: 0>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri=None), UserTokenPolicy(PolicyId='username', TokenType=<UserTokenType.UserName: 1>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256'), UserTokenPolicy(PolicyId='certificate', TokenType=<UserTokenType.Certificate: 2>, IssuedTokenType=None, IssuerEndpointUrl=None, SecurityPolicyUri='http://opcfoundation.org/UA/SecurityPolicy#Basic256')], TransportProfileUri='http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary', SecurityLevel=32)] <MessageSecurityMode.None_: 1> 'http://opcfoundation.org/UA/SecurityPolicy#None'
[WARNING] 2026-09-29 12:21:54.753000 client.py Requested session timeout to be 3600000ms, got 120000ms instead
[INFO] 2026-09-29 12:21:54.753000 ua_session.py activate_session
[INFO] 2026-09-29 12:21:54.757000 opc_ua_client.py [OPC] [OK] Подключено к opc.tcp://localhost:10521
FAILED
------------------------------ live log teardown -------------------------------
[INFO] 2026-09-29 12:21:54.797000 client.py disconnect
[INFO] 2026-09-29 12:21:54.798000 ua_session.py close_session
[INFO] 2026-09-29 12:21:54.801000 ua_client.py close_secure_channel
[INFO] 2026-09-29 12:21:54.801000 ua_client.py Request to close socket received
[INFO] 2026-09-29 12:21:54.802000 ua_client.py Socket has closed connection
tests/test_output_signal_imitation.py::TestOutputSignalImitation::test_imitate_leak_volume[OutputSignalImitation_tn3]
и далее фейлы:
=================================== FAILURES ===================================
____ TestOutputSignalImitation.test_imitate_leak[OutputSignalImitation_tn3] ____
self = <test_output_signal_imitation.TestOutputSignalImitation object at 0x7faa09764880>
opc_client = <clients.opc_ua_client.OpcUaClient object at 0x7faa09787dc0>
config = OutputSignalImitationConfig(ost_name='CHTN', suite_name='OutputSignalImitation_tn3', suite_data_id=50, archive_name='O...'0', offset=10, skip_reason=None), imitate_free_flow_test=CaseMarkers(test_case_id='0', offset=10.5, skip_reason=None))
@pytest.mark.asyncio
async def test_imitate_leak(self, opc_client: OpcUaClient, config: OutputSignalImitationConfig) -> None:
> await self._imitate(opc_client, config, OutputSignalType.LEAK)
tests/test_output_signal_imitation.py:63:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_output_signal_imitation.py:59: in _imitate
await scenarios.imitate_output_signal(opc_client, config, case)
test_scenarios/output_signal_imitation_scenarios.py:42: in imitate_output_signal
before_dv = await opc_client.read_data_value(node_id)
clients/opc_ua_client.py:96: in read_data_value
return await self._client.get_node(node_id).read_data_value()
.venv/lib/python3.10/site-packages/asyncua/common/node.py:232: in read_data_value
return await self.read_attribute(ua.AttributeIds.Value, None, raise_on_bad_status)
.venv/lib/python3.10/site-packages/asyncua/common/node.py:363: in read_attribute
res.StatusCode.check()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = StatusCode(value=2150694912)
def check(self) -> None:
"""
Raises an exception if the status code is anything else than 0 (good).
"""
if not self.is_good():
> raise UaStatusCodeError(self.value)
E asyncua.ua.uaerrors._auto.BadNoCommunication: Communication with the data source is defined, but not established, and there is no last known value available.(BadNoCommunication)
.venv/lib/python3.10/site-packages/asyncua/ua/uatypes.py:394: BadNoCommunication