Skip to content

Replace pyfunc_serve_and_score_model with score_model_in_process in test_scoring_server.py#19368

Merged
harupy merged 4 commits intomasterfrom
copilot/replace-pyfunc-serve-method
Dec 13, 2025
Merged

Replace pyfunc_serve_and_score_model with score_model_in_process in test_scoring_server.py#19368
harupy merged 4 commits intomasterfrom
copilot/replace-pyfunc-serve-method

Conversation

Copy link
Contributor

Copilot AI commented Dec 13, 2025

What changes are proposed in this pull request?

Migrated 29 test invocations (20 test functions) in tests/pyfunc/test_scoring_server.py from pyfunc_serve_and_score_model to score_model_in_process for faster execution. The subprocess-based approach spawns a full HTTP server per test; in-process testing via FastAPI TestClient eliminates this overhead while maintaining identical coverage.

Changes:

  • test_scoring_server.py: Replaced pyfunc_serve_and_score_model with score_model_in_process, removed extra_args parameters (subprocess-only), removed unused import
  • tests/pyfunc/utils.py: Enhanced score_model_in_process to handle DataFrame inputs (CSV/JSON conversion) matching RestEndpoint.invoke behavior

Not migrated:

  • test_scoring_server_client: Tests actual server process lifecycle
  • test_get_cmd: Tests CLI argument generation

How is this PR tested?

  • Existing unit/integration tests
  • New unit/integration tests
  • Manual tests

All 29 migrated tests pass. The unmigrated test_scoring_server_client has unrelated network connectivity issues.

Does this PR require documentation update?

  • No. You can skip the rest of this section.
  • Yes. I've updated:
    • Examples
    • API references
    • Instructions

Release Notes

Is this a user-facing change?

  • No. You can skip the rest of this section.
  • Yes. Give a description of this change to be included in the release notes for MLflow users.

What component(s), interfaces, languages, and integrations does this PR affect?

Components

  • area/tracking: Tracking Service, tracking client APIs, autologging
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/evaluation: MLflow model evaluation features, evaluation metrics, and evaluation workflows
  • area/gateway: MLflow AI Gateway client APIs, server, and third-party integrations
  • area/prompts: MLflow prompt engineering features, prompt templates, and prompt management
  • area/tracing: MLflow Tracing features, tracing APIs, and LLM tracing functionality
  • area/projects: MLproject format, project running backends
  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages

How should the PR be classified in the release notes? Choose one:

  • rn/none - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
  • rn/breaking-change - The PR will be mentioned in the "Breaking Changes" section
  • rn/feature - A new user-facing feature worth mentioning in the release notes
  • rn/bug-fix - A user-facing bug fix worth mentioning in the release notes
  • rn/documentation - A user-facing documentation change worth mentioning in the release notes

Should this PR be included in the next patch release?

  • Yes (this PR will be cherry-picked and included in the next patch release)
  • No (this PR will be included in the next minor release)

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • prefix.dev
    • Triggering command: /usr/bin/conda conda env create -n mlflow-649524f40dede2c3c64e928921acb05cbc8b270e --file /tmp/pytest-of-REDACTED/pytest-4/test_scoring_server_client0/model/conda.yaml e d -n 10 (dns block)
    • Triggering command: /usr/bin/conda conda env create -n mlflow-649524f40dede2c3c64e928921acb05cbc8b270e --file /tmp/pytest-of-REDACTED/pytest-4/test_scoring_server_client0/model/conda.yaml ndor/bin/uname (dns block)
    • Triggering command: /usr/bin/conda conda env create -n mlflow-649524f40dede2c3c64e928921acb05cbc8b270e --file /tmp/pytest-of-REDACTED/pytest-4/test_scoring_server_client0/model/conda.yaml .19/x64/git (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Replace pyfunc_serve_and_score_model with score_model_in_process in tests/pyfunc/test_scoring_server.py for faster test execution


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@harupy harupy marked this pull request as ready for review December 13, 2025 10:06
Copilot AI review requested due to automatic review settings December 13, 2025 10:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI and others added 3 commits December 13, 2025 10:17
…est_scoring_server.py

Co-authored-by: harupy <17039389+harupy@users.noreply.github.com>
Co-authored-by: harupy <17039389+harupy@users.noreply.github.com>
Co-authored-by: harupy <17039389+harupy@users.noreply.github.com>
Copilot AI changed the title [WIP] Replace pyfunc_serve_and_score_model with score_model_in_process Replace pyfunc_serve_and_score_model with score_model_in_process in test_scoring_server.py Dec 13, 2025
Copilot AI requested a review from harupy December 13, 2025 10:33
@github-actions github-actions bot added area/build Build and test infrastructure for MLflow rn/none List under Small Changes in Changelogs. labels Dec 13, 2025
@harupy harupy changed the title Replace pyfunc_serve_and_score_model with score_model_in_process in test_scoring_server.py Replace pyfunc_serve_and_score_model with score_model_in_process in test_scoring_server.py Dec 13, 2025
@harupy harupy enabled auto-merge December 13, 2025 11:06
@harupy harupy added this pull request to the merge queue Dec 13, 2025
Merged via the queue into master with commit 9d8c5e5 Dec 13, 2025
52 of 54 checks passed
@harupy harupy deleted the copilot/replace-pyfunc-serve-method branch December 13, 2025 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/build Build and test infrastructure for MLflow rn/none List under Small Changes in Changelogs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants