- given: file {embedded_file}
impl:
rust:
function: subplotlib::steplibrary::files::create_from_embedded
python:
function: files_create_from_embedded
types:
embedded_file: file
doc: |
Create a file on disk from an embedded file in the subplot
document. The created file has the same name as the embedded file.
- given: executable file {embedded_file}
impl:
rust:
function: subplotlib::steplibrary::files::create_executable_from_embedded
python:
function: files_create_executable_from_embedded
types:
embedded_file: file
doc: |
Create a file on disk from an embedded file in the subplot
document. The created file has the same name as the embedded file
and is marked as executable.
- given: file {filename_on_disk} from {embedded_file}
impl:
rust:
function: subplotlib::steplibrary::files::create_from_embedded_with_other_name
python:
function: files_create_from_embedded_with_other_name
types:
filename_on_disk: path
embedded_file: file
doc: |
Create a file on disk from an embedded file in the subplot
document. Set the name of the created file.
- given: executable file {filename_on_disk} from {embedded_file}
impl:
rust:
function: subplotlib::steplibrary::files::create_executable_from_embedded_with_other_name
python:
function: files_create_executable_from_embedded_with_other_name
types:
filename_on_disk: path
embedded_file: file
doc: |
Create a file on disk from an embedded file in the subplot
document. Set the name of the created file. Also the created
file will be marked as executable.
- when: I write "{text}" to file {filename}
impl:
rust:
function: subplotlib::steplibrary::files::create_from_text
python:
function: files_create_from_text
types:
filename: path
text: text
doc: |
Create a file on disk with the given content.
- when: "I remove file {filename:path}"
impl:
rust:
function: subplotlib::steplibrary::files::remove_file
python:
function: files_remove_file
doc: |
Remove a file from disk. It can't be a directory.
- given: a directory {path}
impl:
rust:
function: subplotlib::steplibrary::files::make_directory
python:
function: files_make_directory
types:
path: path
doc: |
Create a directory on disk.
- given: directory {path}
impl:
rust:
function: subplotlib::steplibrary::files::make_directory
python:
function: files_make_directory
types:
path: path
doc: |
Create a directory on disk. This is an alias for "given a directory".
- when: I create directory {path}
impl:
rust:
function: subplotlib::steplibrary::files::make_directory
python:
function: files_make_directory
types:
path: path
doc: |
Create a directory on disk.
- when: I remove directory {path}
impl:
rust:
function: subplotlib::steplibrary::files::remove_directory
python:
function: files_remove_directory
types:
path: path
doc: |
Remove a directory on disk.
- when: I remove empty directory {path}
impl:
rust:
function: subplotlib::steplibrary::files::remove_empty_directory
python:
function: files_remove_empty_directory
types:
path: path
doc: |
Remove a directory on disk, but only if it's empty.
- then: directory {path} exists
impl:
rust:
function: subplotlib::steplibrary::files::path_exists
python:
function: files_directory_exists
types:
path: path
doc: |
Check that a directory exists.
- then: directory {path} does not exist
impl:
rust:
function: subplotlib::steplibrary::files::path_does_not_exist
python:
function: files_directory_does_not_exist
types:
path: path
doc: |
Check that a directory does not exist.
- then: directory {path} is empty
impl:
rust:
function: subplotlib::steplibrary::files::path_is_empty
python:
function: files_directory_is_empty
types:
path: path
doc: |
Check that a directory exists and does not contain anything.
- then: directory {path} is not empty
impl:
rust:
function: subplotlib::steplibrary::files::path_is_not_empty
python:
function: files_directory_is_not_empty
types:
path: path
doc: |
Check that a directory exists and contains something.
- given: file (?P<filename>\S+) has modification time (?P<mtime>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
regex: true
impl:
rust:
function: subplotlib::steplibrary::files::touch_with_timestamp
python:
function: files_touch_with_timestamp
types:
filename: path
mtime: text
doc: |
Create a file with specific modification time.
- when: I remember metadata for file {filename}
impl:
rust:
function: subplotlib::steplibrary::files::remember_metadata
python:
function: files_remember_metadata
types:
filename: path
doc: |
Remember the metadata of a file.
- when: I touch file {filename}
impl:
rust:
function: subplotlib::steplibrary::files::touch
python:
function: files_touch
types:
filename: path
doc: |
Update the modification time of a file to be current time.
- then: file {filename} has same metadata as before
impl:
rust:
function: subplotlib::steplibrary::files::has_remembered_metadata
python:
function: files_has_remembered_metadata
types:
filename: path
doc: |
Check that a file has the same metadata as remembered from
earlier.
- then: file {filename} has different metadata from before
impl:
rust:
function: subplotlib::steplibrary::files::has_different_metadata
python:
function: files_has_different_metadata
types:
filename: path
doc: |
Check that a file metadata has changed from earlier.
- then: file {filename} has changed from before
impl:
rust:
function: subplotlib::steplibrary::files::has_different_metadata
python:
function: files_has_different_metadata
types:
filename: path
doc: |
Check that file metadata has changed from before.
- then: file {filename} has a very recent modification time
impl:
rust:
function: subplotlib::steplibrary::files::mtime_is_recent
python:
function: files_mtime_is_recent
types:
filename: path
doc: |
Check that file modification time is recent.
- then: file {filename} has a very old modification time
impl:
rust:
function: subplotlib::steplibrary::files::mtime_is_ancient
python:
function: files_mtime_is_ancient
types:
filename: path
doc: |
Check that file modification is far in the past.
- then: file {filename} exists
impl:
rust:
function: subplotlib::steplibrary::files::file_exists
python:
function: files_file_exists
types:
filename: path
doc: |
Check that a file exist.
- then: file {filename} does not exist
impl:
rust:
function: subplotlib::steplibrary::files::file_does_not_exist
python:
function: files_file_does_not_exist
types:
filename: path
doc: |
Check that a file does not exist.
- then: only files (?P<filenames>.+) exist
impl:
rust:
function: subplotlib::steplibrary::files::only_these_exist
python:
function: files_only_these_exist
regex: true
types:
filenames: text
doc: |
Check that the test directory only contains specific files.
- then: file {filename} contains "{data}"
impl:
rust:
function: subplotlib::steplibrary::files::file_contains
python:
function: files_file_contains
types:
filename: path
data: escapedtext
doc: |
Check that a file contains a string.
- then: file {filename} doesn't contain "{data}"
impl:
rust:
function: subplotlib::steplibrary::files::file_doesnt_contain
python:
function: files_file_doesnt_contain
types:
filename: path
data: escapedtext
doc: |
Check that a file does not contain a string.
- then: file {filename} matches regex /{regex}/
impl:
rust:
function: subplotlib::steplibrary::files::file_matches_regex
python:
function: files_file_matches_regex
types:
filename: path
regex: text
doc: |
Check that file content matches a regular expression.
- then: file {filename} matches regex "{regex}"
impl:
rust:
function: subplotlib::steplibrary::files::file_matches_regex
python:
function: files_file_matches_regex
types:
filename: path
regex: text
doc: |
Check that file content matches a regular expression.
- then: files {filename1} and {filename2} match
impl:
rust:
function: subplotlib::steplibrary::files::file_match
python:
function: files_match
types:
filename1: path
filename2: path
doc: |
Check that two files have the same content.
- then: files {filename1} and {filename2} on disk are identical
impl:
rust:
function: subplotlib::steplibrary::files::file_match
python:
function: files_match
types:
filename1: path
filename2: path
doc: |
Check that two files have the same content.
- then: files {filename1} and {filename2} on disk are different
impl:
rust:
function: subplotlib::steplibrary::files::file_do_not_match
python:
function: files_do_not_match
types:
filename1: path
filename2: path
doc: |
Check that two files do not have the same content.
- then: "file {filename} on disk and embedded file {embedded} are identical"
impl:
rust:
function: subplotlib::steplibrary::files::file_and_embedded_file_match
python:
function: file_and_embedded_file_match
types:
filename: path
embedded: file
doc: |
Check that a file on disk and an embedded file contain the same data.
- then: "file {filename} on disk and embedded file {embedded} are different"
impl:
rust:
function: subplotlib::steplibrary::files::file_and_embedded_file_do_not_match
python:
function: file_and_embedded_file_do_not_match
types:
filename: path
embedded: file
doc: |
Check that a file on disk and an embedded file do not contain the
same data.