ENH: allow specify database by filename

This commit is contained in:
Igor Nadj 2015-10-19 15:03:25 +13:00
parent d30852db1d
commit 9da7574f28
2 changed files with 19 additions and 3 deletions

View File

@ -56,7 +56,8 @@ on "dev/testsession/start":
(see [fixture format docs](http://doc.silverstripe.org/framework/en/topics/testing/fixtures)).
The path should be relative to the webroot.
* `createDatabase`: Create a temporary database.
* `createDatabaseTemplate`: Path to a database dump to load into a newly created temporary database.
* `importDatabasePath`: Absolute path to a database dump to load into a newly created temporary database.
* `importDatabaseFilename`: File name for a database dump to load, relative to `TestSessionController.database_templates_path`
* `requireDefaultRecords`: Include default records as defined on the model classes (in PHP)
* `database`: Set an alternative database name in the current
browser session as a cookie. Does not actually create the database,

View File

@ -94,9 +94,24 @@ class TestSessionController extends Controller {
$this->environment->startTestSession($params, $id);
// Optionally import database
if(!empty($params['importDatabasePath'])) {
if(!empty($params['importDatabasePath']) || !empty($params['importDatabaseFilename'])) {
$absPath = '';
// by path
if(!empty($params['importDatabasePath'])) {
$absPath = $params['importDatabasePath'];
// by filename
}else if(!empty($params['importDatabaseFilename'])) {
foreach($this->getDatabaseTemplates() as $tAbsPath => $tFilename){
if($tFilename === $params['importDatabaseFilename']){
$absPath = $tAbsPath;
break;
}
}
}
$this->environment->importDatabase(
$params['importDatabasePath'],
$absPath,
!empty($params['requireDefaultRecords']) ? $params['requireDefaultRecords'] : false
);
} else if(!empty($params['requireDefaultRecords']) && $params['requireDefaultRecords']) {