setUpDrupal('dev', TRUE, '7.0-rc3'); $options = array( 'root' => $this->sites['dev']['root'], 'uri' => 'dev', 'yes' => NULL, 'quiet' => NULL, ); $this->drush('pm-download', array('devel-7.x-1.0-rc1,webform-7.x-3.4-beta1'), $options); $this->drush('pm-enable', array('menu', 'devel', 'webform'), $options); } function testUpdateCode() { $options = array( 'root' => $this->sites['dev']['root'], 'uri' => 'dev', 'yes' => NULL, 'backup-dir' => UNISH_SANDBOX . '/backups', 'self-update' => 0, // Don't try update Drush. ); // Try to upgrade a specific module. $this->drush('pm-updatecode', array('devel'), $options + array()); // Assure that devel was upgraded and webform was not. $this->drush('pm-updatecode', array(), $options + array('pipe' => NULL)); $all = $this->getOutput(); $this->assertNotContains('devel', $all); $this->assertContains('webform', $all); // Lock webform, and update core. $this->drush('pm-updatecode', array(), $options + array('lock' => 'webform')); $list = $this->getOutputAsList(); // For debugging. $this->drush('pm-updatecode', array(), $options + array('pipe' => NULL)); $all = $this->getOutput(); $this->assertNotContains('drupal', $all, 'Core was updated'); $this->assertContains('webform', $all, 'Webform was skipped.'); // Unlock webform, update, and check. $this->drush('pm-updatecode', array(), $options + array('unlock' => 'webform', 'no-backup' => NULL)); $list = $this->getOutputAsList(); $this->drush('pm-updatecode', array(), $options + array('pipe' => NULL)); $all = $this->getOutput(); $this->assertNotContains('webform', $all, 'Webform was updated'); // Verify that we keep backups as instructed. $pattern = 'find %s -iname %s'; $backup_dir = UNISH_SANDBOX . '/backups'; $cmd = sprintf($pattern, self::escapeshellarg($backup_dir), escapeshellarg('devel.module')); $this->execute($cmd); $output = $this->getOutput(); $this->assertNotEmpty($output); $cmd = sprintf($pattern, self::escapeshellarg($backup_dir), escapeshellarg('webform.module')); $this->execute($cmd); $output = $this->getOutput(); $this->assertEmpty($output); } }