summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-bddsync.spec561
-rw-r--r--sources1
3 files changed, 563 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..6c16b31 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/bddsync-1.1.0.tar.gz
diff --git a/python-bddsync.spec b/python-bddsync.spec
new file mode 100644
index 0000000..8b5fddb
--- /dev/null
+++ b/python-bddsync.spec
@@ -0,0 +1,561 @@
+%global _empty_manifest_terminate_build 0
+Name: python-bddsync
+Version: 1.1.0
+Release: 1
+Summary: Tools to synchronize BDD files with test management tools like Jira-Xray
+License: MIT
+URL: https://github.com/Manzanero/bddsync
+Source0: https://mirrors.aliyun.com/pypi/web/packages/da/28/07ca643394375a201838321acd7837f8ae8de0a4af9e0e8a3c508c700733/bddsync-1.1.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# bddsync
+
+Tools to synchronize BDD files with test management tools like Jira-Xray
+
+## Setting Up
+
+Place a file named `bddfile.yml` in project root directory. Following this example:
+
+``` yaml
+version: <bddfile_version (example=1)>
+framework: <framework (example=behave)>
+features: <features_root_folder (example=features/)>
+result: <result_file_path (example=output/result.json)>
+
+url: <jira_base_url (example=https://jira.xxx.com)>
+test_repository: <test_repository_type (example=xray)>
+test_project: <test_project_id (example=ABC)>
+
+test_plans:
+ <tracked_test_plan_tag_1>: <tracked_test_plan_id_1 (example=ABC-123)>
+ <tracked_test_plan_tag_2>: <tracked_test_plan_id_2 (example=ABC-321)>
+ ...
+
+test_sets:
+ <tracked_test_sets_tag_1>: <tracked_test_sets_id_1 (example=ABC-456)>
+ <tracked_test_sets_tag_2>: <tracked_test_sets_id_2 (example=ABC-654)>
+ ...
+
+test_environments:
+ <test_environments_alias_1>: <test_environments_id_1 (example=INT)>
+ <test_environments_alias_2>: <test_environments_id_2 (example=PRO)>
+ ...
+
+fields:
+ test_repository_path: <test_repository_path_field (example=customfield_12)>
+ test_plans: <test_plans_field (example=customfield_34)>
+ execution_test_plans: <execution_test_plans_field (example=customfield_56)>
+ execution_test_environments: <execution_test_environments_field (example=customfield_78)>
+ execution_fix_versions: fixVersions
+
+required:
+ - <required_field_1 (example=execution_test_environments)>
+ - <required_field_2 (example=execution_fix_versions)>
+ ...
+```
+
+In each use, bddsync ask for credentials. To avoid this behaviour, set the environment variables
+`TEST_REPOSITORY_USER` and `TEST_REPOSITORY_PASS`
+
+## Usage
+
+Start with `bddsync` (with optional arguments) followed by the "command" from the list:
+
+```
+$ bddsync [-h] [--config CONFIG]
+ [-u TEST_REPOSITORY_USER] [-p TEST_REPOSITORY_PASS] COMMAND [-h] [...]
+
+optional arguments:
+ -h, --help show this help message and exit
+ --config CONFIG alternative path to bddsync.yml
+ -u TEST_REPOSITORY_USER if not in environment
+ -p TEST_REPOSITORY_PASS
+
+commands available:
+ test-repository-folders
+ features
+ scenarios
+ upload-features
+ upload-results
+ generate-docs
+```
+
+### test-repository-folders
+
+It shows the list of repository folders and the corresponding id:
+
+```
+$ bddsync [...] test-repository-folders [-h] [--folder FOLDER]
+
+optional arguments:
+ -h, --help show this help message and exit
+ --folder FOLDER folder to filter, else from root
+```
+
+### features
+
+It shows the list of features and the corresponding path:
+
+```
+$ bddsync [...] features [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### scenarios
+
+It shows the list of scenarios and the corresponding features:
+
+```
+$ bddsync [...] scenarios [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### upload-features
+
+Updates the test repository according to these guidelines:
+ - Tags will be repaired and reordered, (1st line for tracked tags, 2nd line for other tags)
+ - New scenarios in code will be created in test repository and receive their ID in code
+ - Updated scenarios in code will be updated in test repository
+ - Deleted scenarios in code **won't be deleted** in test repository, the user deletes tests in repository manually
+ - Renamed scenario in code **won't be renamed** in test repository, **the user will be warned and process stops**,
+ the user renames tests in repository manually
+ - Tracked test plan tag added to a scenario will add the test to the test plan
+ - Tracked test plan tag removed from a scenario will remove the test from the test plan
+ - If there are duplicated test names, **the user will be warned and process stops**
+ - If scenario were duplicated while process (fixes in progress), **the user will be warned but process doesn't stop**,
+ the user deletes duplicated tests in repository manually
+ (Tip: for Xray, avoid create tests in test repository first, the tests may be duplicated with this process)
+
+```
+$ bddsync [...] upload-features [-h] feature [feature ...]
+
+positional arguments:
+ feature can be a glob expression, use * as wildcard
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### upload-results
+
+Upload test results in cucumber format:
+
+```
+$ bddsync [...] upload-results [-h] [-n NAME] [-e ENVIRONMENTS] [-f FIX_VERSIONS]
+ [-p TEST_PLANS] [-l LABELS] result
+
+positional arguments:
+ result
+
+optional arguments:
+ -h, --help show this help message and exit
+ -n NAME, --name NAME name of test execution
+ -e ENVIRONMENTS, --environments ENVIRONMENTS comma separated environment names
+ -f FIX_VERSIONS, --fix-versions FIX_VERSIONS comma separated fix versions
+ -p TEST_PLANS, --test-plans TEST_PLANS comma separated test plans IDs
+ -l LABELS, --labels LABELS comma separated labels
+```
+
+### generate-docs
+
+It shows the description of features and scenarios:
+
+```
+$ bddsync [...] generate-docs [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+
+
+%package -n python3-bddsync
+Summary: Tools to synchronize BDD files with test management tools like Jira-Xray
+Provides: python-bddsync
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-bddsync
+# bddsync
+
+Tools to synchronize BDD files with test management tools like Jira-Xray
+
+## Setting Up
+
+Place a file named `bddfile.yml` in project root directory. Following this example:
+
+``` yaml
+version: <bddfile_version (example=1)>
+framework: <framework (example=behave)>
+features: <features_root_folder (example=features/)>
+result: <result_file_path (example=output/result.json)>
+
+url: <jira_base_url (example=https://jira.xxx.com)>
+test_repository: <test_repository_type (example=xray)>
+test_project: <test_project_id (example=ABC)>
+
+test_plans:
+ <tracked_test_plan_tag_1>: <tracked_test_plan_id_1 (example=ABC-123)>
+ <tracked_test_plan_tag_2>: <tracked_test_plan_id_2 (example=ABC-321)>
+ ...
+
+test_sets:
+ <tracked_test_sets_tag_1>: <tracked_test_sets_id_1 (example=ABC-456)>
+ <tracked_test_sets_tag_2>: <tracked_test_sets_id_2 (example=ABC-654)>
+ ...
+
+test_environments:
+ <test_environments_alias_1>: <test_environments_id_1 (example=INT)>
+ <test_environments_alias_2>: <test_environments_id_2 (example=PRO)>
+ ...
+
+fields:
+ test_repository_path: <test_repository_path_field (example=customfield_12)>
+ test_plans: <test_plans_field (example=customfield_34)>
+ execution_test_plans: <execution_test_plans_field (example=customfield_56)>
+ execution_test_environments: <execution_test_environments_field (example=customfield_78)>
+ execution_fix_versions: fixVersions
+
+required:
+ - <required_field_1 (example=execution_test_environments)>
+ - <required_field_2 (example=execution_fix_versions)>
+ ...
+```
+
+In each use, bddsync ask for credentials. To avoid this behaviour, set the environment variables
+`TEST_REPOSITORY_USER` and `TEST_REPOSITORY_PASS`
+
+## Usage
+
+Start with `bddsync` (with optional arguments) followed by the "command" from the list:
+
+```
+$ bddsync [-h] [--config CONFIG]
+ [-u TEST_REPOSITORY_USER] [-p TEST_REPOSITORY_PASS] COMMAND [-h] [...]
+
+optional arguments:
+ -h, --help show this help message and exit
+ --config CONFIG alternative path to bddsync.yml
+ -u TEST_REPOSITORY_USER if not in environment
+ -p TEST_REPOSITORY_PASS
+
+commands available:
+ test-repository-folders
+ features
+ scenarios
+ upload-features
+ upload-results
+ generate-docs
+```
+
+### test-repository-folders
+
+It shows the list of repository folders and the corresponding id:
+
+```
+$ bddsync [...] test-repository-folders [-h] [--folder FOLDER]
+
+optional arguments:
+ -h, --help show this help message and exit
+ --folder FOLDER folder to filter, else from root
+```
+
+### features
+
+It shows the list of features and the corresponding path:
+
+```
+$ bddsync [...] features [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### scenarios
+
+It shows the list of scenarios and the corresponding features:
+
+```
+$ bddsync [...] scenarios [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### upload-features
+
+Updates the test repository according to these guidelines:
+ - Tags will be repaired and reordered, (1st line for tracked tags, 2nd line for other tags)
+ - New scenarios in code will be created in test repository and receive their ID in code
+ - Updated scenarios in code will be updated in test repository
+ - Deleted scenarios in code **won't be deleted** in test repository, the user deletes tests in repository manually
+ - Renamed scenario in code **won't be renamed** in test repository, **the user will be warned and process stops**,
+ the user renames tests in repository manually
+ - Tracked test plan tag added to a scenario will add the test to the test plan
+ - Tracked test plan tag removed from a scenario will remove the test from the test plan
+ - If there are duplicated test names, **the user will be warned and process stops**
+ - If scenario were duplicated while process (fixes in progress), **the user will be warned but process doesn't stop**,
+ the user deletes duplicated tests in repository manually
+ (Tip: for Xray, avoid create tests in test repository first, the tests may be duplicated with this process)
+
+```
+$ bddsync [...] upload-features [-h] feature [feature ...]
+
+positional arguments:
+ feature can be a glob expression, use * as wildcard
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### upload-results
+
+Upload test results in cucumber format:
+
+```
+$ bddsync [...] upload-results [-h] [-n NAME] [-e ENVIRONMENTS] [-f FIX_VERSIONS]
+ [-p TEST_PLANS] [-l LABELS] result
+
+positional arguments:
+ result
+
+optional arguments:
+ -h, --help show this help message and exit
+ -n NAME, --name NAME name of test execution
+ -e ENVIRONMENTS, --environments ENVIRONMENTS comma separated environment names
+ -f FIX_VERSIONS, --fix-versions FIX_VERSIONS comma separated fix versions
+ -p TEST_PLANS, --test-plans TEST_PLANS comma separated test plans IDs
+ -l LABELS, --labels LABELS comma separated labels
+```
+
+### generate-docs
+
+It shows the description of features and scenarios:
+
+```
+$ bddsync [...] generate-docs [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+
+
+%package help
+Summary: Development documents and examples for bddsync
+Provides: python3-bddsync-doc
+%description help
+# bddsync
+
+Tools to synchronize BDD files with test management tools like Jira-Xray
+
+## Setting Up
+
+Place a file named `bddfile.yml` in project root directory. Following this example:
+
+``` yaml
+version: <bddfile_version (example=1)>
+framework: <framework (example=behave)>
+features: <features_root_folder (example=features/)>
+result: <result_file_path (example=output/result.json)>
+
+url: <jira_base_url (example=https://jira.xxx.com)>
+test_repository: <test_repository_type (example=xray)>
+test_project: <test_project_id (example=ABC)>
+
+test_plans:
+ <tracked_test_plan_tag_1>: <tracked_test_plan_id_1 (example=ABC-123)>
+ <tracked_test_plan_tag_2>: <tracked_test_plan_id_2 (example=ABC-321)>
+ ...
+
+test_sets:
+ <tracked_test_sets_tag_1>: <tracked_test_sets_id_1 (example=ABC-456)>
+ <tracked_test_sets_tag_2>: <tracked_test_sets_id_2 (example=ABC-654)>
+ ...
+
+test_environments:
+ <test_environments_alias_1>: <test_environments_id_1 (example=INT)>
+ <test_environments_alias_2>: <test_environments_id_2 (example=PRO)>
+ ...
+
+fields:
+ test_repository_path: <test_repository_path_field (example=customfield_12)>
+ test_plans: <test_plans_field (example=customfield_34)>
+ execution_test_plans: <execution_test_plans_field (example=customfield_56)>
+ execution_test_environments: <execution_test_environments_field (example=customfield_78)>
+ execution_fix_versions: fixVersions
+
+required:
+ - <required_field_1 (example=execution_test_environments)>
+ - <required_field_2 (example=execution_fix_versions)>
+ ...
+```
+
+In each use, bddsync ask for credentials. To avoid this behaviour, set the environment variables
+`TEST_REPOSITORY_USER` and `TEST_REPOSITORY_PASS`
+
+## Usage
+
+Start with `bddsync` (with optional arguments) followed by the "command" from the list:
+
+```
+$ bddsync [-h] [--config CONFIG]
+ [-u TEST_REPOSITORY_USER] [-p TEST_REPOSITORY_PASS] COMMAND [-h] [...]
+
+optional arguments:
+ -h, --help show this help message and exit
+ --config CONFIG alternative path to bddsync.yml
+ -u TEST_REPOSITORY_USER if not in environment
+ -p TEST_REPOSITORY_PASS
+
+commands available:
+ test-repository-folders
+ features
+ scenarios
+ upload-features
+ upload-results
+ generate-docs
+```
+
+### test-repository-folders
+
+It shows the list of repository folders and the corresponding id:
+
+```
+$ bddsync [...] test-repository-folders [-h] [--folder FOLDER]
+
+optional arguments:
+ -h, --help show this help message and exit
+ --folder FOLDER folder to filter, else from root
+```
+
+### features
+
+It shows the list of features and the corresponding path:
+
+```
+$ bddsync [...] features [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### scenarios
+
+It shows the list of scenarios and the corresponding features:
+
+```
+$ bddsync [...] scenarios [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### upload-features
+
+Updates the test repository according to these guidelines:
+ - Tags will be repaired and reordered, (1st line for tracked tags, 2nd line for other tags)
+ - New scenarios in code will be created in test repository and receive their ID in code
+ - Updated scenarios in code will be updated in test repository
+ - Deleted scenarios in code **won't be deleted** in test repository, the user deletes tests in repository manually
+ - Renamed scenario in code **won't be renamed** in test repository, **the user will be warned and process stops**,
+ the user renames tests in repository manually
+ - Tracked test plan tag added to a scenario will add the test to the test plan
+ - Tracked test plan tag removed from a scenario will remove the test from the test plan
+ - If there are duplicated test names, **the user will be warned and process stops**
+ - If scenario were duplicated while process (fixes in progress), **the user will be warned but process doesn't stop**,
+ the user deletes duplicated tests in repository manually
+ (Tip: for Xray, avoid create tests in test repository first, the tests may be duplicated with this process)
+
+```
+$ bddsync [...] upload-features [-h] feature [feature ...]
+
+positional arguments:
+ feature can be a glob expression, use * as wildcard
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+### upload-results
+
+Upload test results in cucumber format:
+
+```
+$ bddsync [...] upload-results [-h] [-n NAME] [-e ENVIRONMENTS] [-f FIX_VERSIONS]
+ [-p TEST_PLANS] [-l LABELS] result
+
+positional arguments:
+ result
+
+optional arguments:
+ -h, --help show this help message and exit
+ -n NAME, --name NAME name of test execution
+ -e ENVIRONMENTS, --environments ENVIRONMENTS comma separated environment names
+ -f FIX_VERSIONS, --fix-versions FIX_VERSIONS comma separated fix versions
+ -p TEST_PLANS, --test-plans TEST_PLANS comma separated test plans IDs
+ -l LABELS, --labels LABELS comma separated labels
+```
+
+### generate-docs
+
+It shows the description of features and scenarios:
+
+```
+$ bddsync [...] generate-docs [-h]
+
+optional arguments:
+ -h, --help show this help message and exit
+```
+
+
+
+%prep
+%autosetup -n bddsync-1.1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-bddsync -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..b819da1
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+5bd67fed64730cde09f0fc7ea7efbe7a bddsync-1.1.0.tar.gz