Skip to content

Update tests to be compatible with new OpenAI, MistralAI and MCP versions #2094

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

medaminezghal
Copy link
Contributor

@medaminezghal medaminezghal commented Jun 28, 2025

I've updated known model list with new OpenAI version, fixed MistralAI test issue in new version, added new ResourceLink MCP type and fixed tests for new MCP version.

Copy link
Contributor

hyperlint-ai bot commented Jun 28, 2025

PR Change Summary

Updated tests to ensure compatibility with the latest versions of OpenAI, MistralAI, and MCP.

  • Updated known model list with the new OpenAI version
  • Fixed MistralAI test issue in the new version
  • Adjusted tests for compatibility with the new MCP version

Modified Files

  • docs/mcp/server.md

How can I customize these reviews?

Check out the Hyperlint AI Reviewer docs for more information on how to customize the review.

If you just want to ignore it on this PR, you can add the hyperlint-ignore label to the PR. Future changes won't trigger a Hyperlint review.

Note specifically for link checks, we only check the first 30 links in a file and we cache the results for several hours (for instance, if you just added a page, you might experience this). Our recommendation is to add hyperlint-ignore to the PR to ignore the link check for this PR.

Copy link
Contributor

@DouweM DouweM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@medaminezghal Thanks Mohamed! The only thing I'm not sure about is how we should handle ResourceLink.

@DouweM DouweM self-assigned this Jun 30, 2025
@DouweM
Copy link
Contributor

DouweM commented Jul 1, 2025

@medaminezghal Can you please have a look at the failing coverage check?

@medaminezghal
Copy link
Contributor Author

medaminezghal commented Jul 9, 2025

@DouweM Does it need to add some tests to fix coverage problem?

@DouweM
Copy link
Contributor

DouweM commented Jul 9, 2025

Does it need to add some tests to fix coverage problem?

@medaminezghal Yep, there are already a number of test_tool_returning_<x> tests in tests/test_mcp.py, and we'll want one for ResourceLink. The test MCP server it uses is defined in tests/mcp_server.py, so that's where you'll want to add a new @mcp.tool that returns a ResourceLink, as well as an @mcp.resource that will return that actual resource once it's looked up.

@medaminezghal
Copy link
Contributor Author

medaminezghal commented Jul 9, 2025

Does it need to add some tests to fix coverage problem?

@medaminezghal Yep, there are already a number of test_tool_returning_<x> tests in tests/test_mcp.py, and we'll want one for ResourceLink. The test MCP server it uses is defined in tests/mcp_server.py, so that's where you'll want to add a new @mcp.tool that returns a ResourceLink, as well as an @mcp.resource that will return that actual resource once it's looked up.

Do I need a real API key to use make update-vcr-tests?

@DouweM
Copy link
Contributor

DouweM commented Jul 9, 2025

@medaminezghal I wouldn't use make update-vcr-tests as it will try to update every single cassette. To just record a cassette for your own test, you can run pytest --record-mode=rewrite <test file path>::<test function name>. If the test uses a real model, you do need an API key.

@medaminezghal
Copy link
Contributor Author

@DouweM I don't have any API key to use it for tests, so, the make update-vcr-tests will not work.

Do you think I should use one of the file inside tests/assets/ for the ResourceLink?

For example:

@mcp.tool()
async def get_resource_link() -> ResourceLink:
    return ResourceLink(
        type='resource_link',
        uri=AnyUrl(Path(__file__).parent.joinpath('assets/kiwi.png').absolute().as_uri()),
        name='kiwi.png',
    )

@DouweM
Copy link
Contributor

DouweM commented Jul 9, 2025

@medaminezghal I think you should only need the actual full file path in the @mcp.resource function that actually reads the resource, but yes using that file is great!

If you have your own OpenAI API key, you can generate the cassette for your new test with that, but if not feel free to push up the test and I can generate the cassette myself locally.

@medaminezghal
Copy link
Contributor Author

@DouweM I will just duplicate the tests that use EmbeddedResource to use ResourceLink.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants