@@ -418,7 +418,7 @@ def test_env_inheritance_config(env):
418
418
env .set ('foobar_parent_from_config' , 'foobar_parent_from_config' )
419
419
env .set ('foobar_child_from_config' , 'foobar_child_from_config' )
420
420
421
- env .set ('prefix_foobar_child_from_field ' , 'prefix_foobar_child_from_field ' )
421
+ env .set ('foobar_child_from_field ' , 'foobar_child_from_field ' )
422
422
423
423
# a. Child class config overrides prefix
424
424
class Parent (BaseSettings ):
@@ -429,7 +429,7 @@ class Parent(BaseSettings):
429
429
class Child (Parent ):
430
430
model_config = ConfigDict (env_prefix = 'prefix_' )
431
431
432
- assert Child ().foobar == 'prefix_foobar_parent_from_field '
432
+ assert Child ().foobar == 'foobar_parent_from_field '
433
433
434
434
# b. Child class overrides field
435
435
class Parent (BaseSettings ):
@@ -451,7 +451,7 @@ class Child(Parent):
451
451
452
452
model_config = ConfigDict (env_prefix = 'prefix_' )
453
453
454
- assert Child ().foobar == 'prefix_foobar_child_from_field '
454
+ assert Child ().foobar == 'foobar_child_from_field '
455
455
456
456
457
457
def test_invalid_validation_alias (env ):
@@ -498,6 +498,21 @@ class Settings(BaseSettings):
498
498
assert Settings ().foobar == 'val3'
499
499
500
500
501
+ def test_validation_alias_with_env_prefix (env ):
502
+ class Settings (BaseSettings ):
503
+ foobar : str = Field (validation_alias = 'foo' )
504
+
505
+ model_config = ConfigDict (env_prefix = 'p_' )
506
+
507
+ env .set ('p_foo' , 'bar' )
508
+ with pytest .raises (ValidationError ) as exc_info :
509
+ Settings ()
510
+ assert exc_info .value .errors () == [{'type' : 'missing' , 'loc' : ('foo' ,), 'msg' : 'Field required' , 'input' : {}}]
511
+
512
+ env .set ('foo' , 'bar' )
513
+ assert Settings ().foobar == 'bar'
514
+
515
+
501
516
def test_case_sensitive (monkeypatch ):
502
517
class Settings (BaseSettings ):
503
518
foo : str
0 commit comments