@@ -167,14 +167,7 @@ def from_name(
167
167
import_name , return_source = True
168
168
)
169
169
return cls .from_code (
170
- code ,
171
- name ,
172
- real_name ,
173
- source ,
174
- args ,
175
- variables ,
176
- create_keywords ,
177
- logger ,
170
+ code , name , real_name , source , args , variables , create_keywords , logger
178
171
)
179
172
180
173
@classmethod
@@ -191,25 +184,15 @@ def from_code(
191
184
) -> "TestLibrary" :
192
185
if inspect .ismodule (code ):
193
186
lib = cls .from_module (
194
- code ,
195
- name ,
196
- real_name ,
197
- source ,
198
- create_keywords ,
199
- logger ,
187
+ code , name , real_name , source , create_keywords , logger
200
188
)
201
189
if args : # Resolving arguments reports an error.
202
190
lib .init .resolve_arguments (args , variables = variables )
203
191
return lib
192
+ if args is None :
193
+ args = ()
204
194
return cls .from_class (
205
- code ,
206
- name ,
207
- real_name ,
208
- source ,
209
- args or (),
210
- variables ,
211
- create_keywords ,
212
- logger ,
195
+ code , name , real_name , source , args , variables , create_keywords , logger
213
196
)
214
197
215
198
@classmethod
@@ -223,12 +206,7 @@ def from_module(
223
206
logger = LOGGER ,
224
207
) -> "TestLibrary" :
225
208
return ModuleLibrary .from_module (
226
- module ,
227
- name ,
228
- real_name ,
229
- source ,
230
- create_keywords ,
231
- logger ,
209
+ module , name , real_name , source , create_keywords , logger
232
210
)
233
211
234
212
@classmethod
@@ -250,29 +228,30 @@ def from_class(
250
228
else :
251
229
library = DynamicLibrary
252
230
return library .from_class (
253
- klass ,
254
- name ,
255
- real_name ,
256
- source ,
257
- args ,
258
- variables ,
259
- create_keywords ,
260
- logger ,
231
+ klass , name , real_name , source , args , variables , create_keywords , logger
261
232
)
262
233
263
234
def create_keywords (self ):
264
235
raise NotImplementedError
265
236
266
237
@overload
267
- def find_keywords (self , name : str , count : Literal [1 ]) -> "LibraryKeyword" : ...
238
+ def find_keywords (
239
+ self ,
240
+ name : str ,
241
+ count : Literal [1 ],
242
+ ) -> LibraryKeyword : ...
268
243
269
244
@overload
270
245
def find_keywords (
271
- self , name : str , count : "int|None" = None
246
+ self ,
247
+ name : str ,
248
+ count : "int|None" = None ,
272
249
) -> "list[LibraryKeyword]" : ...
273
250
274
251
def find_keywords (
275
- self , name : str , count : "int|None" = None
252
+ self ,
253
+ name : str ,
254
+ count : "int|None" = None ,
276
255
) -> "list[LibraryKeyword]|LibraryKeyword" :
277
256
return self .keyword_finder .find (name , count )
278
257
@@ -465,18 +444,18 @@ def create_keywords(self, names: "list[str]|None" = None):
465
444
def _create_keyword (self , instance , name ) -> "LibraryKeyword|None" :
466
445
raise NotImplementedError
467
446
468
- def _handle_duplicates (self , kw , seen : NormalizedDict ):
447
+ def _handle_duplicates (self , kw : LibraryKeyword , seen : NormalizedDict ):
469
448
if kw .name in seen :
470
449
error = "Keyword with same name defined multiple times."
471
450
seen [kw .name ].error = error
472
451
raise DataError (error )
473
452
seen [kw .name ] = kw
474
453
475
- def _validate_embedded (self , kw ):
454
+ def _validate_embedded (self , kw : LibraryKeyword ):
476
455
if len (kw .embedded .args ) > kw .args .maxargs :
477
456
raise DataError (
478
- "Keyword must accept at least as many positional "
479
- "arguments as it has embedded arguments."
457
+ "Keyword must accept at least as many positional arguments "
458
+ "as it has embedded arguments."
480
459
)
481
460
kw .args .embedded = kw .embedded .args
482
461
@@ -564,6 +543,7 @@ def _create_keyword(self, instance, name) -> "StaticKeyword|None":
564
543
return StaticKeyword .from_name (name , self .library )
565
544
except DataError as err :
566
545
self ._adding_keyword_failed (name , err .message , err .details )
546
+ return None
567
547
568
548
def _pre_validate_method (self , instance , name ):
569
549
try :
0 commit comments