@@ -47,7 +47,7 @@ def run_cmd(*args):
4747
4848def run_mysql (* args ):
4949 user = _settings .get ("USER" , None )
50- if user :
50+ if user : # pragma: no branch
5151 args = ("-u" , user ) + tuple (args )
5252 args = ("mysql" ,) + tuple (args )
5353 return run_cmd (* args )
@@ -61,110 +61,97 @@ def skip_if_sqlite_in_memory():
6161 pytest .skip ("Do not test db reuse since database does not support it" )
6262
6363
64- def drop_database (name = TEST_DB_NAME , suffix = None ):
65- assert bool ( name ) ^ bool ( suffix ), "name and suffix cannot be used together"
64+ def drop_database (name = TEST_DB_NAME ):
65+ db_engine = get_db_engine ()
6666
67- if suffix :
68- name = "%s_%s" % (name , suffix )
69-
70- if get_db_engine () == "postgresql_psycopg2" :
67+ if db_engine == "postgresql_psycopg2" :
7168 r = run_cmd ("psql" , "postgres" , "-c" , "DROP DATABASE %s" % name )
7269 assert "DROP DATABASE" in force_text (
7370 r .std_out
7471 ) or "does not exist" in force_text (r .std_err )
7572 return
7673
77- if get_db_engine () == "mysql" :
74+ if db_engine == "mysql" :
7875 r = run_mysql ("-e" , "DROP DATABASE %s" % name )
7976 assert "database doesn't exist" in force_text (r .std_err ) or r .status_code == 0
8077 return
8178
82- if get_db_engine () == "sqlite3" :
83- if name == ":memory:" :
84- raise AssertionError ("sqlite in-memory database cannot be dropped!" )
85- if os .path .exists (name ):
86- os .unlink (name )
87- return
88-
89- raise AssertionError ("%s cannot be tested properly!" % get_db_engine ())
79+ assert db_engine == "sqlite3" , "%s cannot be tested properly!" % db_engine
80+ assert name != ":memory:" , "sqlite in-memory database cannot be dropped!"
81+ if os .path .exists (name ): # pragma: no branch
82+ os .unlink (name )
9083
9184
9285def db_exists (db_suffix = None ):
9386 name = TEST_DB_NAME
87+ db_engine = get_db_engine ()
9488
9589 if db_suffix :
9690 name = "%s_%s" % (name , db_suffix )
9791
98- if get_db_engine () == "postgresql_psycopg2" :
92+ if db_engine == "postgresql_psycopg2" :
9993 r = run_cmd ("psql" , name , "-c" , "SELECT 1" )
10094 return r .status_code == 0
10195
102- if get_db_engine () == "mysql" :
96+ if db_engine == "mysql" :
10397 r = run_mysql (name , "-e" , "SELECT 1" )
10498 return r .status_code == 0
10599
106- if get_db_engine () == "sqlite3" :
107- if TEST_DB_NAME == ":memory:" :
108- raise AssertionError (
109- "sqlite in-memory database cannot be checked for existence!"
110- )
111- return os .path .exists (name )
112-
113- raise AssertionError ("%s cannot be tested properly!" % get_db_engine ())
100+ assert db_engine == "sqlite3" , "%s cannot be tested properly!" % db_engine
101+ assert TEST_DB_NAME != ":memory:" , (
102+ "sqlite in-memory database cannot be checked for existence!" )
103+ return os .path .exists (name )
114104
115105
116106def mark_database ():
117- if get_db_engine () == "postgresql_psycopg2" :
107+ db_engine = get_db_engine ()
108+
109+ if db_engine == "postgresql_psycopg2" :
118110 r = run_cmd ("psql" , TEST_DB_NAME , "-c" , "CREATE TABLE mark_table();" )
119111 assert r .status_code == 0
120112 return
121113
122- if get_db_engine () == "mysql" :
114+ if db_engine == "mysql" :
123115 r = run_mysql (TEST_DB_NAME , "-e" , "CREATE TABLE mark_table(kaka int);" )
124116 assert r .status_code == 0
125117 return
126118
127- if get_db_engine () == "sqlite3" :
128- if TEST_DB_NAME == ":memory:" :
129- raise AssertionError ("sqlite in-memory database cannot be marked!" )
130-
131- conn = sqlite3 .connect (TEST_DB_NAME )
132- try :
133- with conn :
134- conn .execute ("CREATE TABLE mark_table(kaka int);" )
135- finally : # Close the DB even if an error is raised
136- conn .close ()
137- return
119+ assert db_engine == "sqlite3" , "%s cannot be tested properly!" % db_engine
120+ assert TEST_DB_NAME != ":memory:" , (
121+ "sqlite in-memory database cannot be marked!" )
138122
139- raise AssertionError ("%s cannot be tested properly!" % get_db_engine ())
123+ conn = sqlite3 .connect (TEST_DB_NAME )
124+ try :
125+ with conn :
126+ conn .execute ("CREATE TABLE mark_table(kaka int);" )
127+ finally : # Close the DB even if an error is raised
128+ conn .close ()
140129
141130
142131def mark_exists ():
143- if get_db_engine () == "postgresql_psycopg2" :
132+ db_engine = get_db_engine ()
133+
134+ if db_engine == "postgresql_psycopg2" :
144135 r = run_cmd ("psql" , TEST_DB_NAME , "-c" , "SELECT 1 FROM mark_table" )
145136
146137 # When something pops out on std_out, we are good
147138 return bool (r .std_out )
148139
149- if get_db_engine () == "mysql" :
140+ if db_engine == "mysql" :
150141 r = run_mysql (TEST_DB_NAME , "-e" , "SELECT 1 FROM mark_table" )
151142
152143 return r .status_code == 0
153144
154- if get_db_engine () == "sqlite3" :
155- if TEST_DB_NAME == ":memory:" :
156- raise AssertionError (
157- "sqlite in-memory database cannot be checked for mark!"
158- )
159-
160- conn = sqlite3 .connect (TEST_DB_NAME )
161- try :
162- with conn :
163- conn .execute ("SELECT 1 FROM mark_table" )
164- return True
165- except sqlite3 .OperationalError :
166- return False
167- finally : # Close the DB even if an error is raised
168- conn .close ()
169-
170- raise AssertionError ("%s cannot be tested properly!" % get_db_engine ())
145+ assert db_engine == "sqlite3" , "%s cannot be tested properly!" % db_engine
146+ assert TEST_DB_NAME != ":memory:" , (
147+ "sqlite in-memory database cannot be checked for mark!" )
148+
149+ conn = sqlite3 .connect (TEST_DB_NAME )
150+ try :
151+ with conn :
152+ conn .execute ("SELECT 1 FROM mark_table" )
153+ return True
154+ except sqlite3 .OperationalError :
155+ return False
156+ finally : # Close the DB even if an error is raised
157+ conn .close ()
0 commit comments