lint fixes (tests)
This commit is contained in:
parent
63c8e39b59
commit
f7cc4d9d4e
@ -1,5 +1,10 @@
|
||||
import pytest
|
||||
'''
|
||||
Test fixtures
|
||||
'''
|
||||
import base64
|
||||
|
||||
import pytest
|
||||
|
||||
from jail2ban import create_app
|
||||
|
||||
|
||||
@ -21,14 +26,23 @@ def app():
|
||||
|
||||
@pytest.fixture()
|
||||
def client(app):
|
||||
'''
|
||||
Create a synthetic client
|
||||
'''
|
||||
return app.test_client()
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def runner(app):
|
||||
'''
|
||||
Create a synthetic runner
|
||||
'''
|
||||
return app.test_cli_runner()
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def valid_credentials():
|
||||
'''
|
||||
Mock authentication for the test
|
||||
'''
|
||||
return base64.b64encode(b"test.example.com:testpassword").decode("utf-8")
|
||||
|
@ -1,7 +1,13 @@
|
||||
'''
|
||||
Test banning
|
||||
'''
|
||||
from types import SimpleNamespace
|
||||
|
||||
|
||||
def test_ban_ipv6(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test ban an IPv6 address
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = SimpleNamespace()
|
||||
@ -22,6 +28,9 @@ def test_ban_ipv6(client, mocker, valid_credentials):
|
||||
|
||||
|
||||
def test_ban_ipv4(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test ban an IPv4 address
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = SimpleNamespace()
|
||||
@ -42,6 +51,9 @@ def test_ban_ipv4(client, mocker, valid_credentials):
|
||||
|
||||
|
||||
def test_ban_invalid(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test ban an invalid address
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = SimpleNamespace()
|
||||
@ -63,6 +75,9 @@ def test_ban_invalid(client, mocker, valid_credentials):
|
||||
|
||||
|
||||
def test_unban_ipv6(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test unbanning an IPv6 address
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = SimpleNamespace()
|
||||
@ -83,6 +98,9 @@ def test_unban_ipv6(client, mocker, valid_credentials):
|
||||
|
||||
|
||||
def test_unban_ipv4(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test unbanning an IPv4 address
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = SimpleNamespace()
|
||||
|
@ -1,8 +1,14 @@
|
||||
'''
|
||||
Test flushing pf tables
|
||||
'''
|
||||
from types import SimpleNamespace
|
||||
from subprocess import CalledProcessError
|
||||
|
||||
|
||||
def test_flush(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test flushing existing entry
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = SimpleNamespace()
|
||||
@ -22,6 +28,9 @@ def test_flush(client, mocker, valid_credentials):
|
||||
|
||||
|
||||
def test_flush_nonexistent(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test flushing non existing entry
|
||||
'''
|
||||
|
||||
cmd = ['/usr/local/bin/sudo',
|
||||
'/sbin/pfctl', '-a', 'some/anchor',
|
||||
@ -42,6 +51,9 @@ def test_flush_nonexistent(client, mocker, valid_credentials):
|
||||
|
||||
|
||||
def test_wrong_method(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test invalid method
|
||||
'''
|
||||
|
||||
cmd = ['/usr/local/bin/sudo',
|
||||
'/sbin/pfctl', '-a', 'some/anchor',
|
||||
@ -61,7 +73,10 @@ def test_wrong_method(client, mocker, valid_credentials):
|
||||
assert response.status_code == 405
|
||||
|
||||
|
||||
def test_filenotfound(app, mocker, valid_credentials):
|
||||
def test_filenotfound(app, valid_credentials):
|
||||
'''
|
||||
Test for when AUTHFILE cannot be found
|
||||
'''
|
||||
|
||||
app.config.update({
|
||||
"AUTHFILE": '../tests/nonexistent-users-test.txt'
|
||||
|
@ -1,4 +1,9 @@
|
||||
def test_ping(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test application health check
|
||||
'''
|
||||
|
||||
|
||||
def test_ping(client, valid_credentials):
|
||||
'''
|
||||
Test application health check
|
||||
'''
|
||||
|
@ -1,6 +1,9 @@
|
||||
'''
|
||||
Test various registration scenarios
|
||||
'''
|
||||
from subprocess import CompletedProcess
|
||||
|
||||
pfctl_stdout_lines = b'''
|
||||
PFCTL_STDOUT_LINES = b'''
|
||||
block drop quick proto tcp from <f2b-sendmail-auth> to any port = submission
|
||||
block drop quick proto tcp from <f2b-sendmail-auth> to any port = smtps
|
||||
block drop quick proto tcp from <f2b-sendmail-auth> to any port = smtp
|
||||
@ -8,13 +11,16 @@ block drop quick proto tcp from <f2b-sshd> to any port = ssh
|
||||
block drop quick proto tcp from <f2b-recidive> to any
|
||||
'''.strip() + b'\n'
|
||||
|
||||
pfctl_stdout_lines_scratch = b'table <f2b-dovecot> persist counters\n' \
|
||||
PFCTL_STDOUT_LINES_SCRATCH = b'table <f2b-dovecot> persist counters\n' \
|
||||
b'block quick proto tcp from <f2b-dovecot>' \
|
||||
b' to any port ' \
|
||||
b'{pop3,pop3s,imap,imaps,submission,465,sieve}\n'
|
||||
|
||||
|
||||
def test_register_unauth(client):
|
||||
'''
|
||||
Test a registration without being authorized
|
||||
'''
|
||||
json_payload = {"port":
|
||||
"any port {pop3,pop3s,imap,imaps,submission,465,sieve}",
|
||||
"name": "dovecot", "protocol": "tcp"}
|
||||
@ -24,10 +30,13 @@ def test_register_unauth(client):
|
||||
|
||||
|
||||
def test_unregister_valid(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test unregistration
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = CompletedProcess(args=['true'], returncode=0)
|
||||
run_res.stdout = pfctl_stdout_lines
|
||||
run_res.stdout = PFCTL_STDOUT_LINES
|
||||
run_res.check_returncode = noop
|
||||
|
||||
mocker.patch('jail2ban.pfctl.run', return_value=run_res)
|
||||
@ -45,10 +54,13 @@ def test_unregister_valid(client, mocker, valid_credentials):
|
||||
|
||||
|
||||
def test_register_valid(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test a registration of a rule
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = CompletedProcess(args=['true'], returncode=0)
|
||||
run_res.stdout = pfctl_stdout_lines
|
||||
run_res.stdout = PFCTL_STDOUT_LINES
|
||||
run_res.check_returncode = noop
|
||||
|
||||
pfctl_run = mocker.patch('jail2ban.pfctl.run', return_value=run_res)
|
||||
@ -63,13 +75,16 @@ def test_register_valid(client, mocker, valid_credentials):
|
||||
"Basic " + valid_credentials})
|
||||
|
||||
pfctl_run_input_arg = pfctl_run.call_args_list[1][1]['input']
|
||||
for existing_line in pfctl_stdout_lines.splitlines():
|
||||
for existing_line in PFCTL_STDOUT_LINES.splitlines():
|
||||
assert existing_line in pfctl_run_input_arg.splitlines()
|
||||
|
||||
assert response.json['action'] == 'start'
|
||||
|
||||
|
||||
def test_register_valid_from_scratch(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test from scratch point of view
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = CompletedProcess(args=['true'], returncode=0)
|
||||
@ -88,15 +103,18 @@ def test_register_valid_from_scratch(client, mocker, valid_credentials):
|
||||
"Basic " + valid_credentials})
|
||||
|
||||
pfctl_run_input_arg = pfctl_run.call_args_list[1][1]['input']
|
||||
assert pfctl_run_input_arg == pfctl_stdout_lines_scratch
|
||||
assert pfctl_run_input_arg == PFCTL_STDOUT_LINES_SCRATCH
|
||||
assert response.json['action'] == 'start'
|
||||
|
||||
|
||||
def test_register_invalid(client, mocker, valid_credentials):
|
||||
'''
|
||||
Test a bogus pf command
|
||||
'''
|
||||
def noop():
|
||||
pass
|
||||
run_res = CompletedProcess(args=['true'], returncode=0)
|
||||
run_res.stdout = pfctl_stdout_lines
|
||||
run_res.stdout = PFCTL_STDOUT_LINES
|
||||
run_res.check_returncode = noop
|
||||
|
||||
mocker.patch('jail2ban.pfctl.run', return_value=run_res)
|
||||
|
Loading…
x
Reference in New Issue
Block a user