@@ -131,7 +131,9 @@ def resp_cont(url, request):
131131
132132def test_create_mixin_missing_attrs (gl ):
133133class M (CreateMixin ,FakeManager ):
134- _create_attrs = (("foo" ,), ("bar" ,"baz" ))
134+ _create_attrs = base .RequiredOptional (
135+ required = ("foo" ,),optional = ("bar" ,"baz" )
136+ )
135137
136138mgr = M (gl )
137139data = {"foo" :"bar" ,"baz" :"blah" }
@@ -145,8 +147,10 @@ class M(CreateMixin, FakeManager):
145147
146148def test_create_mixin (gl ):
147149class M (CreateMixin ,FakeManager ):
148- _create_attrs = (("foo" ,), ("bar" ,"baz" ))
149- _update_attrs = (("foo" ,), ("bam" ,))
150+ _create_attrs = base .RequiredOptional (
151+ required = ("foo" ,),optional = ("bar" ,"baz" )
152+ )
153+ _update_attrs = base .RequiredOptional (required = ("foo" ,),optional = ("bam" ,))
150154
151155@urlmatch (scheme = "http" ,netloc = "localhost" ,path = "/api/v4/tests" ,method = "post" )
152156def resp_cont (url ,request ):
@@ -164,8 +168,10 @@ def resp_cont(url, request):
164168
165169def test_create_mixin_custom_path (gl ):
166170class M (CreateMixin ,FakeManager ):
167- _create_attrs = (("foo" ,), ("bar" ,"baz" ))
168- _update_attrs = (("foo" ,), ("bam" ,))
171+ _create_attrs = base .RequiredOptional (
172+ required = ("foo" ,),optional = ("bar" ,"baz" )
173+ )
174+ _update_attrs = base .RequiredOptional (required = ("foo" ,),optional = ("bam" ,))
169175
170176@urlmatch (scheme = "http" ,netloc = "localhost" ,path = "/api/v4/others" ,method = "post" )
171177def resp_cont (url ,request ):
@@ -183,7 +189,9 @@ def resp_cont(url, request):
183189
184190def test_update_mixin_missing_attrs (gl ):
185191class M (UpdateMixin ,FakeManager ):
186- _update_attrs = (("foo" ,), ("bar" ,"baz" ))
192+ _update_attrs = base .RequiredOptional (
193+ required = ("foo" ,),optional = ("bar" ,"baz" )
194+ )
187195
188196mgr = M (gl )
189197data = {"foo" :"bar" ,"baz" :"blah" }
@@ -197,8 +205,10 @@ class M(UpdateMixin, FakeManager):
197205
198206def test_update_mixin (gl ):
199207class M (UpdateMixin ,FakeManager ):
200- _create_attrs = (("foo" ,), ("bar" ,"baz" ))
201- _update_attrs = (("foo" ,), ("bam" ,))
208+ _create_attrs = base .RequiredOptional (
209+ required = ("foo" ,),optional = ("bar" ,"baz" )
210+ )
211+ _update_attrs = base .RequiredOptional (required = ("foo" ,),optional = ("bam" ,))
202212
203213@urlmatch (scheme = "http" ,netloc = "localhost" ,path = "/api/v4/tests/42" ,method = "put" )
204214def resp_cont (url ,request ):
@@ -216,8 +226,10 @@ def resp_cont(url, request):
216226
217227def test_update_mixin_no_id (gl ):
218228class M (UpdateMixin ,FakeManager ):
219- _create_attrs = (("foo" ,), ("bar" ,"baz" ))
220- _update_attrs = (("foo" ,), ("bam" ,))
229+ _create_attrs = base .RequiredOptional (
230+ required = ("foo" ,),optional = ("bar" ,"baz" )
231+ )
232+ _update_attrs = base .RequiredOptional (required = ("foo" ,),optional = ("bam" ,))
221233
222234@urlmatch (scheme = "http" ,netloc = "localhost" ,path = "/api/v4/tests" ,method = "put" )
223235def resp_cont (url ,request ):