diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 18:17:12 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 18:17:12 +0000 |
commit | 844e6c461c12fc3ae1b4be07a9ce5bc65b549ada (patch) | |
tree | 7053caabc68ba2c472326a6d569f5aceb476a5d3 /python-reportportal-client.spec | |
parent | c08b33a3cb2412751c82418e56a3e06433047fa6 (diff) |
automatic import of python-reportportal-client
Diffstat (limited to 'python-reportportal-client.spec')
-rw-r--r-- | python-reportportal-client.spec | 688 |
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 + +[](https://pypi.python.org/pypi/reportportal-client) +[](https://pypi.org/project/reportportal-client) +[](https://github.com/reportportal/client-Python/actions/workflows/tests.yml) +[](https://codecov.io/gh/reportportal/client-Python) +[](https://slack.epmrpp.reportportal.io/) +[](http://stackoverflow.com/questions/tagged/reportportal) +[](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 + +[](https://pypi.python.org/pypi/reportportal-client) +[](https://pypi.org/project/reportportal-client) +[](https://github.com/reportportal/client-Python/actions/workflows/tests.yml) +[](https://codecov.io/gh/reportportal/client-Python) +[](https://slack.epmrpp.reportportal.io/) +[](http://stackoverflow.com/questions/tagged/reportportal) +[](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 + +[](https://pypi.python.org/pypi/reportportal-client) +[](https://pypi.org/project/reportportal-client) +[](https://github.com/reportportal/client-Python/actions/workflows/tests.yml) +[](https://codecov.io/gh/reportportal/client-Python) +[](https://slack.epmrpp.reportportal.io/) +[](http://stackoverflow.com/questions/tagged/reportportal) +[](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 |