testsAndMisc/python_pkg/mock_server
Krzysztof kuhy Rudnicki 0e73b27d50 fix: address all pylint warnings
- R0914 (too many locals): Extract helper functions in generate_jpeg.py,
  engine.py, lichess_api.py, main.py
- R0902 (too many instance attributes): Use dataclasses in keyboard_coop
- W0621 (redefined outer name): Rename parameters/variables to avoid shadowing
- W0201 (attribute outside init): Initialize all attrs in __init__
- R1705 (no-else-return): Remove unnecessary else after return
- C1805 (implicit booleaness): Use implicit boolean checks
- R1732 (consider-using-with): Use context manager for subprocess.Popen
- E0401 (import-error): Add pylint disable for optional deps (selenium, mitmproxy)
- Clean up pyproject.toml: update comments, remove redundant settings

Pylint score: 10.00/10
2025-12-01 16:11:15 +01:00
..
__init__.py refactor: rename folders to fix N999, INP001, S311 linting rules 2025-11-30 21:20:17 +01:00
mock_server.py fix: address all pylint warnings 2025-12-01 16:11:15 +01:00
README.md refactor: rename folders to fix N999, INP001, S311 linting rules 2025-11-30 21:20:17 +01:00
requirements.txt refactor: rename folders to fix N999, INP001, S311 linting rules 2025-11-30 21:20:17 +01:00
run.sh refactor: rename folders to fix N999, INP001, S311 linting rules 2025-11-30 21:20:17 +01:00

Simulate Connection Failure

(it takes ≈ 1hr to get it working)

Install: https://mitmproxy.org/ (install it the way they recommend for your OS, for Ubuntu specifically apt version is 4 main versions behind newest version)

Run it using mitmproxy

Run your webbrowser using 127.0.0.1:8080 as proxy on chromium-based browser it should be enough to do: google-chrome --proxy-server=127.0.0.1:8080

Run mitmweb

open 127.0.0.1:8081

Click File in upper left corner and then Install Certificates

You should get a list of Windows/Linux/macOS/Firefox with certificates and how to install them

Install certificates using those instructions

important! Go to your browser certificate settings and ensure that:

  1. mitmproxy certificate is imported
  2. it is set to trusted

Now all of your network communication should go through mitmproxy, you can verify it by going to 127.0.0.1:8081 and seeing constant flow of requests

What can we do with it?

  1. Install mitmproxy python library using pip

pip install mitmproxy

  1. Copy and paste this “hello world”:
from mitmproxy import http

def request(flow: http.HTTPFlow) -> None:
    # Only intercept traffic to example.com
    if "example.com" in flow.request.host:
        flow.response = http.Response.make(
            502,  # Bad Gateway status code
            b"Simulated connection failure",
            {"Content-Type": "text/plain"}
        )

  1. Run it: mitmdump -s mitm_world.py
  2. Go to example.com
  3. You should see “simulated connection failure” in plain text