summaryrefslogtreecommitdiff
path: root/python-reportportal-client.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 18:17:12 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 18:17:12 +0000
commit844e6c461c12fc3ae1b4be07a9ce5bc65b549ada (patch)
tree7053caabc68ba2c472326a6d569f5aceb476a5d3 /python-reportportal-client.spec
parentc08b33a3cb2412751c82418e56a3e06433047fa6 (diff)
automatic import of python-reportportal-client
Diffstat (limited to 'python-reportportal-client.spec')
-rw-r--r--python-reportportal-client.spec688
1 files changed, 688 insertions, 0 deletions
diff --git a/python-reportportal-client.spec b/python-reportportal-client.spec
new file mode 100644
index 0000000..5cb73b5
--- /dev/null
+++ b/python-reportportal-client.spec
@@ -0,0 +1,688 @@
+%global _empty_manifest_terminate_build 0
+Name: python-reportportal-client
+Version: 5.3.0
+Release: 1
+Summary: Python client for Report Portal v5.
+License: Apache 2.0.
+URL: https://github.com/reportportal/client-Python
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/00/bc/3d445b367a299cbeba361f5ea39a995b216eaa49f6ed9f591891a8d1e1a5/reportportal-client-5.3.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-aenum
+Requires: python3-delayed-assert
+Requires: python3-requests
+Requires: python3-six
+
+%description
+# ReportPortal python client
+
+[![PyPI](https://img.shields.io/pypi/v/reportportal-client.svg?maxAge=259200)](https://pypi.python.org/pypi/reportportal-client)
+[![Python versions](https://img.shields.io/pypi/pyversions/reportportal-client.svg)](https://pypi.org/project/reportportal-client)
+[![Build Status](https://github.com/reportportal/client-Python/actions/workflows/tests.yml/badge.svg)](https://github.com/reportportal/client-Python/actions/workflows/tests.yml)
+[![codecov.io](https://codecov.io/gh/reportportal/client-Python/branch/master/graph/badge.svg)](https://codecov.io/gh/reportportal/client-Python)
+[![Join Slack chat!](https://slack.epmrpp.reportportal.io/badge.svg)](https://slack.epmrpp.reportportal.io/)
+[![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal)
+[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat)
+
+Library used only for implementors of custom listeners for ReportPortal
+
+
+## Already implemented listeners:
+
+- [PyTest Framework](https://github.com/reportportal/agent-python-pytest)
+- [Robot Framework](https://github.com/reportportal/agent-Python-RobotFramework)
+- [Behave Framework](https://github.com/reportportal/agent-python-behave)
+- [Nose Framework](https://github.com/reportportal/agent-python-nosetests)
+
+
+## Installation
+
+The latest stable version is available on PyPI:
+
+```
+pip install reportportal-client
+```
+
+**IMPORTANT!**
+The latest client version **does** not support Report Portal versions below
+5.0.0.
+
+Version 3 is the latest one which supports Report Portal versions below 5.0.0
+to install it:
+
+```
+pip install reportportal-client~=3.0
+```
+
+
+## Contribution
+
+All the fixes for the client that supports Report Portal versions below 5.0.0
+should go into the v3 branch. The master branch will store the code base for
+the client for Report Portal versions 5 and above.
+
+
+## Usage
+
+Main classes are:
+
+- reportportal_client.ReportPortalService
+- reportportal_client.ReportPortalServiceAsync(Client version 3.x only)
+
+Basic usage example:
+
+```python
+import os
+import subprocess
+import traceback
+from mimetypes import guess_type
+from time import time
+
+# Report Portal versions below 5.0.0:
+from reportportal_client import ReportPortalServiceAsync
+
+# Report Portal versions >= 5.0.0:
+from reportportal_client import ReportPortalService
+
+
+def timestamp():
+ return str(int(time() * 1000))
+
+
+endpoint = "http://10.6.40.6:8080"
+project = "default"
+# You can get UUID from user profile page in the Report Portal.
+token = "1adf271d-505f-44a8-ad71-0afbdf8c83bd"
+launch_name = "Test launch"
+launch_doc = "Testing logging with attachment."
+
+
+def my_error_handler(exc_info):
+ """
+ This callback function will be called by async service client when error occurs.
+ Return True if error is not critical and you want to continue work.
+ :param exc_info: result of sys.exc_info() -> (type, value, traceback)
+ :return:
+ """
+ print("Error occurred: {}".format(exc_info[1]))
+ traceback.print_exception(*exc_info)
+
+
+# Report Portal versions below 5.0.0:
+service = ReportPortalServiceAsync(endpoint=endpoint, project=project,
+ token=token, error_handler=my_error_handler)
+
+# Report Portal versions >= 5.0.0:
+service = ReportPortalService(endpoint=endpoint, project=project,
+ token=token)
+
+# Start launch.
+launch = service.start_launch(name=launch_name,
+ start_time=timestamp(),
+ description=launch_doc)
+
+# Start test item Report Portal versions below 5.0.0:
+test = service.start_test_item(name="Test Case",
+ description="First Test Case",
+ tags=["Image", "Smoke"],
+ start_time=timestamp(),
+ item_type="STEP",
+ parameters={"key1": "val1",
+ "key2": "val2"})
+
+# Start test item Report Portal versions >= 5.0.0:
+item_id = service.start_test_item(name="Test Case",
+ description="First Test Case",
+ start_time=timestamp(),
+ item_type="STEP",
+ parameters={"key1": "val1",
+ "key2": "val2"})
+
+
+# Create text log message with INFO level.
+service.log(time=timestamp(),
+ message="Hello World!",
+ level="INFO")
+
+# Create log message with attached text output and WARN level.
+service.log(time=timestamp(),
+ message="Too high memory usage!",
+ level="WARN",
+ attachment={
+ "name": "free_memory.txt",
+ "data": subprocess.check_output("free -h".split()),
+ "mime": "text/plain"
+ })
+
+# Create log message with binary file, INFO level and custom mimetype.
+image = "/tmp/image.png"
+with open(image, "rb") as fh:
+ attachment = {
+ "name": os.path.basename(image),
+ "data": fh.read(),
+ "mime": guess_type(image)[0] or "application/octet-stream"
+ }
+ service.log(timestamp(), "Screen shot of issue.", "INFO", attachment)
+
+# Create log message supplying only contents
+service.log(
+ timestamp(),
+ "running processes",
+ "INFO",
+ attachment=subprocess.check_output("ps aux".split()))
+
+# Finish test item Report Portal versions below 5.0.0.
+service.finish_test_item(end_time=timestamp(), status="PASSED")
+
+# Finish test item Report Portal versions >= 5.0.0.
+service.finish_test_item(item_id=item_id, end_time=timestamp(), status="PASSED")
+
+# Finish launch.
+service.finish_launch(end_time=timestamp())
+
+# Due to async nature of the service we need to call terminate() method which
+# ensures all pending requests to server are processed.
+# Failure to call terminate() may result in lost data.
+service.terminate()
+```
+
+
+# Send attachment (screenshots)
+
+[python-client](https://github.com/reportportal/client-Python/blob/64550693ec9c198b439f8f6e8b23413812d9adf1/reportportal_client/service.py#L259) uses `requests` library for working with RP and the same semantics to work with attachments (data).
+
+There are two ways to pass data as attachment:
+
+### Case 1 - pass file-like object
+```
+with open(screenshot_file_path, "rb") as image_file:
+ rp_logger.info("Some Text Here",
+ attachment={"name": "test_name_screenshot.png",
+ "data": image_file,
+ "mime": "image/png"})
+```
+
+### Case 2 - pass file content itself (like you did)
+```
+with open(screenshot_file_path, "rb") as image_file:
+ file_data = image_file.read()
+
+rp_logger.info("Some Text Here",
+ attachment={"name": "test_name_screenshot.png",
+ "data": file_data,
+ "mime": "image/png"})
+```
+
+
+# Copyright Notice
+
+Licensed under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+license (see the LICENSE.txt file).
+
+
+%package -n python3-reportportal-client
+Summary: Python client for Report Portal v5.
+Provides: python-reportportal-client
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-reportportal-client
+# ReportPortal python client
+
+[![PyPI](https://img.shields.io/pypi/v/reportportal-client.svg?maxAge=259200)](https://pypi.python.org/pypi/reportportal-client)
+[![Python versions](https://img.shields.io/pypi/pyversions/reportportal-client.svg)](https://pypi.org/project/reportportal-client)
+[![Build Status](https://github.com/reportportal/client-Python/actions/workflows/tests.yml/badge.svg)](https://github.com/reportportal/client-Python/actions/workflows/tests.yml)
+[![codecov.io](https://codecov.io/gh/reportportal/client-Python/branch/master/graph/badge.svg)](https://codecov.io/gh/reportportal/client-Python)
+[![Join Slack chat!](https://slack.epmrpp.reportportal.io/badge.svg)](https://slack.epmrpp.reportportal.io/)
+[![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal)
+[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat)
+
+Library used only for implementors of custom listeners for ReportPortal
+
+
+## Already implemented listeners:
+
+- [PyTest Framework](https://github.com/reportportal/agent-python-pytest)
+- [Robot Framework](https://github.com/reportportal/agent-Python-RobotFramework)
+- [Behave Framework](https://github.com/reportportal/agent-python-behave)
+- [Nose Framework](https://github.com/reportportal/agent-python-nosetests)
+
+
+## Installation
+
+The latest stable version is available on PyPI:
+
+```
+pip install reportportal-client
+```
+
+**IMPORTANT!**
+The latest client version **does** not support Report Portal versions below
+5.0.0.
+
+Version 3 is the latest one which supports Report Portal versions below 5.0.0
+to install it:
+
+```
+pip install reportportal-client~=3.0
+```
+
+
+## Contribution
+
+All the fixes for the client that supports Report Portal versions below 5.0.0
+should go into the v3 branch. The master branch will store the code base for
+the client for Report Portal versions 5 and above.
+
+
+## Usage
+
+Main classes are:
+
+- reportportal_client.ReportPortalService
+- reportportal_client.ReportPortalServiceAsync(Client version 3.x only)
+
+Basic usage example:
+
+```python
+import os
+import subprocess
+import traceback
+from mimetypes import guess_type
+from time import time
+
+# Report Portal versions below 5.0.0:
+from reportportal_client import ReportPortalServiceAsync
+
+# Report Portal versions >= 5.0.0:
+from reportportal_client import ReportPortalService
+
+
+def timestamp():
+ return str(int(time() * 1000))
+
+
+endpoint = "http://10.6.40.6:8080"
+project = "default"
+# You can get UUID from user profile page in the Report Portal.
+token = "1adf271d-505f-44a8-ad71-0afbdf8c83bd"
+launch_name = "Test launch"
+launch_doc = "Testing logging with attachment."
+
+
+def my_error_handler(exc_info):
+ """
+ This callback function will be called by async service client when error occurs.
+ Return True if error is not critical and you want to continue work.
+ :param exc_info: result of sys.exc_info() -> (type, value, traceback)
+ :return:
+ """
+ print("Error occurred: {}".format(exc_info[1]))
+ traceback.print_exception(*exc_info)
+
+
+# Report Portal versions below 5.0.0:
+service = ReportPortalServiceAsync(endpoint=endpoint, project=project,
+ token=token, error_handler=my_error_handler)
+
+# Report Portal versions >= 5.0.0:
+service = ReportPortalService(endpoint=endpoint, project=project,
+ token=token)
+
+# Start launch.
+launch = service.start_launch(name=launch_name,
+ start_time=timestamp(),
+ description=launch_doc)
+
+# Start test item Report Portal versions below 5.0.0:
+test = service.start_test_item(name="Test Case",
+ description="First Test Case",
+ tags=["Image", "Smoke"],
+ start_time=timestamp(),
+ item_type="STEP",
+ parameters={"key1": "val1",
+ "key2": "val2"})
+
+# Start test item Report Portal versions >= 5.0.0:
+item_id = service.start_test_item(name="Test Case",
+ description="First Test Case",
+ start_time=timestamp(),
+ item_type="STEP",
+ parameters={"key1": "val1",
+ "key2": "val2"})
+
+
+# Create text log message with INFO level.
+service.log(time=timestamp(),
+ message="Hello World!",
+ level="INFO")
+
+# Create log message with attached text output and WARN level.
+service.log(time=timestamp(),
+ message="Too high memory usage!",
+ level="WARN",
+ attachment={
+ "name": "free_memory.txt",
+ "data": subprocess.check_output("free -h".split()),
+ "mime": "text/plain"
+ })
+
+# Create log message with binary file, INFO level and custom mimetype.
+image = "/tmp/image.png"
+with open(image, "rb") as fh:
+ attachment = {
+ "name": os.path.basename(image),
+ "data": fh.read(),
+ "mime": guess_type(image)[0] or "application/octet-stream"
+ }
+ service.log(timestamp(), "Screen shot of issue.", "INFO", attachment)
+
+# Create log message supplying only contents
+service.log(
+ timestamp(),
+ "running processes",
+ "INFO",
+ attachment=subprocess.check_output("ps aux".split()))
+
+# Finish test item Report Portal versions below 5.0.0.
+service.finish_test_item(end_time=timestamp(), status="PASSED")
+
+# Finish test item Report Portal versions >= 5.0.0.
+service.finish_test_item(item_id=item_id, end_time=timestamp(), status="PASSED")
+
+# Finish launch.
+service.finish_launch(end_time=timestamp())
+
+# Due to async nature of the service we need to call terminate() method which
+# ensures all pending requests to server are processed.
+# Failure to call terminate() may result in lost data.
+service.terminate()
+```
+
+
+# Send attachment (screenshots)
+
+[python-client](https://github.com/reportportal/client-Python/blob/64550693ec9c198b439f8f6e8b23413812d9adf1/reportportal_client/service.py#L259) uses `requests` library for working with RP and the same semantics to work with attachments (data).
+
+There are two ways to pass data as attachment:
+
+### Case 1 - pass file-like object
+```
+with open(screenshot_file_path, "rb") as image_file:
+ rp_logger.info("Some Text Here",
+ attachment={"name": "test_name_screenshot.png",
+ "data": image_file,
+ "mime": "image/png"})
+```
+
+### Case 2 - pass file content itself (like you did)
+```
+with open(screenshot_file_path, "rb") as image_file:
+ file_data = image_file.read()
+
+rp_logger.info("Some Text Here",
+ attachment={"name": "test_name_screenshot.png",
+ "data": file_data,
+ "mime": "image/png"})
+```
+
+
+# Copyright Notice
+
+Licensed under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+license (see the LICENSE.txt file).
+
+
+%package help
+Summary: Development documents and examples for reportportal-client
+Provides: python3-reportportal-client-doc
+%description help
+# ReportPortal python client
+
+[![PyPI](https://img.shields.io/pypi/v/reportportal-client.svg?maxAge=259200)](https://pypi.python.org/pypi/reportportal-client)
+[![Python versions](https://img.shields.io/pypi/pyversions/reportportal-client.svg)](https://pypi.org/project/reportportal-client)
+[![Build Status](https://github.com/reportportal/client-Python/actions/workflows/tests.yml/badge.svg)](https://github.com/reportportal/client-Python/actions/workflows/tests.yml)
+[![codecov.io](https://codecov.io/gh/reportportal/client-Python/branch/master/graph/badge.svg)](https://codecov.io/gh/reportportal/client-Python)
+[![Join Slack chat!](https://slack.epmrpp.reportportal.io/badge.svg)](https://slack.epmrpp.reportportal.io/)
+[![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal)
+[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat)
+
+Library used only for implementors of custom listeners for ReportPortal
+
+
+## Already implemented listeners:
+
+- [PyTest Framework](https://github.com/reportportal/agent-python-pytest)
+- [Robot Framework](https://github.com/reportportal/agent-Python-RobotFramework)
+- [Behave Framework](https://github.com/reportportal/agent-python-behave)
+- [Nose Framework](https://github.com/reportportal/agent-python-nosetests)
+
+
+## Installation
+
+The latest stable version is available on PyPI:
+
+```
+pip install reportportal-client
+```
+
+**IMPORTANT!**
+The latest client version **does** not support Report Portal versions below
+5.0.0.
+
+Version 3 is the latest one which supports Report Portal versions below 5.0.0
+to install it:
+
+```
+pip install reportportal-client~=3.0
+```
+
+
+## Contribution
+
+All the fixes for the client that supports Report Portal versions below 5.0.0
+should go into the v3 branch. The master branch will store the code base for
+the client for Report Portal versions 5 and above.
+
+
+## Usage
+
+Main classes are:
+
+- reportportal_client.ReportPortalService
+- reportportal_client.ReportPortalServiceAsync(Client version 3.x only)
+
+Basic usage example:
+
+```python
+import os
+import subprocess
+import traceback
+from mimetypes import guess_type
+from time import time
+
+# Report Portal versions below 5.0.0:
+from reportportal_client import ReportPortalServiceAsync
+
+# Report Portal versions >= 5.0.0:
+from reportportal_client import ReportPortalService
+
+
+def timestamp():
+ return str(int(time() * 1000))
+
+
+endpoint = "http://10.6.40.6:8080"
+project = "default"
+# You can get UUID from user profile page in the Report Portal.
+token = "1adf271d-505f-44a8-ad71-0afbdf8c83bd"
+launch_name = "Test launch"
+launch_doc = "Testing logging with attachment."
+
+
+def my_error_handler(exc_info):
+ """
+ This callback function will be called by async service client when error occurs.
+ Return True if error is not critical and you want to continue work.
+ :param exc_info: result of sys.exc_info() -> (type, value, traceback)
+ :return:
+ """
+ print("Error occurred: {}".format(exc_info[1]))
+ traceback.print_exception(*exc_info)
+
+
+# Report Portal versions below 5.0.0:
+service = ReportPortalServiceAsync(endpoint=endpoint, project=project,
+ token=token, error_handler=my_error_handler)
+
+# Report Portal versions >= 5.0.0:
+service = ReportPortalService(endpoint=endpoint, project=project,
+ token=token)
+
+# Start launch.
+launch = service.start_launch(name=launch_name,
+ start_time=timestamp(),
+ description=launch_doc)
+
+# Start test item Report Portal versions below 5.0.0:
+test = service.start_test_item(name="Test Case",
+ description="First Test Case",
+ tags=["Image", "Smoke"],
+ start_time=timestamp(),
+ item_type="STEP",
+ parameters={"key1": "val1",
+ "key2": "val2"})
+
+# Start test item Report Portal versions >= 5.0.0:
+item_id = service.start_test_item(name="Test Case",
+ description="First Test Case",
+ start_time=timestamp(),
+ item_type="STEP",
+ parameters={"key1": "val1",
+ "key2": "val2"})
+
+
+# Create text log message with INFO level.
+service.log(time=timestamp(),
+ message="Hello World!",
+ level="INFO")
+
+# Create log message with attached text output and WARN level.
+service.log(time=timestamp(),
+ message="Too high memory usage!",
+ level="WARN",
+ attachment={
+ "name": "free_memory.txt",
+ "data": subprocess.check_output("free -h".split()),
+ "mime": "text/plain"
+ })
+
+# Create log message with binary file, INFO level and custom mimetype.
+image = "/tmp/image.png"
+with open(image, "rb") as fh:
+ attachment = {
+ "name": os.path.basename(image),
+ "data": fh.read(),
+ "mime": guess_type(image)[0] or "application/octet-stream"
+ }
+ service.log(timestamp(), "Screen shot of issue.", "INFO", attachment)
+
+# Create log message supplying only contents
+service.log(
+ timestamp(),
+ "running processes",
+ "INFO",
+ attachment=subprocess.check_output("ps aux".split()))
+
+# Finish test item Report Portal versions below 5.0.0.
+service.finish_test_item(end_time=timestamp(), status="PASSED")
+
+# Finish test item Report Portal versions >= 5.0.0.
+service.finish_test_item(item_id=item_id, end_time=timestamp(), status="PASSED")
+
+# Finish launch.
+service.finish_launch(end_time=timestamp())
+
+# Due to async nature of the service we need to call terminate() method which
+# ensures all pending requests to server are processed.
+# Failure to call terminate() may result in lost data.
+service.terminate()
+```
+
+
+# Send attachment (screenshots)
+
+[python-client](https://github.com/reportportal/client-Python/blob/64550693ec9c198b439f8f6e8b23413812d9adf1/reportportal_client/service.py#L259) uses `requests` library for working with RP and the same semantics to work with attachments (data).
+
+There are two ways to pass data as attachment:
+
+### Case 1 - pass file-like object
+```
+with open(screenshot_file_path, "rb") as image_file:
+ rp_logger.info("Some Text Here",
+ attachment={"name": "test_name_screenshot.png",
+ "data": image_file,
+ "mime": "image/png"})
+```
+
+### Case 2 - pass file content itself (like you did)
+```
+with open(screenshot_file_path, "rb") as image_file:
+ file_data = image_file.read()
+
+rp_logger.info("Some Text Here",
+ attachment={"name": "test_name_screenshot.png",
+ "data": file_data,
+ "mime": "image/png"})
+```
+
+
+# Copyright Notice
+
+Licensed under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+license (see the LICENSE.txt file).
+
+
+%prep
+%autosetup -n reportportal-client-5.3.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-reportportal-client -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 5.3.0-1
+- Package Spec generated