17 from absl
import flags
18 from absl.testing
import absltest
21 from framework
import xds_k8s_testcase
23 logger = logging.getLogger(__name__)
24 flags.adopt_module_key_flags(xds_k8s_testcase)
27 _XdsTestServer = xds_k8s_testcase.XdsTestServer
28 _XdsTestClient = xds_k8s_testcase.XdsTestClient
30 _EXPECTED_STATUS = grpc.StatusCode.DATA_LOSS
36 with self.subTest(
'0_create_health_check'):
41 with self.subTest(
'1_create_backend_service'):
42 self.td.create_backend_service(locality_lb_policies=[{
45 'test.RpcBehaviorLoadBalancer',
47 f
'{{ "rpcBehavior": "error-code-{_EXPECTED_STATUS.value[0]}" }}'
51 with self.subTest(
'2_create_url_map'):
54 with self.subTest(
'3_create_target_proxy'):
57 with self.subTest(
'4_create_forwarding_rule'):
58 self.td.create_forwarding_rule(self.server_xds_port)
60 with self.subTest(
'5_start_test_server'):
61 test_server: _XdsTestServer = self.startTestServers()[0]
63 with self.subTest(
'6_add_server_backends_to_backend_service'):
64 self.setupServerBackends()
66 with self.subTest(
'7_start_test_client'):
67 test_client: _XdsTestClient = self.startTestClient(test_server)
69 with self.subTest(
'8_test_client_xds_config_exists'):
70 self.assertXdsConfigExists(test_client)
73 with self.subTest(
'9_test_server_returned_configured_status_code'):
74 self.assertRpcStatusCodes(test_client,
75 status_code=_EXPECTED_STATUS,
76 duration=datetime.timedelta(seconds=10),
80 if __name__ ==
'__main__':
81 absltest.main(failfast=
True)