diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000000..9227acd97bb --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,14 @@ +# Contributor Guide + +Synapse is a Python application that has Rust modules via pyo3 for performance. + +## Dev Environment Tips +- Source code is primarily in `synapse/`, tests are in `tests/`. +- Run `poetry install --dev` to install development python dependencies. This will also build and install the Synapse rust code. +- Use `./scripts-dev/lint.sh` to lint the codebase (this attempts to fix issues as well). This should be run and produce no errors before every commit. + +## Testing Instructions +- Find the CI plan in the .github/workflows folder. +- Use `poetry run trial tests` to run all unit tests, or `poetry run trial tests.metrics.test_phone_home_stats.PhoneHomeStatsTestCase` (for example) to run a single test case. The commit should pass all tests before you merge. +- Some typing warnings are expected currently. Fix any test or type *errors* until the whole suite is green. +- Add or update relevant tests for the code you change, even if nobody asked. diff --git a/tests/http/federation/test_matrix_federation_agent.py b/tests/http/federation/test_matrix_federation_agent.py index 0fbb4db2f7d..54bbdfa19e8 100644 --- a/tests/http/federation/test_matrix_federation_agent.py +++ b/tests/http/federation/test_matrix_federation_agent.py @@ -84,6 +84,15 @@ def setUp(self) -> None: self.tls_factory = FederationPolicyForHTTPS(config) + # ensure any proxy settings from the environment do not interfere with + # the tests. In some execution environments (like CI or the test + # runner's container) `https_proxy` or `http_proxy` may be preset which + # would cause the agent to attempt to proxy outbound connections. + for var in ("http_proxy", "https_proxy", "HTTP_PROXY", "HTTPS_PROXY"): + if var in os.environ: + old = os.environ.pop(var) + self.addCleanup(os.environ.__setitem__, var, old) + self.well_known_cache: TTLCache[bytes, Optional[bytes]] = TTLCache( "test_cache", timer=self.reactor.seconds )