22from typing import Optional
33from unittest .mock import ANY
44
5+ from pydantic import ValidationError
56import 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+
2577class TestSetInstanceConfig :
2678 @pytest .mark .parametrize (
2779 ("arg" , "kwargs" ),
0 commit comments