Add runtime for data generators

[MAILPOET-2140]
This commit is contained in:
Rostislav Wolny
2019-07-03 14:27:02 +02:00
committed by M. Shull
parent a6198ba443
commit 358bcc5d38
4 changed files with 63 additions and 1 deletions

View File

@ -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);

View File

@ -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": {

View 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();
}
}

View 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');