Skip to content

Commit

Permalink
Merge pull request #12158 from mollux/4.4-faster-campaign-tests
Browse files Browse the repository at this point in the history
improve test speed of campaign count tests (backport 4.4)
  • Loading branch information
escopecz committed Apr 3, 2023
2 parents b5e1e26 + 2965a0d commit 9efec07
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 18 deletions.
18 changes: 10 additions & 8 deletions app/bundles/CampaignBundle/Tests/Campaign/AbstractCampaignTest.php
Expand Up @@ -19,6 +19,8 @@ abstract class AbstractCampaignTest extends MauticMysqlTestCase
{
protected function saveSomeCampaignLeadEventLogs(bool $emulatePendingCount = false): Campaign
{
$relativeDate = date('Y-m-d', strtotime('-1 month'));

/** @var LeadEventLogRepository $leadEventLogRepo */
$leadEventLogRepo = $this->em->getRepository(LeadEventLog::class);

Expand Down Expand Up @@ -61,43 +63,43 @@ protected function saveSomeCampaignLeadEventLogs(bool $emulatePendingCount = fal
$leadEventLogA->setCampaign($campaign);
$leadEventLogA->setEvent($eventA);
$leadEventLogA->setLead($contactA);
$leadEventLogA->setDateTriggered(new \DateTime('2020-11-21 16:34:00', new \DateTimeZone('UTC')));
$leadEventLogA->setDateTriggered(new \DateTime($relativeDate.' 16:34:00', new \DateTimeZone('UTC')));
$leadEventLogA->setRotation(0);

$leadEventLogB = new LeadEventLog();
$leadEventLogB->setCampaign($campaign);
$leadEventLogB->setEvent($eventA);
$leadEventLogB->setLead($contactB);
$leadEventLogB->setDateTriggered(new \DateTime('2020-11-21 16:54:00', new \DateTimeZone('UTC')));
$leadEventLogB->setDateTriggered(new \DateTime($relativeDate.' 16:54:00', new \DateTimeZone('UTC')));
$leadEventLogB->setRotation(0);

$leadEventLogC = new LeadEventLog();
$leadEventLogC->setCampaign($campaign);
$leadEventLogC->setEvent($eventB);
$leadEventLogC->setLead($contactA);
$leadEventLogC->setDateTriggered(new \DateTime('2020-11-21 16:55:00', new \DateTimeZone('UTC')));
$leadEventLogC->setDateTriggered(new \DateTime($relativeDate.' 16:55:00', new \DateTimeZone('UTC')));
$leadEventLogC->setRotation(0);

$leadEventLogD = new LeadEventLog();
$leadEventLogD->setCampaign($campaign);
$leadEventLogD->setEvent($eventB);
$leadEventLogD->setLead($contactB);
$leadEventLogD->setDateTriggered(new \DateTime('2020-11-21 17:04:00', new \DateTimeZone('UTC')));
$leadEventLogD->setDateTriggered(new \DateTime($relativeDate.' 17:04:00', new \DateTimeZone('UTC')));
$leadEventLogD->setRotation(0);

$leadEventLogRepo->saveEntities([$leadEventLogA, $leadEventLogB, $leadEventLogC, $leadEventLogD]);

$campaignLeadsA = new CampaignLeads();
$campaignLeadsA->setLead($contactA);
$campaignLeadsA->setCampaign($campaign);
$campaignLeadsA->setDateAdded(new \DateTime('2020-11-21'));
$campaignLeadsA->setDateAdded(new \DateTime($relativeDate));
$campaignLeadsA->setRotation(0);
$campaignLeadsA->setManuallyRemoved(false);

$campaignLeadsB = new CampaignLeads();
$campaignLeadsB->setLead($contactB);
$campaignLeadsB->setCampaign($campaign);
$campaignLeadsB->setDateAdded(new \DateTime('2020-11-21'));
$campaignLeadsB->setDateAdded(new \DateTime($relativeDate));
$campaignLeadsB->setRotation(0);
$campaignLeadsB->setManuallyRemoved(false);

Expand All @@ -111,14 +113,14 @@ protected function saveSomeCampaignLeadEventLogs(bool $emulatePendingCount = fal
$leadEventLogD->setCampaign($campaign);
$leadEventLogD->setEvent($eventA);
$leadEventLogD->setLead($contactC);
$leadEventLogD->setDateTriggered(new \DateTime('2020-11-21 16:34:00', new \DateTimeZone('UTC')));
$leadEventLogD->setDateTriggered(new \DateTime($relativeDate.' 16:34:00', new \DateTimeZone('UTC')));
$leadEventLogD->setRotation(0);
$leadEventLogRepo->saveEntity($leadEventLogD);

$campaignLeadsC = new CampaignLeads();
$campaignLeadsC->setLead($contactC);
$campaignLeadsC->setCampaign($campaign);
$campaignLeadsC->setDateAdded(new \DateTime('2020-11-21'));
$campaignLeadsC->setDateAdded(new \DateTime($relativeDate));
$campaignLeadsC->setRotation(0);
$campaignLeadsC->setManuallyRemoved(true);
$campaignLeadsRepo->saveEntity($campaignLeadsC);
Expand Down
Expand Up @@ -19,7 +19,7 @@ public function testBackwardSummarizationWhenThereAreNoCampaignEventLogs(): void
SummarizeCommand::NAME,
[
'--env' => 'test',
'--max-hours' => 9999,
'--max-hours' => 768,
]
);

Expand All @@ -37,13 +37,15 @@ public function testBackwardSummarizationWhenThereAreNoCampaignEventLogs(): void
*/
public function testBackwardSummarizationWhenThereAreLogs(): void
{
$relativeDate = date('Y-m-d', strtotime('-1 month'));

$campaign = $this->saveSomeCampaignLeadEventLogs();

$this->runCommand(
SummarizeCommand::NAME,
[
'--env' => 'test',
'--max-hours' => 9999999,
'--max-hours' => 768,
]
);

Expand All @@ -55,17 +57,17 @@ public function testBackwardSummarizationWhenThereAreLogs(): void

Assert::assertCount(3, $summaries);

Assert::assertSame('2020-11-21T17:00:00+00:00', $summaries[0]->getDateTriggered()->format(DATE_ATOM));
Assert::assertSame($relativeDate.'T17:00:00+00:00', $summaries[0]->getDateTriggered()->format(DATE_ATOM));
Assert::assertSame(1, $summaries[0]->getTriggeredCount());
Assert::assertSame($campaign->getId(), $summaries[0]->getCampaign()->getId());
Assert::assertSame('Event B', $summaries[0]->getEvent()->getName());

Assert::assertSame('2020-11-21T16:00:00+00:00', $summaries[1]->getDateTriggered()->format(DATE_ATOM));
Assert::assertSame($relativeDate.'T16:00:00+00:00', $summaries[1]->getDateTriggered()->format(DATE_ATOM));
Assert::assertSame(2, $summaries[1]->getTriggeredCount());
Assert::assertSame($campaign->getId(), $summaries[1]->getCampaign()->getId());
Assert::assertSame('Event A', $summaries[1]->getEvent()->getName());

Assert::assertSame('2020-11-21T16:00:00+00:00', $summaries[2]->getDateTriggered()->format(DATE_ATOM));
Assert::assertSame($relativeDate.'T16:00:00+00:00', $summaries[2]->getDateTriggered()->format(DATE_ATOM));
Assert::assertSame(1, $summaries[2]->getTriggeredCount());
Assert::assertSame($campaign->getId(), $summaries[2]->getCampaign()->getId());
Assert::assertSame('Event B', $summaries[2]->getEvent()->getName());
Expand Down
Expand Up @@ -136,10 +136,13 @@ public function testCampaignPendingCountsWithSummaryAndRange(): void

private function getStatTotalContacts(int $campaignId): int
{
$from = date('Y-m-d', strtotime('-2 months'));
$to = date('Y-m-d', strtotime('-1 month'));

$stats = $this->campaignModel->getCampaignMetricsLineChartData(
null,
new \DateTime('2020-10-21'),
new \DateTime('2020-11-22'),
new \DateTime($from),
new \DateTime($to),
null,
['campaign_id' => $campaignId]
);
Expand Down Expand Up @@ -178,10 +181,13 @@ private function processTotalContactStats(array $datasets): int

private function getCrawlers(int $campaignId): Crawler
{
$from = date('F d, Y', strtotime('-2 months'));
$to = date('F d, Y', strtotime('-1 month'));

$parameters = [
'daterange' => [
'date_from' => 'Nov 1, 2020',
'date_to' => 'Nov 30, 2020',
'date_from' => $from,
'date_to' => $to,
],
];

Expand Down Expand Up @@ -232,7 +238,7 @@ private function getCountAndDetails(bool $emulatePendingCount, bool $runCommand,
SummarizeCommand::NAME,
[
'--env' => 'test',
'--max-hours' => 9999999,
'--max-hours' => 768,
]
);
}
Expand Down

0 comments on commit 9efec07

Please sign in to comment.