def test_deep_nest_bson_subst(): assert ( validate_type( Union[ # type: ignore Dict[List[bson.ObjectId], Dict[bson.ObjectId, bson.Decimal128]], Dict[Dict[Set[bson.Int64], bson.Binary], Tuple[bson.Regex, ...]], ] ) == Union[ Dict[List[ObjectId], Dict[ObjectId, Decimal128]], Dict[Dict[Set[Int64], Binary], Tuple[Regex, ...]], ] )
def test_forbidden_field(): with pytest.raises(TypeError, match="fields are not supported"): validate_type(Callable) # type: ignore
def test_optional_bson_subst(base, replacement): assert validate_type(Optional[base]) == Optional[replacement] # type: ignore
def test_single_arg_type_bson_subst(origin, base, replacement): assert validate_type(origin[base]) == origin[replacement]
def test_validate_type_bson_substituted(base, replacement): assert validate_type(base) == replacement