trait DrushTestTrait (View source)

DrushTestTrait provides a drush() method that may be used to write functional tests for Drush extensions.

More information is available at https://github.com/drush-ops/drush/blob/12.x/docs/contribute/unish.md#drush-test-traits.

Traits

CliTestTrait provides an execute() method that is useful for launching executable programs in functional tests.

OutputUtilsTrait provides some useful utility methods for test classes that define getOutputRaw() and getErrorOutputRaw() methods.

Properties

protected int $timeout

Timeout for command.

from  CliTestTrait
protected int $idleTimeout

Idle timeouts for commands.

from  CliTestTrait
protected Process|null $process from  CliTestTrait

Methods

string
getOutputRaw()

Accessor for the last output, non-trimmed.

string
getErrorOutputRaw()

Accessor for the last stderr output, non-trimmed.

string
getSimplifiedOutput()

Get command output and simplify things like full paths and extra whitespace.

string
getSimplifiedErrorOutput()

Returns a simplified version of the error output to facilitate testing.

string
simplifyOutput(string $output)

Remove things like full paths and extra whitespace from the given string.

array
pathsToSimplify()

No description

string
getOutput()

Accessor for the last output, trimmed.

string
getErrorOutput()

Accessor for the last stderr output, trimmed.

array
getOutputAsList()

Accessor for the last output, rtrimmed and split on newlines.

array
getErrorOutputAsList()

Accessor for the last stderr output, rtrimmed and split on newlines.

mixed
getOutputFromJSON(string|int $key = null)

Accessor for the last output, decoded from json.

Process
startExecute(string|array $command, string|null $cd = null, array|null $env = null, string|null $input = null)

Run a command and return the process without waiting for it to finish.

void
execute(array|string $command, int $expected_return = 0, string|null $cd = null, array|null $env = null, string|null $input = null)

Actually runs the command.

static string
escapeshellarg(string $arg)

No description

static bool
isWindows()

No description

static string
_escapeshellargWindows(string $arg)

No description

string
buildProcessMessage()

Borrowed from \Symfony\Component\Process\Exception\ProcessTimedOutException

void
assertOutputEquals(string $expected, string $filter = '')

Checks that the output matches the expected output.

void
assertErrorOutputEquals(string $expected, string $filter = '')

Checks that the error output matches the expected output.

string
getPathToDrush()

No description

void
drush($command, array $args = [], array $options = [], string|null $site_specification = null, string|null $cd = null, int $expected_return = 0, string|null $suffix = null, array $env = [])

Invoke drush in via execute().

string
convertKeyValueToFlag(string $key, mixed $value)

Given an option key / value pair, convert to a "--key=value" string.

int
drushMajorVersion()

Return the major version of Drush

Details

abstract string getOutputRaw()

Accessor for the last output, non-trimmed.

Return Value

string

abstract string getErrorOutputRaw()

Accessor for the last stderr output, non-trimmed.

Return Value

string

protected string getSimplifiedOutput()

Get command output and simplify things like full paths and extra whitespace.

Return Value

string

protected string getSimplifiedErrorOutput()

Returns a simplified version of the error output to facilitate testing.

Return Value

string

A simplified version of the error output that has things like full paths and superfluous whitespace removed from it.

protected string simplifyOutput(string $output)

Remove things like full paths and extra whitespace from the given string.

Parameters

string $output

Return Value

string

array pathsToSimplify()

No description

Return Value

array

string getOutput()

Accessor for the last output, trimmed.

Return Value

string

string getErrorOutput()

Accessor for the last stderr output, trimmed.

Return Value

string

array getOutputAsList()

Accessor for the last output, rtrimmed and split on newlines.

Return Value

array

array getErrorOutputAsList()

Accessor for the last stderr output, rtrimmed and split on newlines.

Return Value

array

mixed getOutputFromJSON(string|int $key = null)

Accessor for the last output, decoded from json.

Parameters

string|int $key

Optionally return only a top level element from the json object.

Return Value

mixed

Process startExecute(string|array $command, string|null $cd = null, array|null $env = null, string|null $input = null)

Run a command and return the process without waiting for it to finish.

Parameters

string|array $command

The actual command line to run.

string|null $cd
array|null $env

Extra environment variables.

string|null $input

A string representing the STDIN that is piped to the command.

Return Value

Process

void execute(array|string $command, int $expected_return = 0, string|null $cd = null, array|null $env = null, string|null $input = null)

Actually runs the command.

Parameters

array|string $command

The actual command line to run.

int $expected_return

The return code to expect

string|null $cd
array|null $env

Extra environment variables.

string|null $input

A string representing the STDIN that is piped to the command.

Return Value

void

static string escapeshellarg(string $arg)

No description

Parameters

string $arg

Return Value

string

static bool isWindows()

No description

Return Value

bool

static string _escapeshellargWindows(string $arg)

No description

Parameters

string $arg

Return Value

string

string buildProcessMessage()

Borrowed from \Symfony\Component\Process\Exception\ProcessTimedOutException

Return Value

string

protected void assertOutputEquals(string $expected, string $filter = '')

Checks that the output matches the expected output.

This matches against a simplified version of the actual output that has absolute paths and duplicate whitespace removed, to avoid false negatives on minor differences.

Parameters

string $expected

The expected output.

string $filter

Optional regular expression that should be ignored in the error output.

Return Value

void

protected void assertErrorOutputEquals(string $expected, string $filter = '')

Checks that the error output matches the expected output.

This matches against a simplified version of the actual output that has absolute paths and duplicate whitespace removed, to avoid false negatives on minor differences.

Parameters

string $expected

The expected output.

string $filter

Optional regular expression that should be ignored in the error output.

Return Value

void

string getPathToDrush()

No description

Return Value

string

void drush($command, array $args = [], array $options = [], string|null $site_specification = null, string|null $cd = null, int $expected_return = 0, string|null $suffix = null, array $env = [])

Invoke drush in via execute().

Parameters

$command

A defined drush command such as 'cron', 'status' or any of the available ones such as 'drush pm'.

array $args

Command arguments.

array $options

An associative array containing options.

string|null $site_specification

A site alias or site specification. Include the '@' at start of a site alias.

string|null $cd

A directory to change into before executing.

int $expected_return

The expected exit code, e.g. 0 or 1 or some other expected value.

string|null $suffix

Any code to append to the command. For example, redirection like 2>&1.

array $env

Environment variables to pass along to the subprocess.

Return Value

void

protected string convertKeyValueToFlag(string $key, mixed $value)

Given an option key / value pair, convert to a "--key=value" string.

Parameters

string $key
mixed $value

Return Value

string

int drushMajorVersion()

Return the major version of Drush

Return Value

int

e.g. 11 or 12 or ...