Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Clean-up some broken/unused code in the test framework (#8514)
Browse files Browse the repository at this point in the history
  • Loading branch information
clokep authored Oct 9, 2020
1 parent 9789b1f commit d35a451
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 70 deletions.
1 change: 1 addition & 0 deletions changelog.d/8514.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove unused code from the test framework.
2 changes: 0 additions & 2 deletions tests/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,6 @@ def setup_test_homeserver(cleanup_func, *args, **kwargs):
"""
server = _sth(cleanup_func, *args, **kwargs)

database = server.config.database.get_single_database()

# Make the thread pool synchronous.
clock = server.get_clock()

Expand Down
122 changes: 54 additions & 68 deletions tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@ class TestHomeServer(HomeServer):
def setup_test_homeserver(
cleanup_func,
name="test",
datastore=None,
config=None,
reactor=None,
homeserverToUse=TestHomeServer,
Expand Down Expand Up @@ -249,7 +248,7 @@ def setup_test_homeserver(

# Create the database before we actually try and connect to it, based off
# the template database we generate in setupdb()
if datastore is None and isinstance(db_engine, PostgresEngine):
if isinstance(db_engine, PostgresEngine):
db_conn = db_engine.module.connect(
database=POSTGRES_BASE_DB,
user=POSTGRES_USER,
Expand All @@ -265,79 +264,66 @@ def setup_test_homeserver(
cur.close()
db_conn.close()

if datastore is None:
hs = homeserverToUse(
name,
config=config,
version_string="Synapse/tests",
tls_server_context_factory=Mock(),
tls_client_options_factory=Mock(),
reactor=reactor,
**kargs
)
hs = homeserverToUse(
name,
config=config,
version_string="Synapse/tests",
tls_server_context_factory=Mock(),
tls_client_options_factory=Mock(),
reactor=reactor,
**kargs
)

hs.setup()
if homeserverToUse.__name__ == "TestHomeServer":
hs.setup_background_tasks()
hs.setup()
if homeserverToUse.__name__ == "TestHomeServer":
hs.setup_background_tasks()

if isinstance(db_engine, PostgresEngine):
database = hs.get_datastores().databases[0]
if isinstance(db_engine, PostgresEngine):
database = hs.get_datastores().databases[0]

# We need to do cleanup on PostgreSQL
def cleanup():
import psycopg2
# We need to do cleanup on PostgreSQL
def cleanup():
import psycopg2

# Close all the db pools
database._db_pool.close()
# Close all the db pools
database._db_pool.close()

dropped = False
dropped = False

# Drop the test database
db_conn = db_engine.module.connect(
database=POSTGRES_BASE_DB,
user=POSTGRES_USER,
host=POSTGRES_HOST,
password=POSTGRES_PASSWORD,
)
db_conn.autocommit = True
cur = db_conn.cursor()

# Try a few times to drop the DB. Some things may hold on to the
# database for a few more seconds due to flakiness, preventing
# us from dropping it when the test is over. If we can't drop
# it, warn and move on.
for x in range(5):
try:
cur.execute("DROP DATABASE IF EXISTS %s;" % (test_db,))
db_conn.commit()
dropped = True
except psycopg2.OperationalError as e:
warnings.warn(
"Couldn't drop old db: " + str(e), category=UserWarning
)
time.sleep(0.5)

cur.close()
db_conn.close()

if not dropped:
warnings.warn("Failed to drop old DB.", category=UserWarning)

if not LEAVE_DB:
# Register the cleanup hook
cleanup_func(cleanup)
# Drop the test database
db_conn = db_engine.module.connect(
database=POSTGRES_BASE_DB,
user=POSTGRES_USER,
host=POSTGRES_HOST,
password=POSTGRES_PASSWORD,
)
db_conn.autocommit = True
cur = db_conn.cursor()

else:
hs = homeserverToUse(
name,
datastore=datastore,
config=config,
version_string="Synapse/tests",
tls_server_context_factory=Mock(),
tls_client_options_factory=Mock(),
reactor=reactor,
**kargs
)
# Try a few times to drop the DB. Some things may hold on to the
# database for a few more seconds due to flakiness, preventing
# us from dropping it when the test is over. If we can't drop
# it, warn and move on.
for x in range(5):
try:
cur.execute("DROP DATABASE IF EXISTS %s;" % (test_db,))
db_conn.commit()
dropped = True
except psycopg2.OperationalError as e:
warnings.warn(
"Couldn't drop old db: " + str(e), category=UserWarning
)
time.sleep(0.5)

cur.close()
db_conn.close()

if not dropped:
warnings.warn("Failed to drop old DB.", category=UserWarning)

if not LEAVE_DB:
# Register the cleanup hook
cleanup_func(cleanup)

# bcrypt is far too slow to be doing in unit tests
# Need to let the HS build an auth handler and then mess with it
Expand Down

0 comments on commit d35a451

Please sign in to comment.