===================================================================== Big day! V4 is finally live. This INCLUDES some BREAKING CHANGES to ZSH TYPE scwrypts! Please refer to the readme for upgrade details (more specifically docs/upgrade/v3-to-v4.md) Upgrade is SUPER EASY, so please take the time to do so. --- New Features ---------------------------------------------------- - zsh type scwrypts have an upgraded runstring to improve context setup and simplicity to the scwrypt-writer - scwrypts now publishes the package (scwrypts) to PyPi; this provides a simple way to invoke scwrypts from python-based environments as well as the entire scwrypts python library suite pip install scwrypts - scwrypts now publishes the package (scwrypts) to npm; this provides a simple way to invoke scwrypts from nodesjs environments npm install scwrypts --- Bug Fixes ------------------------------------------------------- - scwrypts runner prompts which use the zshbuiltin "read" now appropriately read input from tty, pipe, files, and user input - virtualenv refresh now loads and prepares the scwrypts virtual environments correctly --- Changes --------------------------------------------------------- - created the (-v, --log-level) scwrypts arguments as improvements of and replacements to the --verbose and --no-log flags - (-n) is now an alias for (--log-level 0) - (--no-log) is the same as (-n) for compatibility, but will be removed in 4.2 - zsh/lib/utils/io print functions now *interact with log-level* various log levels will now only display the appropriate console prints for the specified log level - zsh/lib/utils/io:INFO has been renamed to DEBUG to align with log-level output; please use DEBUG for debug messages and REMINDER for important user messages - created zsh/lib/utils/io:FZF_USER_INPUT as a *drop-in replacement* for the confusing FZF_HEAD and FZF_TAIL commands. Update by literally changing any instances of FZF_HEAD or FZF_TAIL with FZF_USER_INPUT - FZF_HEAD and FZF_TAIL will be removed in 4.2 - zsh/lib/utils/io:READ (and other zshbuiltin/read-based prompts) now accept a --force-user-input flag in case important checks should require an admin's approval. This flag will ensure that piped input and the `scwrypts -y` flag are ignored for the single prompt. - zsh/lib/utils/color has been updated to use color names which match the ANSI color names - zsh/hello-world has been reduced to a minimal example; this is to emphasize ease-of-use with v4 - zsh/sanity-check is a scwrypts/run testing helper and detailed starting reference (helpful since hello-world is now minimal) - various refactor, updates, and improvements to the scwrypts runner - migrated all zsh scwrypts and plugins to use v4 runner syntax - zsh - plugins/kubectl - plugins/ci - refactored py/lib into py/lib/scwrypts (PyPi)
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
from unittest.mock import patch
|
|
|
|
from pytest import fixture
|
|
|
|
from .client import get_request_client
|
|
|
|
|
|
def test_request_client(sample, _response_basic):
|
|
assert _response_basic == sample.response
|
|
|
|
def test_request_client_forwards_default_headers(sample, mock_request, _response_basic):
|
|
mock_request.assert_called_once_with(
|
|
method = sample.method,
|
|
url = f'{sample.base_url}/{sample.endpoint}',
|
|
headers = sample.headers,
|
|
)
|
|
|
|
def test_get_request_client_payload(sample, _response_payload):
|
|
assert _response_payload == sample.response
|
|
|
|
def test_request_client_forwards_payload_headers(sample, mock_request, _response_payload):
|
|
assert mock_request.call_args.kwargs['headers'] == sample.headers | sample.payload_headers
|
|
|
|
|
|
#####################################################################
|
|
|
|
@fixture(name='mock_request', autouse=True)
|
|
def fixture_mock_request(sample):
|
|
with patch('scwrypts.http.client.request') as mock:
|
|
mock.return_value = sample.response
|
|
yield mock
|
|
|
|
@fixture(name='request_client', autouse=True)
|
|
def fixture_request_client(sample):
|
|
return get_request_client(sample.base_url, sample.headers)
|
|
|
|
#####################################################################
|
|
|
|
@fixture(name='_response_basic')
|
|
def fixture_response_basic(sample, request_client):
|
|
return request_client(
|
|
method = sample.method,
|
|
endpoint = sample.endpoint,
|
|
)
|
|
|
|
@fixture(name='_response_payload')
|
|
def fixture_response_payload(sample, request_client):
|
|
return request_client(
|
|
method = sample.method,
|
|
endpoint = sample.endpoint,
|
|
**{
|
|
**sample.payload,
|
|
'headers': sample.payload_headers,
|
|
},
|
|
)
|