From 58ac46126a18ced22318986f8a7cb14d6777e486 Mon Sep 17 00:00:00 2001 From: Ruben van Staveren Date: Mon, 14 Mar 2022 16:06:50 +0100 Subject: [PATCH] Also test registering from scratch --- tests/test_register.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test_register.py b/tests/test_register.py index d5c5cdd..675ae2a 100644 --- a/tests/test_register.py +++ b/tests/test_register.py @@ -1,6 +1,7 @@ import base64 from subprocess import CompletedProcess + pfctl_stdout_lines = b'''block drop quick proto tcp from to any port = submission block drop quick proto tcp from to any port = smtps block drop quick proto tcp from to any port = smtp @@ -63,6 +64,29 @@ def test_register_valid(client, mocker): assert response.json['action'] == 'start' +def test_register_valid_from_scratch(client, mocker): + def noop(): + pass + run_res = CompletedProcess(args=['true'], returncode=0) + run_res.stdout = b'' + run_res.check_returncode = noop + + pfctl_run = mocker.patch('jail2ban.pfctl.run', return_value=run_res) + + valid_credentials = base64.b64encode(b"test.example.com:testpassword").decode("utf-8") + json_payload = {"port": + "any port {pop3,pop3s,imap,imaps,submission,465,sieve}", + "name": "dovecot", "protocol": "tcp"} + + response = client.put("/register", + json=json_payload, + headers={"Authorization": "Basic " + valid_credentials}) + + pfctl_run_input_arg = pfctl_run.call_args_list[1][1]['input'] + assert pfctl_run_input_arg == b'table persist counters\nblock quick proto tcp from to any port {pop3,pop3s,imap,imaps,submission,465,sieve}\n' + + assert response.json['action'] == 'start' + def test_register_invalid(client, mocker): def noop():