# Submitting Change Requests

## Run Tests

After cloning the source code and making your changes, you can run the unit and integration tests with:

```bash
poetry run pytest stoobly_agent/test
```

The output should pass and look similar to this:

```bash
$ poetry run pytest stoobly_agent/test

================================================== test session starts ==================================================
platform linux -- Python 3.8.10, pytest-7.3.0, pluggy-1.0.0
rootdir: /home/user/Downloads/github/stoobly/stoobly-agent
collected 59 items                                                                                                      

app/models/adapters/python/request/mitmproxy_adapter_test.py ..                                                   [  3%]
app/models/adapters/python/request/stoobly_adapter_test.py ..                                                     [  6%]
app/models/schemas/request_test.py ......                                                                         [ 16%]
app/proxy/mitmproxy/request_facade_test.py ...                                                                    [ 22%]
app/proxy/replay/body_parser_service_test.py ..                                                                   [ 25%]
app/proxy/replay/rewrite_params_service_test.py ...                                                               [ 30%]
app/proxy/replay/visitor_test.py ...............                                                                  [ 55%]
app/proxy/upload/request_string_test.py ..                                                                        [ 59%]
app/proxy/upload/response_string_test.py .                                                                        [ 61%]
app/test/matchers/contract_test.py .......                                                                        [ 72%]
app/test/matchers/diff_test.py ...........                                                                        [ 91%]
app/test/matchers/fuzzy_test.py .....                                                                             [100%]

=================================================== warnings summary ====================================================
stoobly_agent/test/app/proxy/replay/rewrite_params_service_test.py::Test::test_rewrites_dict
stoobly_agent/test/app/proxy/replay/rewrite_params_service_test.py::Test::test_rewrites_list_of_dicts
stoobly_agent/test/app/proxy/replay/rewrite_params_service_test.py::Test::test_rewrites_dict_of_list_of_dicts_of_dicts
  /home/user/.local/lib/python3.8/site-packages/orator/orm/model.py:2282: DeprecationWarning: Call to deprecated function to_dict.
    def to_dict(self):

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================================ 59 passed, 3 warnings in 4.94s =======================
```

## Steps to Create a Change Request

1. Fork our project and commit your changes into one of your forked repository's branches.
2. Test changes locally and create automated tests.
3. Submit a pull request at <https://github.com/Stoobly/stoobly-agent/pulls> with a description of your change.
4. Tag the maintainers.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stoobly.com/developer-guide/submitting-change-requests.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
