codeception-flysystem
codeception-flysystem copied to clipboard
Codeception FlySystem module with several adapters
Codeception FlySystem Extension
This extension supports working with FlySystem with several adapters.
Provides a set of methods for checking and modifying files on remote storage.
Installation
-
Install library
composer require lamoda/codeception-flysystem -
Add configuration to codeception.yml
modules: config: \Lamoda\Codeception\Extension\FlySystemModule: adapters: webdav: builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\WebdavAdapterFactory config: baseUri: "http://webdav-host" userName: "userName" password: "password" authType: "authType" sftp: builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\SftpAdapterFactory config: host: "http://sftp-host" username: "username" password: "password" port: "22" root: "/" s3: builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\AwsS3AdapterFactory config: bucket: "your-bucket" endpoint: "endpoint" # if you are using S3-compatible object storage service credentials: key: "key" secret: "secret" region: "region" version: "version" -
Include to suite
modules: enabled: - \Lamoda\Codeception\Extension\FlySystemModule
Supported adapters
sftp
Configuration example:
modules:
config:
\Lamoda\Codeception\Extension\FlySystemModule:
adapters:
sftp:
builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\SftpAdapterFactory
config:
host: "http://sftp-host"
username: "username"
password: "password"
port: "22"
root: "/"
Usage:
$fileSystem = $this->tester->getFileSystem('sftp');
webdav
Configuration example:
modules:
config:
\Lamoda\Codeception\Extension\FlySystemModule:
adapters:
webdav:
builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\WebdavAdapterFactory
config:
baseUri: "http://webdav-host"
userName: "userName"
password: "password"
authType: "authType"
Usage:
$fileSystem = $this->tester->getFileSystem('webdav');
AWS S3
Configuration example:
modules:
config:
\Lamoda\Codeception\Extension\FlySystemModule:
adapters:
s3:
builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\AwsS3AdapterFactory
config:
bucket: "your-bucket"
endpoint: "endpoint" # if you are using S3-compatible object storage service
credentials:
key: "key"
secret: "secret"
region: "region"
version: "version"
Usage:
$fileSystem = $this->tester->getFileSystem('s3');
Usage
Get instance of FileSystem by name from config:
$fileSystem = $this->tester->getFileSystem('sftp');
Modify file on remote server:
$fileSystem->clearDir('/path/to/dir');
$fileSystem->writeFile('test.txt', 'Hello world!');
$fileSystem->copyFile('test.txt', 'test_copy.txt');
$fileSystem->deleteFile('test.txt');
$files = $fileSystem->grabFileList('/path/to/dir');
Check files on remote server:
$fileSystem->canSeeFile('test_copy.txt');
$fileSystem->cantSeeFile('test.txt');
$fileSystem->seeInFile('test_copy.txt', 'Hello');
$fileSystem->seeFilesCount('/path/to/dir', 1);
$fileSystem->seeFileFoundMatches('/copy$/', '/path/to/dir');
$fileSystem->dontSeeFileFoundMatches('/test$/', '/path/to/dir');
Development
PHP Coding Standards Fixer
make php-cs-check
make php-cs-fix
Tests
Unit
make test-unit


