Skip to content

Commit

Permalink
chore: ruff PT rules
Browse files Browse the repository at this point in the history
  • Loading branch information
jpmckinney committed Sep 14, 2024
1 parent 0aa4e72 commit ad65e4d
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 38 deletions.
5 changes: 1 addition & 4 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,7 @@
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))


# -- Project information -----------------------------------------------------

Expand Down
22 changes: 11 additions & 11 deletions manage.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
# https://superuser.com/a/1622435/1803567
"""$(dirname $(readlink $(which salt-ssh) || which salt-ssh))"/bin/python3 - "$@" <<"EOF"""
import contextlib
import socket
import subprocess
import sys
from collections import defaultdict
import click
import salt.cli.ssh
import salt.client.ssh
Expand All @@ -20,11 +22,10 @@
def get_provider(target):
if 'kingfisher' in target or 'registry' in target:
return 'hetzner'
else:
return 'linode'
return 'linode'
def compare(content, get_item, mode='diff', margin=0, providers=None):
def compare(content, get_item, mode='diff', margin=0, expected_providers=None):
provider_count = defaultdict(int)
target_items = defaultdict(list)
item_providers = defaultdict(lambda: defaultdict(int))
Expand All @@ -34,7 +35,8 @@ def compare(content, get_item, mode='diff', margin=0, providers=None):
for line in content.splitlines():
if line.startswith(' '):
continue
elif line.startswith(' '):
if line.startswith(' '):
item = get_item(line.strip())
target_items[target].append(item)
item_providers[item][provider] += 1
Expand All @@ -51,7 +53,7 @@ def compare(content, get_item, mode='diff', margin=0, providers=None):
for target in sorted(target_items):
provider = get_provider(target)
if provider not in providers:
if provider not in expected_providers:
continue
print(f'{target}:')
for item in target_items[target]:
Expand All @@ -68,10 +70,8 @@ def salt_ssh(*args):
ssh = salt.client.ssh.SSH(client.config)
for target in ssh.targets.values():
try:
with contextlib.suppress(OSError):
socket.create_connection((target['host'], 8255), 1)
except OSError:
pass
return subprocess.run(sys.argv, check=True, stdout=subprocess.PIPE).stdout.decode()
Expand All @@ -89,7 +89,7 @@ def services(provider):
List services that are not common to all servers of the same provider.
"""
content = salt_ssh('*', 'service.get_all')
compare(content, lambda line: line.strip()[2:], providers=provider)
compare(content, lambda line: line.strip()[2:], expected_providers=provider)
@cli.command()
Expand All @@ -100,7 +100,7 @@ def packages(provider):
List packages that are not common to all servers of the same provider.
"""
content = salt_ssh('*', 'pkg.list_pkgs')
compare(content, lambda line: line.strip()[:-1], providers=provider)
compare(content, lambda line: line.strip()[:-1], expected_providers=provider)
@cli.command()
Expand All @@ -113,7 +113,7 @@ def autoremove(margin, provider):
List packages that can be auto-removed and that are common to all servers of the same provider.
"""
content = salt_ssh('*', 'pkg.autoremove', 'list_only=True')
compare(content, lambda line: line.strip()[2:], mode='comm', margin=margin, providers=provider)
compare(content, lambda line: line.strip()[2:], mode='comm', margin=margin, expected_providers=provider)
if __name__ == '__main__':
Expand Down
9 changes: 4 additions & 5 deletions run.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
# https://superuser.com/a/1622435/1803567
"""$(dirname $(readlink $(which salt-ssh) || which salt-ssh))"/bin/python3 - "$@" <<"EOF"""
import os
import contextlib
import socket
import subprocess
import sys
import salt.cli.ssh
Expand All @@ -26,14 +27,12 @@ def main():
for name, target in ssh.targets.items():
print(f"- {target['host']} ({name})")
for target in ssh.targets.values():
try:
with contextlib.suppress(OSError):
socket.create_connection((target["host"], 8255), 1)
except OSError:
pass
# Run salt-ssh as usual.
print("Running...")
os.execvp("salt-ssh", sys.argv)
subprocess.Popen(sys.argv)
if __name__ == "__main__":
Expand Down
33 changes: 15 additions & 18 deletions tests/test_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def test_json_headers():
assert r.headers['Access-Control-Allow-Origin'] == '*'


@pytest.mark.parametrize('root, version', [
@pytest.mark.parametrize(('root', 'version'), [
(root, vers[0]) for root, (vers, path) in versions.items()
])
def test_add_version(root, version):
Expand All @@ -90,7 +90,7 @@ def test_add_version(root, version):
assert r.headers['Location'] == f'{base_url}{root}/{version}/'


@pytest.mark.parametrize('root, version', [
@pytest.mark.parametrize(('root', 'version'), [
(root, version) for root, (vers, path) in versions.items() for version in vers
])
def test_add_language(root, version):
Expand All @@ -103,7 +103,7 @@ def test_add_language(root, version):
assert r.headers['Location'] == f'{base_url}{prefix}{root}/{version}/en/'


@pytest.mark.parametrize('root, version, lang', [
@pytest.mark.parametrize(('root', 'version', 'lang'), [
(root, version, lang) for root, (langs, path) in languages.items() for lang in langs
for version in versions[root][0]
])
Expand Down Expand Up @@ -131,7 +131,7 @@ def test_profiles():


# Staging branches are not options in the version switcher.
@pytest.mark.parametrize('root, version', [
@pytest.mark.parametrize(('root', 'version'), [
(root, version) for root, (vers, path) in versions.items() for version in vers[:-1]
])
def test_version_switcher(root, version):
Expand All @@ -142,7 +142,7 @@ def test_version_switcher(root, version):


# Staging branches are not options in the version switcher.
@pytest.mark.parametrize('root, version, path', [
@pytest.mark.parametrize(('root', 'version', 'path'), [
(root, version, path) for root, (vers, path) in versions.items() for version in vers[:-1]
])
def test_version_switcher_with_referer(root, version, path):
Expand All @@ -155,7 +155,7 @@ def test_version_switcher_with_referer(root, version, path):
assert r.headers['Location'] == f'{base_url}{prefix}{root}/{version}{path}?'


@pytest.mark.parametrize('from_version, to_version', chain(
@pytest.mark.parametrize(('from_version', 'to_version'), chain(
product(['1.0-dev'], ['latest', '1.1', '1.0']),
))
def test_version_switcher_from_staging(from_version, to_version):
Expand All @@ -166,7 +166,7 @@ def test_version_switcher_from_staging(from_version, to_version):
assert r.headers['Location'] == f'{base_url}/{to_version}/?'


@pytest.mark.parametrize('from_version, to_version', permutations(['latest', '1.1', '1.0'], 2))
@pytest.mark.parametrize(('from_version', 'to_version'), permutations(['latest', '1.1', '1.0'], 2))
def test_version_switcher_stable_sitemap(from_version, to_version):
r = get(f'{base_url}/switcher?branch={to_version}',
headers={'Referer': f'{base_url}/{from_version}/es/schema/release/'})
Expand All @@ -175,7 +175,7 @@ def test_version_switcher_stable_sitemap(from_version, to_version):
assert r.headers['Location'] == f'{base_url}/{to_version}/es/schema/release/?'


@pytest.mark.parametrize('from_version, to_version', chain(
@pytest.mark.parametrize(('from_version', 'to_version'), chain(
product(['latest', '1.1', '1.0'], ['2.0']),
product(['2.0'], ['latest', '1.1', '1.0']),
))
Expand All @@ -187,7 +187,7 @@ def test_version_switcher_unstable_sitemap(from_version, to_version):
assert r.headers['Location'] == f'{base_url}/{to_version}/?'


@pytest.mark.parametrize('root, version, lang', [
@pytest.mark.parametrize(('root', 'version', 'lang'), [
(root, version, lang) for root, (langs, path) in languages.items() for lang in langs
for version in versions[root][0]
])
Expand All @@ -200,7 +200,7 @@ def test_language_switcher(root, version, lang):
assert r.headers['Location'] == f'{base_url}{prefix}{root}/{version}/{lang}/?'


@pytest.mark.parametrize('root, version, lang, path', [
@pytest.mark.parametrize(('root', 'version', 'lang', 'path'), [
(root, version, lang, path) for root, (langs, path) in languages.items() for lang in langs
for version in versions[root][0]
])
Expand All @@ -214,7 +214,7 @@ def test_language_switcher_with_referer(root, version, lang, path):
assert r.headers['Location'] == f'{base_url}{prefix}{root}/{version}/{lang}{path}?'


@pytest.mark.parametrize('root, version, lang', [
@pytest.mark.parametrize(('root', 'version', 'lang'), [
(root, version, lang) for root, (langs, path) in languages.items() for lang in langs
for version in versions[root][0]
])
Expand All @@ -223,10 +223,7 @@ def test_custom_404(root, version, lang):

r = get(f'{base_url}{prefix}{root}/{version}/{lang}/path/to/nonexistent/')

if is_staging(version):
expected = '"error_redirect/"'
else:
expected = f'"{root}/{version}/{lang}/"'
expected = '"error_redirect/"' if is_staging(version) else f'"{root}/{version}/{lang}/"'

assert r.status_code == 404
assert expected in r.text
Expand Down Expand Up @@ -258,7 +255,7 @@ def test_no_redirect(path):
assert r.status_code == 200


@pytest.mark.parametrize('root, version', [
@pytest.mark.parametrize(('root', 'version'), [
(root, version) for root, versions in banner_live for version in versions
])
def test_banner_live(root, version):
Expand All @@ -269,7 +266,7 @@ def test_banner_live(root, version):
assert 'This is a development copy of ' not in r.text


@pytest.mark.parametrize('root, version', [
@pytest.mark.parametrize(('root', 'version'), [
(root, version) for root, versions in banner_old for version in versions
])
def test_banner_old(root, version):
Expand All @@ -291,7 +288,7 @@ def test_banner_staging():
assert '<a href="/profiles/ppp/latest/en/">' in r.text


@pytest.mark.parametrize('path, location', [
@pytest.mark.parametrize(('path', 'location'), [
('/feed', 'https://www.open-contracting.org/feed/'),
('/beta', 'https://www.open-contracting.org/2014/09/04/beta'),
('/project', f'{base_url}/latest/en/'),
Expand Down

0 comments on commit ad65e4d

Please sign in to comment.