Properly cleanup after running the FTS test cases.
parent
fe6e4686a2
commit
bd04cfaaa8
|
@ -53,7 +53,7 @@ class FDWDAddTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database and
|
||||
drop added extension."""
|
||||
"""This function delete the FDW and disconnect the test database """
|
||||
fdw_utils.delete_fdw(self.server, self.db_name, self.data["name"])
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -55,7 +55,7 @@ class FDWDGetTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database and drop added extension
|
||||
and dependant objects."""
|
||||
"""This function delete the FDW and disconnect the test database """
|
||||
fdw_utils.delete_fdw(self.server, self.db_name, self.fdw_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -35,7 +35,7 @@ class FDWDPutTestCase(BaseTestGenerator):
|
|||
self.db_id = self.schema_data['db_id']
|
||||
self.db_name = parent_node_dict["database"][-1]["db_name"]
|
||||
self.schema_name = self.schema_data['schema_name']
|
||||
self.fdw_name = "fdw_put_%s".format(str(uuid.uuid4())[1:6])
|
||||
self.fdw_name = "fdw_put_{0}".format(str(uuid.uuid4())[1:6])
|
||||
self.fdw_id = fdw_utils.create_fdw(self.server, self.db_name,
|
||||
self.fdw_name)
|
||||
|
||||
|
@ -65,7 +65,7 @@ class FDWDPutTestCase(BaseTestGenerator):
|
|||
self.assertEquals(put_response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database and drop added extension
|
||||
and dependant objects."""
|
||||
"""This function delete the FDW and disconnect the test database """
|
||||
fdw_utils.delete_fdw(self.server, self.db_name, self.fdw_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -108,3 +108,26 @@ def verify_fdw(server, db_name, fdw_name):
|
|||
return fdw
|
||||
except Exception:
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
|
||||
def delete_fdw(server, db_name, fdw_name):
|
||||
"""
|
||||
This function delete FDW.
|
||||
:param server: server details
|
||||
:type server: dict
|
||||
:param db_name: database name
|
||||
:type db_name: str
|
||||
:param fdw_name: fdw name to be deleted
|
||||
:type fdw_name: str
|
||||
:return: None
|
||||
"""
|
||||
connection = get_db_connection(db_name,
|
||||
server['username'],
|
||||
server['db_password'],
|
||||
server['host'],
|
||||
server['port'],
|
||||
server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("DROP FOREIGN DATA WRAPPER %s" % fdw_name)
|
||||
connection.commit()
|
||||
connection.close()
|
||||
|
|
|
@ -16,6 +16,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas. \
|
|||
fts_parser.tests import utils as fts_parser_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.schemas.tests import \
|
||||
utils as schema_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.schemas \
|
||||
.fts_configurations.tests import utils as fts_config_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.tests import \
|
||||
utils as database_utils
|
||||
from pgadmin.utils.route import BaseTestGenerator
|
||||
|
@ -42,11 +44,8 @@ class FTSConfiguraionAddTestCase(BaseTestGenerator):
|
|||
self.db_id = schema_data['db_id']
|
||||
self.db_name = parent_node_dict["database"][-1]["db_name"]
|
||||
self.fts_parser_name = "fts_parser_%s" % str(uuid.uuid4())[1:4]
|
||||
|
||||
self.fts_parser_id = fts_parser_utils.create_fts_parser(self.server,
|
||||
self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_parser_name)
|
||||
self.fts_parser_id = fts_parser_utils.create_fts_parser(
|
||||
self.server, self.db_name, self.schema_name, self.fts_parser_name)
|
||||
|
||||
def runTest(self):
|
||||
""" This function will add new FTS configuration under test schema. """
|
||||
|
@ -65,9 +64,10 @@ class FTSConfiguraionAddTestCase(BaseTestGenerator):
|
|||
if not schema_response:
|
||||
raise Exception("Could not find the schema.")
|
||||
|
||||
self.fts_conf_name = "fts_conf_%s" % str(uuid.uuid4())[1:4]
|
||||
data = \
|
||||
{
|
||||
"name": "fts_conf_%s" % str(uuid.uuid4())[1:4],
|
||||
"name": self.fts_conf_name,
|
||||
"owner": self.server["username"],
|
||||
"prsname": "%s.%s" % (self.schema_name, self.fts_parser_name),
|
||||
"schema": self.schema_id,
|
||||
|
@ -84,7 +84,10 @@ class FTSConfiguraionAddTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_config and disconnect the test
|
||||
database."""
|
||||
fts_config_utils.delete_fts_configurations(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_conf_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -15,6 +15,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas.tests import \
|
|||
utils as schema_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.tests import \
|
||||
utils as database_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.schemas \
|
||||
.fts_configurations.tests import utils as fts_config_utils
|
||||
from pgadmin.utils.route import BaseTestGenerator
|
||||
from regression import parent_node_dict
|
||||
from regression.python_test_utils import test_utils as utils
|
||||
|
@ -45,7 +47,8 @@ class FTSConfGetTestCase(BaseTestGenerator):
|
|||
self.server, self.db_name, self.schema_name, self.fts_conf_name)
|
||||
|
||||
def runTest(self):
|
||||
""" This function will fetch new FTS configuration under test schema. """
|
||||
""" This function will fetch new FTS configuration under test schema.
|
||||
"""
|
||||
|
||||
db_con = database_utils.connect_database(self,
|
||||
utils.SERVER_GROUP,
|
||||
|
@ -61,17 +64,21 @@ class FTSConfGetTestCase(BaseTestGenerator):
|
|||
if not schema_response:
|
||||
raise Exception("Could not find the schema.")
|
||||
|
||||
get_response = self.tester.get(self.url + str(utils.SERVER_GROUP) + '/' +
|
||||
str(self.server_id) + '/' +
|
||||
str(self.db_id) + '/' +
|
||||
str(self.schema_id) + '/' +
|
||||
str(self.fts_conf_id),
|
||||
content_type='html/json')
|
||||
get_response = self.tester.get(
|
||||
self.url + str(utils.SERVER_GROUP) + '/' +
|
||||
str(self.server_id) + '/' +
|
||||
str(self.db_id) + '/' +
|
||||
str(self.schema_id) + '/' +
|
||||
str(self.fts_conf_id),
|
||||
content_type='html/json')
|
||||
|
||||
self.assertEquals(get_response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_config and disconnect the test
|
||||
database."""
|
||||
fts_config_utils.delete_fts_configurations(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_conf_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -16,6 +16,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas.tests import \
|
|||
utils as schema_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.tests import \
|
||||
utils as database_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.schemas \
|
||||
.fts_configurations.tests import utils as fts_config_utils
|
||||
from pgadmin.utils.route import BaseTestGenerator
|
||||
from regression import parent_node_dict
|
||||
from regression.python_test_utils import test_utils as utils
|
||||
|
@ -87,7 +89,10 @@ class FTSConfPutTestCase(BaseTestGenerator):
|
|||
self.assertEquals(put_response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_config and disconnect the test
|
||||
database."""
|
||||
fts_config_utils.delete_fts_configurations(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_conf_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -83,3 +83,29 @@ def verify_fts_configuration(server, db_name, fts_conf_name):
|
|||
return fts_conf
|
||||
except Exception:
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
|
||||
def delete_fts_configurations(server, db_name, schema_name, fts_conf_name):
|
||||
"""
|
||||
This function delete FTS configuration.
|
||||
:param server: server details
|
||||
:type server: dict
|
||||
:param db_name: database name
|
||||
:type db_name: str
|
||||
:param fts_conf_name: FTS configuration name to be added
|
||||
:type fts_conf_name: str
|
||||
:param schema_name: schema name
|
||||
:type schema_name: str
|
||||
:return: None
|
||||
"""
|
||||
connection = get_db_connection(db_name,
|
||||
server['username'],
|
||||
server['db_password'],
|
||||
server['host'],
|
||||
server['port'],
|
||||
server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("DROP TEXT SEARCH CONFIGURATION %s.%s" % (schema_name,
|
||||
fts_conf_name))
|
||||
connection.commit()
|
||||
connection.close()
|
||||
|
|
|
@ -16,6 +16,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas.tests import \
|
|||
utils as schema_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.tests import \
|
||||
utils as database_utils
|
||||
from pgadmin.browser.server_groups.servers.databases.schemas \
|
||||
.fts_dictionaries.tests import utils as fts_dict_utils
|
||||
from pgadmin.utils.route import BaseTestGenerator
|
||||
from regression import parent_node_dict
|
||||
from regression.python_test_utils import test_utils as utils
|
||||
|
@ -52,10 +54,10 @@ class FtsDictionaryAddTestCase(BaseTestGenerator):
|
|||
self.schema_name)
|
||||
if not schema_response:
|
||||
raise Exception("Could not find the schema.")
|
||||
|
||||
self.fts_dict_name = "fts_dict_%s" % str(uuid.uuid4())[1:4]
|
||||
data = \
|
||||
{
|
||||
"name": "fts_dict_%s" % str(uuid.uuid4())[1:4],
|
||||
"name": self.fts_dict_name,
|
||||
"options": [
|
||||
{
|
||||
"value": "synonym_sample",
|
||||
|
@ -77,7 +79,10 @@ class FtsDictionaryAddTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts dictionaries and disconnect the test
|
||||
database."""
|
||||
fts_dict_utils.delete_fts_dictionaries(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_dict_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -47,7 +47,8 @@ class FtsDictionaryGetTestCase(BaseTestGenerator):
|
|||
self.fts_dict_name)
|
||||
|
||||
def runTest(self):
|
||||
""" This function will fetch new FTS dictionaries under test schema. """
|
||||
""" This function will fetch new FTS dictionaries under test schema.
|
||||
"""
|
||||
db_con = database_utils.connect_database(self,
|
||||
utils.SERVER_GROUP,
|
||||
self.server_id,
|
||||
|
@ -72,7 +73,10 @@ class FtsDictionaryGetTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts dictionaries and disconnect the test
|
||||
database."""
|
||||
fts_dict_utils.delete_fts_dictionaries(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_dict_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -48,7 +48,8 @@ class FtsDictionaryPutTestCase(BaseTestGenerator):
|
|||
self.fts_dict_name)
|
||||
|
||||
def runTest(self):
|
||||
""" This function will update FTS dictionary present under test schema. """
|
||||
""" This function will update FTS dictionary present under test schema.
|
||||
"""
|
||||
|
||||
db_con = database_utils.connect_database(self,
|
||||
utils.SERVER_GROUP,
|
||||
|
@ -89,7 +90,10 @@ class FtsDictionaryPutTestCase(BaseTestGenerator):
|
|||
self.assertEquals(put_response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts dictionaries and disconnect the test
|
||||
database."""
|
||||
fts_dict_utils.delete_fts_dictionaries(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_dict_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -82,3 +82,29 @@ def verify_fts_dict(server, db_name, fts_dict_name):
|
|||
return fts_dict
|
||||
except Exception:
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
|
||||
def delete_fts_dictionaries(server, db_name, schema_name, fts_dict_name):
|
||||
"""
|
||||
This function delete FTS dictionaries.
|
||||
:param server: server details
|
||||
:type server: dict
|
||||
:param db_name: database name
|
||||
:type db_name: str
|
||||
:param fts_dict_name: FTS dict name to be added
|
||||
:type fts_dict_name: str
|
||||
:param schema_name: schema name
|
||||
:type schema_name: str
|
||||
:return: None
|
||||
"""
|
||||
connection = get_db_connection(db_name,
|
||||
server['username'],
|
||||
server['db_password'],
|
||||
server['host'],
|
||||
server['port'],
|
||||
server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("DROP TEXT SEARCH DICTIONARY %s.%s" % (schema_name,
|
||||
fts_dict_name))
|
||||
connection.commit()
|
||||
connection.close()
|
||||
|
|
|
@ -19,6 +19,7 @@ from pgadmin.browser.server_groups.servers.databases.tests import \
|
|||
from pgadmin.utils.route import BaseTestGenerator
|
||||
from regression import parent_node_dict
|
||||
from regression.python_test_utils import test_utils as utils
|
||||
from . import utils as fts_parser_utils
|
||||
|
||||
|
||||
class FtsParserAddTestCase(BaseTestGenerator):
|
||||
|
@ -52,9 +53,10 @@ class FtsParserAddTestCase(BaseTestGenerator):
|
|||
if not schema_response:
|
||||
raise Exception("Could not find the schema.")
|
||||
|
||||
self.fts_parser_name = "fts_parser_%s" % str(uuid.uuid4())[1:4]
|
||||
self.data = \
|
||||
{
|
||||
"name": "fts_parser_%s" % str(uuid.uuid4())[1:4],
|
||||
"name": self.fts_parser_name,
|
||||
"schema": self.schema_id,
|
||||
"prsend": "prsd_end",
|
||||
"prsheadline": "prsd_headline",
|
||||
|
@ -73,7 +75,10 @@ class FtsParserAddTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_parser and disconnect the test
|
||||
database."""
|
||||
fts_parser_utils.delete_fts_parser(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_parser_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -71,7 +71,10 @@ class FtsParserGetTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_parser and disconnect the test
|
||||
database."""
|
||||
fts_parser_utils.delete_fts_parser(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_parser_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -88,7 +88,10 @@ class FtsParserPutTestCase(BaseTestGenerator):
|
|||
self.assertEquals(put_response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_parser and disconnect the test
|
||||
database."""
|
||||
fts_parser_utils.delete_fts_parser(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_parser_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -86,3 +86,29 @@ def verify_fts_parser(server, db_name, fts_parser_name):
|
|||
return fts_parser
|
||||
except Exception:
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
|
||||
def delete_fts_parser(server, db_name, schema_name, fts_parser_name):
|
||||
"""
|
||||
This function delete FTS parsers.
|
||||
:param server: server details
|
||||
:type server: dict
|
||||
:param db_name: database name
|
||||
:type db_name: str
|
||||
:param fts_parser_name: FTS parser name to be added
|
||||
:type fts_parser_name: str
|
||||
:param schema_name: schema name
|
||||
:type schema_name: str
|
||||
:return: None
|
||||
"""
|
||||
connection = get_db_connection(db_name,
|
||||
server['username'],
|
||||
server['db_password'],
|
||||
server['host'],
|
||||
server['port'],
|
||||
server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("DROP TEXT SEARCH PARSER %s.%s" % (
|
||||
schema_name, fts_parser_name))
|
||||
connection.commit()
|
||||
connection.close()
|
||||
|
|
|
@ -19,6 +19,7 @@ from pgadmin.browser.server_groups.servers.databases.tests import \
|
|||
from pgadmin.utils.route import BaseTestGenerator
|
||||
from regression import parent_node_dict
|
||||
from regression.python_test_utils import test_utils as utils
|
||||
from . import utils as fts_temp_utils
|
||||
|
||||
|
||||
class FtsTemplateAddTestCase(BaseTestGenerator):
|
||||
|
@ -26,7 +27,8 @@ class FtsTemplateAddTestCase(BaseTestGenerator):
|
|||
|
||||
scenarios = [
|
||||
# Fetching default URL for FTS template node.
|
||||
('Fetch FTS templates Node URL', dict(url='/browser/fts_template/obj/'))
|
||||
(
|
||||
'Fetch FTS templates Node URL', dict(url='/browser/fts_template/obj/'))
|
||||
]
|
||||
|
||||
def runTest(self):
|
||||
|
@ -54,9 +56,10 @@ class FtsTemplateAddTestCase(BaseTestGenerator):
|
|||
if not schema_response:
|
||||
raise Exception("Could not find the schema.")
|
||||
|
||||
self.fts_template_name = "fts_temp_%s" % str(uuid.uuid4())[1:4]
|
||||
self.data = \
|
||||
{
|
||||
"name": "fts_temp_%s" % str(uuid.uuid4())[1:4],
|
||||
"name": self.fts_template_name,
|
||||
"schema": self.schema_id,
|
||||
"tmplinit": "dispell_init",
|
||||
"tmpllexize": "dispell_lexize"
|
||||
|
@ -72,7 +75,10 @@ class FtsTemplateAddTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_template and disconnect the test
|
||||
database."""
|
||||
fts_temp_utils.delete_fts_template(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_template_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -71,7 +71,10 @@ class FtsTemplateGetTestCase(BaseTestGenerator):
|
|||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_template and disconnect the test
|
||||
database."""
|
||||
fts_temp_utils.delete_fts_template(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_temp_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -88,7 +88,10 @@ class FtsTemplatePutTestCase(BaseTestGenerator):
|
|||
self.assertEquals(put_response.status_code, 200)
|
||||
|
||||
def tearDown(self):
|
||||
"""This function disconnect the test database."""
|
||||
|
||||
"""This function delete the fts_template and disconnect the test
|
||||
database."""
|
||||
fts_temp_utils.delete_fts_template(self.server, self.db_name,
|
||||
self.schema_name,
|
||||
self.fts_temp_name)
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
|
|
|
@ -82,3 +82,29 @@ def verify_fts_template(server, db_name, fts_temp_name):
|
|||
return fts_template
|
||||
except Exception:
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
|
||||
def delete_fts_template(server, db_name, schema_name, fts_template_name):
|
||||
"""
|
||||
This function delete FTS parsers.
|
||||
:param server: server details
|
||||
:type server: dict
|
||||
:param db_name: database name
|
||||
:type db_name: str
|
||||
:param fts_template_name: FTS template name to be added
|
||||
:type fts_template_name: str
|
||||
:param schema_name: schema name
|
||||
:type schema_name: str
|
||||
:return: None
|
||||
"""
|
||||
connection = get_db_connection(db_name,
|
||||
server['username'],
|
||||
server['db_password'],
|
||||
server['host'],
|
||||
server['port'],
|
||||
server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("DROP TEXT SEARCH TEMPLATE %s.%s" % (
|
||||
schema_name, fts_template_name))
|
||||
connection.commit()
|
||||
connection.close()
|
||||
|
|
Loading…
Reference in New Issue