From 456fb1db068c2dd9be3ceaadffd99cb9b12c65a2 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Thu, 5 May 2022 10:23:51 +0200 Subject: [PATCH] refactoring: move --- pyinfra/server/rest.py | 2 +- pyinfra/server/sender/sender.py | 37 ----------------------- pyinfra/server/sender/senders/rest.py | 43 +++++++++------------------ test/unit_tests/rest/receiver_test.py | 4 +-- test/unit_tests/rest/sender_test.py | 4 +-- 5 files changed, 19 insertions(+), 71 deletions(-) diff --git a/pyinfra/server/rest.py b/pyinfra/server/rest.py index 367b07d..52f8bdc 100644 --- a/pyinfra/server/rest.py +++ b/pyinfra/server/rest.py @@ -6,7 +6,7 @@ from funcy import identity, rcompose, flatten from pyinfra.server.packer.packers.rest import RestPacker from pyinfra.server.receiver.receivers.rest import RestReceiver -from pyinfra.server.sender.sender import RestSender +from pyinfra.server.sender.senders.rest import RestSender from pyinfra.server.utils import stream_response_payloads from pyinfra.utils.func import lift diff --git a/pyinfra/server/sender/sender.py b/pyinfra/server/sender/sender.py index 09ca62a..975d9b0 100644 --- a/pyinfra/server/sender/sender.py +++ b/pyinfra/server/sender/sender.py @@ -1,8 +1,6 @@ import abc from typing import Iterable -import flask -import requests from more_itertools import peekable @@ -14,16 +12,6 @@ def has_next(peekable_iter): return peekable_iter.peek(Nothing) != Nothing -class Server(abc.ABC): - @abc.abstractmethod - def patch(self, package): - pass - - @abc.abstractmethod - def post(self, package): - pass - - class Sender: def __call__(self, packages: Iterable[dict]): @@ -41,28 +29,3 @@ class Sender: @abc.abstractmethod def post(self, package): raise NotImplementedError - - -class RestSender(Sender): - def __init__(self, endpoint): - self.endpoint = endpoint - - def patch(self, package): - return requests.patch(self.endpoint, json=package) - - def post(self, package): - return requests.post(self.endpoint, json=package) - - -# class Receiver(abc.ABC): -# @abc.abstractmethod -# def __call__(self, responses: Iterable): -# pass -# -# -# class RestReceiver(abc.ABC): -# @abc.abstractmethod -# def __call__(self, responses: Iterable[requests.Response]): -# for response in responses: -# response.raise_for_status() -# yield response.json() diff --git a/pyinfra/server/sender/senders/rest.py b/pyinfra/server/sender/senders/rest.py index b31aa77..6baed62 100644 --- a/pyinfra/server/sender/senders/rest.py +++ b/pyinfra/server/sender/senders/rest.py @@ -1,29 +1,14 @@ -# from typing import Iterable -# -# import requests -# from more_itertools import peekable -# -# from pyinfra.server.sender.sender import Sender -# -# -# class Nothing: -# pass -# -# -# def has_next(peekable_iter): -# return peekable_iter.peek(Nothing) != Nothing -# -# -# class RestSender(Sender): -# def __init__(self, endpoint): -# self.endpoint = endpoint -# -# def __call__(self, packages: Iterable[dict]): -# -# packages = peekable(packages) -# -# for package in packages: -# method = requests.patch if has_next(packages) else requests.post -# response = method(self.endpoint, json=package) -# response.raise_for_status() -# yield response.json() +import requests + +from pyinfra.server.sender.sender import Sender + + +class RestSender(Sender): + def __init__(self, endpoint): + self.endpoint = endpoint + + def patch(self, package): + return requests.patch(self.endpoint, json=package) + + def post(self, package): + return requests.post(self.endpoint, json=package) diff --git a/test/unit_tests/rest/receiver_test.py b/test/unit_tests/rest/receiver_test.py index 45264ea..c228a73 100644 --- a/test/unit_tests/rest/receiver_test.py +++ b/test/unit_tests/rest/receiver_test.py @@ -1,12 +1,12 @@ import pytest from pyinfra.server.receiver.receivers.rest import RestReceiver -from pyinfra.server.sender.sender import RestServer, Sender +from pyinfra.server.sender.senders.rest import RestSender @pytest.mark.parametrize("batched", [True, False]) @pytest.mark.parametrize("item_type", ["string", "image", "pdf"]) def test_rest_receiver(url, packages, server_process): - sender = Sender(RestServer(f"{url}/process")) + sender = RestSender(f"{url}/process") receiver = RestReceiver() assert all((isinstance(r, list) for r in receiver(sender(packages)))) diff --git a/test/unit_tests/rest/sender_test.py b/test/unit_tests/rest/sender_test.py index 89f616f..be37524 100644 --- a/test/unit_tests/rest/sender_test.py +++ b/test/unit_tests/rest/sender_test.py @@ -1,10 +1,10 @@ import pytest -from pyinfra.server.sender.sender import RestServer, Sender +from pyinfra.server.sender.senders.rest import RestSender @pytest.mark.parametrize("batched", [True, False]) @pytest.mark.parametrize("item_type", ["string", "image", "pdf"]) def test_rest_sender(url, packages, server_process): - sender = Sender(RestServer(f"{url}/process")) + sender = RestSender(f"{url}/process") assert all((r.status_code == 200 for r in sender(packages)))