Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/build-httpctrl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ jobs:
run: ci/github-ci.sh

- name: Archive artifacts
uses: actions/upload-artifact@v2
if: always()
uses: actions/upload-artifact@v4
with:
name: SCT test reports
path: |
Expand Down
15 changes: 15 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
------------------------------------------------------------------------

CHANGE NOTES FOR 0.3.2 (RELEASED: Sep 11, 2025)

------------------------------------------------------------------------

GENERAL CHANGES

- Add `pyproject.toml` to support modern PEP 517/518 builds.
See: https://github.com/annoviko/robotframework-httpctrl/issues/44

- Removed `setup.py` - old-style installs may not work.
See: https://github.com/annoviko/robotframework-httpctrl/issues/44


------------------------------------------------------------------------

CHANGE NOTES FOR 0.3.1 (RELEASED: Dec 3, 2022)

------------------------------------------------------------------------
Expand Down
92 changes: 2 additions & 90 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,34 +1,14 @@
|Build Status Linux| |PyPi|

HttpCtrl library for Robot Framework
====================================

**RobotFramework-HttpCtrl** is a library for Robot Framework that provides HTTP/HTTPS client and HTTP server (IPv4 and IPv6) services
**RobotFramework-HttpCtrl** is a library for Robot Framework that provides HTTP/HTTPS client and HTTP (IPv4 and IPv6) server services
to make REST API testing easy.

**Author**: Andrei Novikov

**License**: The 3-Clause BSD License

**Documentation**: https://annoviko.github.io/robotframework-httpctrl/


Request Feature
===============

New features are implemented by request that can be created here using issues [`Press Me to Create a Feature Request`_]. Please, do not hesitate to create feature requests.

.. _Press Me to Create a Feature Request: https://github.com/annoviko/robotframework-httpctrl/issues/new?assignees=&labels=&template=feature_request.md&title=


Bug Reporting
=============

Please, do not hesitate to report about bugs using issues here [`Press Me to Report a Bug`_].

.. _Press Me to Report a Bug: https://github.com/annoviko/robotframework-httpctrl/issues/new?assignees=&labels=bug&template=bug_report.md&title=


Dependencies
============

Expand Down Expand Up @@ -73,7 +53,6 @@ Send GET request to obtain origin IP address and check that is not empty:

*** Settings ***

Library String
Library HttpCtrl.Client
Library HttpCtrl.Json

Expand All @@ -94,67 +73,6 @@ Send GET request to obtain origin IP address and check that is not empty:
Should Not Be Empty ${origin}


Send POST request and extract required information from response:

.. code:: robotframework

*** Settings ***

Library String
Library HttpCtrl.Client
Library HttpCtrl.Json

*** Test Cases ***

Send POST Request
Initialize Client www.httpbin.org

${body}= Set Variable { "message": "Hello World!" }
Send HTTP Request POST /post ${body}

${response status}= Get Response Status
${response body}= Get Response Body
${response body}= Decode Bytes To String ${response body} UTF-8

${expected status}= Convert To Integer 200
Should Be Equal ${response status} ${expected status}

${message}= Get Json Value From String ${response body} data
Should Be Equal ${message} ${body}


Send PATCH request using HTTPS protocol:

.. code:: robotframework

*** Settings ***

Library String
Library HttpCtrl.Client
Library HttpCtrl.Json

*** Test Cases ***

Send HTTPS PATCH Request
Initialize Client www.httpbin.org

${body}= Set Variable { "volume": 77, "mute": false }
Send HTTPS Request PATCH /patch ${body}

${response status}= Get Response Status
${response body}= Get Response Body
${response body}= Decode Bytes To String ${response body} UTF-8

${expected status}= Convert To Integer 200
Should Be Equal ${response status} ${expected status}

${volume}= Get Json Value From String ${response body} json/volume
Should Be Equal ${volume} ${77}

${mute}= Get Json Value From String ${response body} json/mute
Should Be Equal ${mute} ${False}


In this example HTTP client sends POST request to HTTP server. HTTP server receives it and checks incoming
request for correctness.

Expand Down Expand Up @@ -194,10 +112,4 @@ request for correctness.
Start Server 127.0.0.1 8000

Terminate HTTP Server
Stop Server


.. |Build Status Linux| image:: https://github.com/annoviko/robotframework-httpctrl/actions/workflows/build-httpctrl.yml/badge.svg
:target: https://github.com/annoviko/robotframework-httpctrl/actions
.. |PyPi| image:: https://badge.fury.io/py/robotframework-httpctrl.svg
:target: https://badge.fury.io/py/robotframework-httpctrl
Stop Server
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.3.1
0.3.2
2 changes: 1 addition & 1 deletion ci/github-ci-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ pip3 install robotframework docutils pygments twine


# Release to PyPi
python3 setup.py sdist
python3 -m build
twine upload dist/* -r pypi
if [ $? -ne 0 ]; then
echo "[ERROR] Impossible to release the library to PyPi (reason: uploading to pypi failed)."
Expand Down
45 changes: 45 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
[project]
name = "robotframework-httpctrl"
dynamic = ["version"]
authors = [
{ name = "Andrei Novikov", email = "spb.andr@yandex.ru" },
]
maintainers = [
{ name = "Andrei Novikov", email = "spb.andr@yandex.ru" },
]
description = "robotframework-httpctrl is a library for Robot Framework that provides HTTP/HTTPS client and HTTP server services."
readme = "PKG-INFO.rst"
license = "BSD-3-Clause"
license-files = ["LICENSE"]
requires-python = ">= 3.8"
dependencies = [
"robotframework",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Telecommunications Industry",
"Natural Language :: English",
"Topic :: Software Development :: Build Tools",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Education",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
"Topic :: Software Development :: Testing",
"Framework :: Robot Framework :: Library",
]
keywords = ["httpctrl", "http", "https", "robotframework", "client", "server", "json", "test", "testing"]

[project.urls]
homepage = "https://annoviko.github.io/robotframework-httpctrl/"
source = "https://github.com/annoviko/robotframework-httpctrl"
documentation = "https://annoviko.github.io/robotframework-httpctrl/"
tracker = "https://github.com/annoviko/robotframework-httpctrl/issues"
changelog = "https://github.com/annoviko/robotframework-httpctrl/blob/master/CHANGES"

[tool.setuptools]
package-dir = {"" = "src"}
packages = ["HttpCtrl", "HttpCtrl.utils"]

[tool.setuptools.dynamic]
version = { file = "VERSION" }
72 changes: 0 additions & 72 deletions setup.py

This file was deleted.