Skip to content
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

301-part-1-skip-pytest-failures #463

Merged
merged 10 commits into from
Jan 31, 2024
16 changes: 8 additions & 8 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@ on:

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4 # update version to maintain consistency across workflows
- name: Set up Python 3.10
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Lint with flake8
run: |
pip install flake8
make lint
# deprecated: Consider merging python.app.yml and lint.yml
# - name: Lint with flake8
# run: |
# pip install flake8
# make lint
- name: Test with pytest
run: |
make up-test
make test
make test-run
2 changes: 0 additions & 2 deletions docker-compose.test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,6 @@ services:
container_name: test
env_file:
- .env.test
profiles:
- donotstart
depends_on:
- mongo
- fastapi
Expand Down
6 changes: 6 additions & 0 deletions nmdc_runtime/test.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,10 @@ RUN chmod +x wait-for-it.sh
# Best practices: Prepare for C crashes.
ENV PYTHONFAULTHANDLER=1


# uncomment line below to run all tests
# ENTRYPOINT [ "./wait-for-it.sh", "fastapi:8000" , "--strict" , "--timeout=300" , "--" , "pytest"]

# uncomment line below to stop after first test failure:
# https://docs.pytest.org/en/6.2.x/usage.html#stopping-after-the-first-or-n-failures
ENTRYPOINT [ "./wait-for-it.sh", "fastapi:8000" , "--strict" , "--timeout=300" , "--" , "pytest", "-x"]
6 changes: 6 additions & 0 deletions tests/e2e/test_minter_api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import pytest

from nmdc_runtime.api.db.mongo import get_mongo_db
from nmdc_runtime.minter.config import schema_classes
Expand All @@ -14,6 +15,7 @@ def _get_client():
return RuntimeApiSiteClient(base_url=os.getenv("API_HOST"), **rs["site_client"])


@pytest.mark.xfail(reason="Expect 422 Client Error: Unprocessable Entity for url: http://fastapi:8000/pids/mint")
def test_minter_api_mint():
client = _get_client()
rv = client.request(
Expand All @@ -22,6 +24,7 @@ def test_minter_api_mint():
assert len(rv) == 1 and rv[0].startswith("nmdc:")


@pytest.mark.xfail(reason="Expect 422 Client Error: Unprocessable Entity for url: http://fastapi:8000/pids/mint")
def test_minter_api_resolve():
client = _get_client()
[id_name] = client.request(
Expand All @@ -31,6 +34,7 @@ def test_minter_api_resolve():
assert rv["id"] == id_name and rv["status"] == "draft"


@pytest.mark.xfail(reason="Expect 422 Client Error: Unprocessable Entity for url: http://fastapi:8000/pids/mint")
def test_minter_api_bind():
client = _get_client()
[id_name] = client.request(
Expand All @@ -48,6 +52,8 @@ def test_minter_api_bind():
)


@pytest.mark.xfail(reason="Expect 422 Client Error: Unprocessable Entity for url: http://fastapi:8000/pids/mint")

def test_minter_api_delete():
client = _get_client()
[id_name] = client.request(
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/test_minter_repository.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import collections
import pytest

from nmdc_runtime.minter.adapters.repository import InMemoryIDStore, MongoIDStore
from nmdc_runtime.minter.domain.model import (
Expand Down Expand Up @@ -48,6 +49,7 @@ def test_mint_and_delete():
assert s.resolve(ResolutionRequest(**req_del.model_dump())) is None


@pytest.mark.xfail(reason="Skipping failed tests to restore automated pipeline")
def test_mongo_mint_one():
s = MongoIDStore(get_mongo_test_db())
s.db["minter.id_records"].drop()
Expand Down
1 change: 1 addition & 0 deletions tests/test_api/test_endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def ensure_test_resources(mdb):
}


@pytest.mark.skip(reason="Skipping because test causes suite to hang")
def test_update_operation():
mdb = get_mongo(run_config_frozen__normal_env).db
rs = ensure_test_resources(mdb)
Expand Down
3 changes: 3 additions & 0 deletions tests/test_data/test_gold_translator.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import pytest

import random
from pathlib import Path

Expand Down Expand Up @@ -434,6 +436,7 @@ def test_get_field_site_name():
assert field_site_name == "Mackenzie"


@pytest.mark.xfail(reason="ValueError: term must be supplied")
def test_get_dataset(test_minter):
random.seed(0)
with open(Path(__file__).parent / "test_gold_translator_data.yaml") as f:
Expand Down
1 change: 1 addition & 0 deletions tests/test_data/test_neon_benthic_data_translator.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ def translator(self, test_minter):
id_minter=test_minter
)

@pytest.mark.xfail(reason="AttributeError: module 'nmdc_schema.nmdc' has no attribute 'QualityControlReport'")
def test_get_database(self, translator):
database = translator.get_database()

Expand Down
1 change: 1 addition & 0 deletions tests/test_data/test_neon_soil_data_translator.py
Original file line number Diff line number Diff line change
Expand Up @@ -860,6 +860,7 @@ def test_create_timestamp_value_with_valid_args(self):
collect_date = _create_timestamp_value("2020-07-13T14:34Z")
assert collect_date.has_raw_value == "2020-07-13T14:34Z"

@pytest.mark.xfail(reason="AttributeError: module 'nmdc_schema.nmdc' has no attribute 'QualityControlReport'")
def test_get_database(self, translator):
database = translator.get_database()

Expand Down
2 changes: 2 additions & 0 deletions tests/test_graphs/test_submission_portal_graphs.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import pytest
import requests_mock

from nmdc_runtime.site.graphs import (
Expand Down Expand Up @@ -69,6 +70,7 @@
}


@pytest.mark.xfail(reason="DagsterInvalidConfigError: Error in config for job translate_metadata_submission_to_nmdc_schema_database")
def test_translate_metadata_submission_to_nmdc_schema_database():
"""Smoke test for translate_metadata_submission_to_nmdc_schema_database job"""

Expand Down
2 changes: 2 additions & 0 deletions tests/test_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def without_id_patterns(nmdc_jsonschema):
)


@pytest.mark.skip(reason="Skipping failed tests to restore automated pipeline")
def test_nmdc_jsonschema_using_new_id_scheme():
# nmdc_database_collection_instance_class_names
for class_name, defn in get_nmdc_jsonschema_dict()["$defs"].items():
Expand All @@ -43,6 +44,7 @@ def test_nmdc_jsonschema_using_new_id_scheme():
pytest.fail(f"{class_name}.id: {defn['properties']['id']}")


@pytest.mark.skip(reason="Skipping failed tests to restore automated pipeline")
def test_nmdc_jsonschema_validator():
with open(REPO_ROOT.joinpath("metadata-translation/examples/study_test.json")) as f:
study_test = json.load(f)
Expand Down
Loading