Skip to content

Commit c5f6327

Browse files
committed
test: add TestConfig
Add tests for instantiation of the instance config class, `dandischema.conf.Config`
1 parent 276844b commit c5f6327

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

dandischema/tests/test_conf.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from typing import Optional
33
from unittest.mock import ANY
44

5+
from pydantic import ValidationError
56
import pytest
67

78

@@ -22,6 +23,57 @@ def test_get_instance_config() -> None:
2223
}
2324

2425

26+
class TestConfig:
27+
@pytest.mark.parametrize(
28+
"instance_name",
29+
["DANDI-ADHOC", "DANDI-TEST", "DANDI", "DANDI--TEST", "DANDI-TE-ST"],
30+
)
31+
def test_valid_instance_name(self, instance_name: str) -> None:
32+
"""
33+
Test instantiating `dandischema.conf.Config` with a valid instance name
34+
"""
35+
from dandischema.conf import Config
36+
37+
Config(instance_name=instance_name)
38+
39+
@pytest.mark.parametrize("instance_name", ["-DANDI", "dandi", "DANDI0", "DANDI*"])
40+
def test_invalid_instance_name(self, instance_name: str) -> None:
41+
"""
42+
Test instantiating `dandischema.conf.Config` with an invalid instance name
43+
"""
44+
from dandischema.conf import Config
45+
46+
with pytest.raises(ValidationError) as exc_info:
47+
Config(instance_name=instance_name)
48+
49+
assert len(exc_info.value.errors()) == 1
50+
assert exc_info.value.errors()[0]["loc"] == ("instance_name",)
51+
52+
@pytest.mark.parametrize(
53+
"doi_prefix", ["10.1234", "10.5678", "10.12345678", "10.987654321"]
54+
)
55+
def test_valid_doi_prefix(self, doi_prefix: str) -> None:
56+
"""
57+
Test instantiating `dandischema.conf.Config` with a valid DOI prefix
58+
"""
59+
from dandischema.conf import Config
60+
61+
Config(doi_prefix=doi_prefix)
62+
63+
@pytest.mark.parametrize("doi_prefix", ["1234", ".1234", "1.1234", "10.123"])
64+
def test_invalid_doi_prefix(self, doi_prefix: str) -> None:
65+
"""
66+
Test instantiating `dandischema.conf.Config` with an invalid DOI prefix
67+
"""
68+
from dandischema.conf import Config
69+
70+
with pytest.raises(ValidationError) as exc_info:
71+
Config(doi_prefix=doi_prefix)
72+
73+
assert len(exc_info.value.errors()) == 1
74+
assert exc_info.value.errors()[0]["loc"] == ("doi_prefix",)
75+
76+
2577
class TestSetInstanceConfig:
2678
@pytest.mark.parametrize(
2779
("arg", "kwargs"),

0 commit comments

Comments
 (0)