11import pytest
22
3- from rest_client_gen .dynamic_typing .string_serializable import StringSerializable , StringSerializableRegistry
3+ from rest_client_gen .dynamic_typing import IsoTimeString
4+ from rest_client_gen .dynamic_typing .string_serializable import (FloatString , IntString , StringSerializable ,
5+ StringSerializableRegistry )
6+ from rest_client_gen .generator import MetadataGenerator
47
58r = StringSerializableRegistry ()
69
@@ -54,7 +57,30 @@ class Y(StringSerializable):
5457 pytest .param ((X , B ), {B , X }),
5558]
5659
60+
5761@pytest .mark .parametrize ("value,expected" , test_data )
5862def test_string_serializable_registry (value , expected ):
5963 result = r .resolve (* value )
60- assert result == expected
64+ assert result == expected
65+
66+
67+ r2 = StringSerializableRegistry ()
68+ gen = MetadataGenerator (r2 )
69+
70+ r2 .add (cls = IsoTimeString )
71+ r2 .add (cls = IntString )
72+ r2 .add (replace_types = (IntString ,), cls = FloatString )
73+
74+
75+ @pytest .mark .xfail ()
76+ def test_without_remove ():
77+ assert gen ._detect_type ("12" ) == IntString
78+
79+
80+ r2 .remove (IsoTimeString )
81+ r2 .add (cls = IsoTimeString )
82+
83+
84+ def test_remove ():
85+ assert gen ._detect_type ("12" ) == IntString
86+ assert gen ._detect_type ("12:14" ) == IsoTimeString
0 commit comments