Create the test databases.
(
verbosity,
interactive,
*,
time_keeper=None,
keepdb=False,
debug_sql=False,
parallel=0,
aliases=None,
serialized_aliases=None,
**kwargs,
)
| 187 | |
| 188 | |
| 189 | def setup_databases( |
| 190 | verbosity, |
| 191 | interactive, |
| 192 | *, |
| 193 | time_keeper=None, |
| 194 | keepdb=False, |
| 195 | debug_sql=False, |
| 196 | parallel=0, |
| 197 | aliases=None, |
| 198 | serialized_aliases=None, |
| 199 | **kwargs, |
| 200 | ): |
| 201 | """Create the test databases.""" |
| 202 | if time_keeper is None: |
| 203 | time_keeper = NullTimeKeeper() |
| 204 | |
| 205 | test_databases, mirrored_aliases = get_unique_databases_and_mirrors(aliases) |
| 206 | |
| 207 | old_names = [] |
| 208 | serialize_connections = [] |
| 209 | |
| 210 | for db_name, aliases in test_databases.values(): |
| 211 | first_alias = None |
| 212 | for alias in aliases: |
| 213 | connection = connections[alias] |
| 214 | old_names.append((connection, db_name, first_alias is None)) |
| 215 | |
| 216 | # Actually create the database for the first connection |
| 217 | if first_alias is None: |
| 218 | first_alias = alias |
| 219 | with time_keeper.timed(" Creating '%s'" % alias): |
| 220 | connection.creation.create_test_db( |
| 221 | verbosity=verbosity, |
| 222 | autoclobber=not interactive, |
| 223 | keepdb=keepdb, |
| 224 | ) |
| 225 | if serialized_aliases is None or alias in serialized_aliases: |
| 226 | serialize_connections.append(connection) |
| 227 | if parallel > 1: |
| 228 | for index in range(parallel): |
| 229 | with time_keeper.timed(" Cloning '%s'" % alias): |
| 230 | connection.creation.clone_test_db( |
| 231 | suffix=str(index + 1), |
| 232 | verbosity=verbosity, |
| 233 | keepdb=keepdb, |
| 234 | ) |
| 235 | # Configure all other connections as mirrors of the first one |
| 236 | else: |
| 237 | connections[alias].creation.set_as_test_mirror( |
| 238 | connections[first_alias].settings_dict |
| 239 | ) |
| 240 | |
| 241 | # Configure the test mirrors. |
| 242 | for alias, mirror_alias in mirrored_aliases.items(): |
| 243 | connections[alias].creation.set_as_test_mirror( |
| 244 | connections[mirror_alias].settings_dict |
| 245 | ) |
| 246 |
nothing calls this directly
no test coverage detected