Add runtime for data generators
[MAILPOET-2140]
This commit is contained in:
committed by
M. Shull
parent
a6198ba443
commit
358bcc5d38
@ -790,6 +790,12 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
$this->say("Release '$version[name]' info was published on Slack.");
|
$this->say("Release '$version[name]' info was published on Slack.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function generateData($generator_name) {
|
||||||
|
require_once __DIR__ . '/tests/DataGenerator/_bootstrap.php';
|
||||||
|
$generator = new \MailPoet\Test\DataGenerator\DataGenerator(new \Codeception\Lib\Console\Output([]));
|
||||||
|
$generator->run($generator_name);
|
||||||
|
}
|
||||||
|
|
||||||
protected function rsearch($folder, $extensions = []) {
|
protected function rsearch($folder, $extensions = []) {
|
||||||
$dir = new RecursiveDirectoryIterator($folder);
|
$dir = new RecursiveDirectoryIterator($folder);
|
||||||
$iterator = new RecursiveIteratorIterator($dir);
|
$iterator = new RecursiveIteratorIterator($dir);
|
||||||
|
@ -54,7 +54,8 @@
|
|||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"MailPoetTasks\\Release\\": "tasks/release",
|
"MailPoetTasks\\Release\\": "tasks/release",
|
||||||
"MailPoet\\Test\\DataFactories\\": "tests/DataFactories"
|
"MailPoet\\Test\\DataFactories\\": "tests/DataFactories",
|
||||||
|
"MailPoet\\Test\\DataGenerator\\": "tests/DataGenerator"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
44
tests/DataGenerator/DataGenerator.php
Normal file
44
tests/DataGenerator/DataGenerator.php
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace MailPoet\Test\DataGenerator;
|
||||||
|
|
||||||
|
use Codeception\Lib\Console\Output;
|
||||||
|
use MailPoet\Test\DataGenerator\Generators\GeneratorHelper;
|
||||||
|
use MailPoet\Test\DataGenerator\Generators\WooCommercePastRevenues;
|
||||||
|
|
||||||
|
class DataGenerator {
|
||||||
|
|
||||||
|
const PAST_REVENUES_GENERATOR = 'past_revenues';
|
||||||
|
|
||||||
|
/** @var Output */
|
||||||
|
private $console;
|
||||||
|
|
||||||
|
function __construct(Output $console) {
|
||||||
|
$this->console = $console;
|
||||||
|
}
|
||||||
|
|
||||||
|
function run($generator_name) {
|
||||||
|
$timer = time();
|
||||||
|
try {
|
||||||
|
$generator = $this->createGenerator($generator_name);
|
||||||
|
foreach ($generator->generate() as $message) {
|
||||||
|
$this->log($timer, $message);
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$this->console->exception($e);
|
||||||
|
}
|
||||||
|
$this->log($timer, 'DONE!');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createGenerator($generator_name) {
|
||||||
|
switch ($generator_name) {
|
||||||
|
default:
|
||||||
|
throw new \Exception("Missing or unknown generator name. Possible values: \n " . self::PAST_REVENUES_GENERATOR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function log($timer, $message) {
|
||||||
|
$duration = time() - $timer;
|
||||||
|
$this->console->message("[{$duration}s] $message")->writeln();
|
||||||
|
}
|
||||||
|
}
|
11
tests/DataGenerator/_bootstrap.php
Normal file
11
tests/DataGenerator/_bootstrap.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Turn off transaction emails by defining dummy wp_mail
|
||||||
|
if (!function_exists('wp_mail')) {
|
||||||
|
function wp_mail($to, $subject, $message, $headers = '', $attachments = []) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load WP
|
||||||
|
require_once(getenv('WP_ROOT') . '/wp-load.php');
|
Reference in New Issue
Block a user