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.");
|
||||
}
|
||||
|
||||
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 = []) {
|
||||
$dir = new RecursiveDirectoryIterator($folder);
|
||||
$iterator = new RecursiveIteratorIterator($dir);
|
||||
|
@ -54,7 +54,8 @@
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"MailPoetTasks\\Release\\": "tasks/release",
|
||||
"MailPoet\\Test\\DataFactories\\": "tests/DataFactories"
|
||||
"MailPoet\\Test\\DataFactories\\": "tests/DataFactories",
|
||||
"MailPoet\\Test\\DataGenerator\\": "tests/DataGenerator"
|
||||
}
|
||||
},
|
||||
"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