БГ
Size: a a a
БГ
A
@pytest.fixture()
def symbol_return_test(self):
symbols = [lt for lt in string.ascii_lowercase]
symbols.extend([str(n) for n in range(10)])
api_sections = [''.join((section, '?search=')) for section in ['/people/', '/films/', '/starships/', '/vehicles/', '/species/', 'planets']]
api_requests = [''.join(parameter) for parameter in itertools.product(api_sections, symbols)]
for request_item in api_requests:
yield ''.join((self.SW_API_BASE_LINK, request_item))
<...>
def test_symbol(self, symbol_return_test):
swapi_request = requests.get(symbol_return_test)
if symbol_return_test[-1] in ['6', '9', '0']:
assert int(swapi_request.json()['count']) == 0
else:
assert int(swapi_request.json()['count']) >= 1
A
БГ
A
БГ
def compose_unpack(chain):
if not any(map(callable, chain)):
raise ValueError("chain must be iterable of callables")
def composed(*args, **kwargs):
func, *funcs = chain
result = func(*args, **kwargs)
for func in funcs:
if isinstance(result, tuple):
result = func(*result)
else:
result = func(result)
return result
return composed
A
БГ
БГ
A
@pytest.fixture()
def symbol_return_test(self):
symbols = [lt for lt in string.ascii_lowercase]
symbols.extend([str(n) for n in range(10)])
api_sections = [''.join((section, '?search=')) for section in ['/people/', '/films/', '/starships/', '/vehicles/', '/species/', 'planets']]
api_requests = [''.join(parameter) for parameter in itertools.product(api_sections, symbols)]
for request_item in api_requests:
yield ''.join((self.SW_API_BASE_LINK, request_item))
<...>
def test_symbol(self, symbol_return_test):
swapi_request = requests.get(symbol_return_test)
if symbol_return_test[-1] in ['6', '9', '0']:
assert int(swapi_request.json()['count']) == 0
else:
assert int(swapi_request.json()['count']) >= 1
БГ
A
БГ
БГ
def sample():
setup()
yield ...
teardown()
A
БГ
R3
A
БГ