Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/teemtee/fmf
Flexible Metadata Format
https://github.com/teemtee/fmf
metadata testing yaml
Last synced: 2 days ago
JSON representation
Flexible Metadata Format
- Host: GitHub
- URL: https://github.com/teemtee/fmf
- Owner: teemtee
- License: gpl-2.0
- Created: 2018-01-18T16:38:05.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2025-01-24T09:48:59.000Z (3 days ago)
- Last Synced: 2025-01-24T10:29:29.312Z (3 days ago)
- Topics: metadata, testing, yaml
- Language: Python
- Size: 434 KB
- Stars: 23
- Watchers: 10
- Forks: 29
- Open Issues: 56
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
======================
fmf
======================Flexible Metadata Format
Description
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~The ``fmf`` Python module and command line tool implement a
flexible format for defining metadata in plain text files which
can be stored close to the source code and structured in a
hierarchical way with support for inheritance.Although the proposal initially originated from user stories
centered around test execution, the format is general and thus
can be used in broader scenarios, e.g. test coverage mapping.Using this approach it's also possible to combine both test
execution metadata and test coverage information. Thanks to
elasticity and hierarchy it provides ability to organize data
into well-sized text documents while preventing duplication.Synopsis
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Command line usage is straightforward::
fmf command [options]
There are following commands available::
fmf ls List identifiers of available objects
fmf show Show metadata of available objects
fmf init Initialize a new metadata tree
fmf clean Remove cache directory and its contentExamples
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~List names of all objects stored in the metadata tree::
fmf ls
Show all test metadata (with 'test' attribute defined)::
fmf show --key test
Show metadata for all tree nodes (not only leaves)::
fmf show --key test --whole
List all attributes for the ``/recursion`` tests::
fmf show --key test --name /recursion
Show all covered requirements::
fmf show --key requirement --key coverage
Search for all tests with the ``Tier1`` tag defined and show a
brief summary of what was found::fmf show --key test --filter tags:Tier1 --verbose
Use arbitrary Python expressions to access deeper objects and
create more complex conditions::fmf show --condition "execute['how'] == 'shell'"
Initialize a new metadata tree in the current directory::
fmf init
Check help message of individual commands for the full list of
available options.Options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Here is the list of the most frequently used options.
Select
------Limit which metadata should be listed.
--key=KEYS
Key content definition (required attributes)--name=NAMES
List objects with name matching regular expression--filter=FLTRS
Apply advanced filter when selecting objects--condition=EXPR
Use arbitrary Python expression for filtering--whole
Consider the whole tree (leaves only by default)For filtering regular expressions can be used as well. See
``pydoc fmf.filter`` for advanced filtering options.Format
------Choose the best format for showing the metadata.
--format=FMT
Custom output format using the {} expansion--value=VALUES
Values for the custom formatting stringSee online documentation for details about custom format.
Utils
-----Various utility options.
--path PATHS
Path to the metadata tree (default: current directory)--verbose
Print additional information standard error output--debug
Turn on debugging output, do not catch exceptionsCheck help message of individual commands for the full list of
available options.Install
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~The fmf package is available in Fedora and EPEL::
dnf install fmf
Install the latest version from the Copr repository::
dnf copr enable @teemtee/fmf
dnf install fmfor use PIP::
pip install fmf
See documentation for more details about installation options.
Variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Here is the list of environment variables understood by fmf:
FMF_CACHE_DIRECTORY
Directory used to cache git clone calls for fmf identifiers.Links
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Git:
https://github.com/teemtee/fmfDocs:
http://fmf.readthedocs.io/Issues:
https://github.com/teemtee/fmf/issuesReleases:
https://github.com/teemtee/fmf/releasesCopr:
http://copr.fedoraproject.org/coprs/g/teemtee/fmfPIP:
https://pypi.org/project/fmf/Authors
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Petr Šplíchal, Miro Hrončok, Jakub Krysl, Jan Ščotka, Alois
Mahdal, Cleber Rosa, Miroslav Vadkerti, Lukáš Zachar, František
Nečas, Evgeny Fedin, Pablo Martin, Zhaojuan Guo, Laura Barcziová,
Petr Matyáš, Filip Vágner, Cristian Le, Ondrej Moriš, Martin
Hoyer and Karel Šrot.Copyright
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Copyright (c) 2018-2021 Red Hat, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.