refactoring: move
This commit is contained in:
parent
e221b00933
commit
456fb1db06
@ -6,7 +6,7 @@ from funcy import identity, rcompose, flatten
|
|||||||
|
|
||||||
from pyinfra.server.packer.packers.rest import RestPacker
|
from pyinfra.server.packer.packers.rest import RestPacker
|
||||||
from pyinfra.server.receiver.receivers.rest import RestReceiver
|
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.server.utils import stream_response_payloads
|
||||||
from pyinfra.utils.func import lift
|
from pyinfra.utils.func import lift
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
import abc
|
import abc
|
||||||
from typing import Iterable
|
from typing import Iterable
|
||||||
|
|
||||||
import flask
|
|
||||||
import requests
|
|
||||||
from more_itertools import peekable
|
from more_itertools import peekable
|
||||||
|
|
||||||
|
|
||||||
@ -14,16 +12,6 @@ def has_next(peekable_iter):
|
|||||||
return peekable_iter.peek(Nothing) != Nothing
|
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:
|
class Sender:
|
||||||
def __call__(self, packages: Iterable[dict]):
|
def __call__(self, packages: Iterable[dict]):
|
||||||
|
|
||||||
@ -41,28 +29,3 @@ class Sender:
|
|||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def post(self, package):
|
def post(self, package):
|
||||||
raise NotImplementedError
|
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()
|
|
||||||
|
|||||||
@ -1,29 +1,14 @@
|
|||||||
# from typing import Iterable
|
import requests
|
||||||
#
|
|
||||||
# import requests
|
from pyinfra.server.sender.sender import Sender
|
||||||
# from more_itertools import peekable
|
|
||||||
#
|
|
||||||
# from pyinfra.server.sender.sender import Sender
|
class RestSender(Sender):
|
||||||
#
|
def __init__(self, endpoint):
|
||||||
#
|
self.endpoint = endpoint
|
||||||
# class Nothing:
|
|
||||||
# pass
|
def patch(self, package):
|
||||||
#
|
return requests.patch(self.endpoint, json=package)
|
||||||
#
|
|
||||||
# def has_next(peekable_iter):
|
def post(self, package):
|
||||||
# return peekable_iter.peek(Nothing) != Nothing
|
return requests.post(self.endpoint, json=package)
|
||||||
#
|
|
||||||
#
|
|
||||||
# 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()
|
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from pyinfra.server.receiver.receivers.rest import RestReceiver
|
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("batched", [True, False])
|
||||||
@pytest.mark.parametrize("item_type", ["string", "image", "pdf"])
|
@pytest.mark.parametrize("item_type", ["string", "image", "pdf"])
|
||||||
def test_rest_receiver(url, packages, server_process):
|
def test_rest_receiver(url, packages, server_process):
|
||||||
sender = Sender(RestServer(f"{url}/process"))
|
sender = RestSender(f"{url}/process")
|
||||||
receiver = RestReceiver()
|
receiver = RestReceiver()
|
||||||
assert all((isinstance(r, list) for r in receiver(sender(packages))))
|
assert all((isinstance(r, list) for r in receiver(sender(packages))))
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import pytest
|
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("batched", [True, False])
|
||||||
@pytest.mark.parametrize("item_type", ["string", "image", "pdf"])
|
@pytest.mark.parametrize("item_type", ["string", "image", "pdf"])
|
||||||
def test_rest_sender(url, packages, server_process):
|
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)))
|
assert all((r.status_code == 200 for r in sender(packages)))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user