Skip to content

Commit

Permalink
optional response
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesturk committed Aug 6, 2023
1 parent 2462b75 commit dc2e615
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions src/spatula/test_utils.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import json
import os
import re
import requests
import scrapelib
import warnings
from dataclasses import dataclass, asdict
from pathlib import Path
from typing import Optional, Union
from .pages import Page
Expand All @@ -25,6 +23,7 @@ def __init__(
verify: bool = True,
timeout: Optional[float] = None,
retries: Optional[int] = None,
response: Union[requests.models.Response, str, None] = None,
):
"""
Defines a resource to fetch via URL, particularly useful for handling non-GET
Expand All @@ -37,15 +36,22 @@ def __init__(
:param verify: bool indicating whether or not to verify SSL certificates for request, defaults to True
:param timeout: HTTP(S) timeout in seconds
:param retries: number of retries to make
:param response: optional response to use instead of fetching
"""

self.url = url
self.method = method
self.data = data
self.headers = headers
self.verify = verify
self.timeout = timeout
self.retries = retries
super().__init__(
url=url,
method=method,
data=data,
headers=headers,
verify=verify,
timeout=timeout,
retries=retries,
)
# convert string responses to simple Response objects
if isinstance(response, str):
response = requests.models.Response()
response._content = response.encode()
self.response = response

@classmethod
def from_url(cls, url: Union[URL, str]) -> "CachedTestURL":
Expand All @@ -64,6 +70,8 @@ def from_url(cls, url: Union[URL, str]) -> "CachedTestURL":
def get_response(
self, scraper: scrapelib.Scraper
) -> requests.models.Response:
if self.response:
return self.response
path = _source_to_test_path(self)
if path.exists():
resp = requests.models.Response()
Expand Down

0 comments on commit dc2e615

Please sign in to comment.