Skip to content

Commit beacb99

Browse files
committed
B2B-2023: [AWS S3] [Integration Tests]: Investigate Test Failures in CatalogImportExport module
1 parent a4dc950 commit beacb99

File tree

2 files changed

+27
-20
lines changed

2 files changed

+27
-20
lines changed

app/code/Magento/ImportExport/Model/Export/Adapter/Csv.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,14 @@ private function resolveDestination(): void
7272
}
7373
}
7474

75+
/**
76+
* @return Write
77+
*/
78+
public function getFileHandler(): Write
79+
{
80+
return $this->_fileHandler;
81+
}
82+
7583
/**
7684
* Method called as last step of object instance creation. Can be overridden in child classes.
7785
*

dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/AbstractProductExportImportTestCase.php

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Magento\Framework\App\Bootstrap;
1010
use Magento\Framework\App\Filesystem\DirectoryList;
1111
use Magento\ImportExport\Model\Export\Adapter\AbstractAdapter;
12+
use Magento\Framework\Filesystem\Driver\File;
1213
use Magento\Store\Model\Store;
1314
use Magento\TestFramework\Annotation\DataFixture;
1415
use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
@@ -66,11 +67,6 @@ abstract class AbstractProductExportImportTestCase extends \PHPUnit\Framework\Te
6667
'tax_class_id',
6768
];
6869

69-
/**
70-
* @var AbstractAdapter
71-
*/
72-
private $writer;
73-
7470
/**
7571
* @var string
7672
*/
@@ -97,7 +93,7 @@ protected function tearDown(): void
9793
$this->executeFixtures($this->fixtures, true);
9894

9995
if ($this->csvFile !== null) {
100-
$directoryWrite = $this->fileSystem->getDirectoryWrite(DirectoryList::VAR_DIR);
96+
$directoryWrite = $this->fileSystem->getDirectoryWrite(DirectoryList::VAR_IMPORT_EXPORT);
10197
$directoryWrite->delete($this->csvFile);
10298
}
10399
}
@@ -416,12 +412,13 @@ private function exportProducts(Product $exportProduct = null)
416412
$exportProduct = $exportProduct ?: $this->objectManager->create(
417413
Product::class
418414
);
419-
$this->writer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
415+
$writer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
420416
\Magento\ImportExport\Model\Export\Adapter\Csv::class,
421417
['fileSystem' => $this->fileSystem, 'destination' => $csvfile]
422418
);
423-
$exportProduct->setWriter($this->writer);
419+
$exportProduct->setWriter($writer);
424420
$this->assertNotEmpty($exportProduct->export());
421+
$writer->getFileHandler()->close();
425422

426423
return $csvfile;
427424
}
@@ -451,19 +448,21 @@ private function importProducts(string $csvfile, string $behavior): void
451448
$appParams = \Magento\TestFramework\Helper\Bootstrap::getInstance()->getBootstrap()
452449
->getApplication()
453450
->getInitParams()[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS];
454-
$uploader = $importModel->getUploader();
455-
$rootDirectory = $this->fileSystem->getDirectoryWrite(DirectoryList::ROOT);
456-
$destDir = $rootDirectory->getRelativePath(
457-
$appParams[DirectoryList::MEDIA][DirectoryList::PATH] . '/catalog/product'
458-
);
459-
$tmpDir = $rootDirectory->getRelativePath(
460-
$appParams[DirectoryList::MEDIA][DirectoryList::PATH] . '/import'
461-
);
451+
$mediaDirectory = $this->fileSystem->getDirectoryWrite(DirectoryList::MEDIA);
462452

463-
$rootDirectory->create($destDir);
464-
$rootDirectory->create($tmpDir);
465-
$this->assertTrue($uploader->setDestDir($destDir));
466-
$this->assertTrue($uploader->setTmpDir($tmpDir));
453+
$mediaDir = $mediaDirectory->getDriver() instanceof File ?
454+
$appParams[DirectoryList::MEDIA][DirectoryList::PATH] : 'media';
455+
456+
$mediaDirectory->create('catalog/product');
457+
$mediaDirectory->create('import');
458+
$importModel->setParameters(
459+
[
460+
\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR => $mediaDir . '/import'
461+
]
462+
);
463+
$uploader = $importModel->getUploader();
464+
$this->assertTrue($uploader->setDestDir($mediaDir . '/catalog/product'));
465+
$this->assertTrue($uploader->setTmpDir($mediaDir . '/import'));
467466

468467
$errors = $importModel->setParameters(
469468
[

0 commit comments

Comments
 (0)