def test_service_generate_file__no_match(self) -> None: """Test the service generate_file function. Uses a simple setup.""" self._config.namespace = 'n1' self._config.service = 's1' self._config.color = 'c1' self._config.data_store_exec = self._get_runnable_cmd( 0, validate_templates({ 'schema-version': 'v1', 'document-version': 'x', 'gateway-templates': [], 'service-templates': [{ 'namespace': 'n1', 'service': 's1', 'color': 'c1', 'index': 199, 'purpose': 'out-1.txt', 'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4', }], }) ) self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({ 'schema-version': 'v1', 'document-version': 'd12', 'namespaces': [], })) gateway = generate.GenerateServiceConfiguration(self._config) res = gateway.generate_file(3, 4) self.assertEqual(1, res)
def test_service_generate_file(self) -> None: """Test the service generate_file function. Uses a simple setup.""" self._config.namespace = 'n1' self._config.service = 's1' self._config.color = 'c1' self._config.data_store_exec = self._get_runnable_cmd( 0, validate_templates({ 'schema-version': 'v1', 'document-version': 'x', 'gateway-templates': [], 'service-templates': [{ 'namespace': 'n1', 'service': 's1', 'color': 'c1', 'index': 199, 'purpose': 'out-1.txt', 'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4', }, { 'namespace': 'n1', 'service': 's1', 'color': 'c1', 'index': 199, 'purpose': 'out-2.txt', 'template': 'z {{schema-version}} y', }], }) ) self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({ 'schema-version': 'v1', 'document-version': 'd12', 'namespaces': [{ 'namespace': 'n1', 'network-id': 'nk1', 'gateways': {'instances': [], 'prefer-gateway': True, 'protocol': 'http2'}, 'service-colors': [{ 'service': 's1', 'color': 'c1', 'index': 199, 'routes': [], 'instances': [], 'namespace-egress': [], }], }], })) gateway = generate.GenerateServiceConfiguration(self._config) gateway.generate_file(3, 4) out_file_1 = os.path.join(self._config.envoy_config_dir, 'out-1.txt') self.assertTrue(os.path.isfile(out_file_1)) out_file_2 = os.path.join(self._config.envoy_config_dir, 'out-2.txt') self.assertTrue(os.path.isfile(out_file_2)) with open(out_file_1, 'r') as f: self.assertEqual('1 v1 2 True 3 False 4', f.read()) with open(out_file_2, 'r') as f: self.assertEqual('z v1 y', f.read())
def _mk_templates( gateways: List[Dict[str, Any]], services: List[Dict[str, Any]], ) -> Dict[str, Any]: return validate_templates({ 'schema-version': 'v1', 'document-version': '1', 'gateway-templates': gateways, 'service-templates': services, })
def test_gateway_generate_file__with_error(self) -> None: """Test the gateway generate_file function that generates an error.""" self._config.namespace = 'n1' self._config.data_store_exec = self._get_runnable_cmd( 12, validate_templates({ 'schema-version': 'v1', 'document-version': 'x', 'service-templates': [], 'gateway-templates': [{ 'namespace': 'n1', 'purpose': 'out-1.txt', 'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4', }, { 'namespace': 'n1', 'purpose': 'out-2.txt', 'template': 'z {{schema-version}} y', }], }), ) self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({ 'schema-version': 'v1', 'document-version': 'd1', 'namespaces': [{ 'namespace': 'n1', 'network-id': 'nk1', 'gateways': {'instances': [], 'prefer-gateway': False, 'protocol': 'http1.1'}, 'service-colors': [{ 'service': 's1', 'color': 'c1', 'index': 12, 'routes': [], 'instances': [], 'namespace-egress': [], }], }], })) gateway = generate.GenerateGatewayConfiguration(self._config) res = gateway.generate_file(1, 2) self.assertEqual(1, res) out_file_1 = os.path.join(self._config.envoy_config_dir, 'out-1.txt') self.assertFalse(os.path.isfile(out_file_1)) out_file_2 = os.path.join(self._config.envoy_config_dir, 'out-2.txt') self.assertFalse(os.path.isfile(out_file_2))
def test_gateway_generate_file__no_match(self) -> None: """Test the gateway generate_file function when the proxy input is None.""" self._config.namespace = 'n1' self._config.data_store_exec = self._get_runnable_cmd( 0, validate_templates({ 'schema-version': 'v1', 'document-version': 'x', 'service-templates': [], 'gateway-templates': [{ 'namespace': 'n1', 'purpose': 'out-1.txt', 'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4', }], }), ) self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({ 'schema-version': 'v1', 'document-version': 'd1', 'namespaces': [], })) gateway = generate.GenerateGatewayConfiguration(self._config) res = gateway.generate_file(1, 2) self.assertEqual(1, res)