@@ -1050,7 +1050,7 @@ def _find(self, tests, obj, name, module, source_lines, globs, seen):
1050
1050
# Look for tests in a module's contained objects.
1051
1051
if inspect .ismodule (obj ) and self ._recurse :
1052
1052
for valname , val in obj .__dict__ .items ():
1053
- valname = '%s.%s' % ( name , valname )
1053
+ valname = f' { name } . { valname } '
1054
1054
1055
1055
# Recurse to functions & classes.
1056
1056
if ((self ._is_routine (val ) or inspect .isclass (val )) and
@@ -1071,7 +1071,7 @@ def _find(self, tests, obj, name, module, source_lines, globs, seen):
1071
1071
"must be strings, functions, methods, "
1072
1072
"classes, or modules: %r" %
1073
1073
(type (val ),))
1074
- valname = '%s .__test__.%s' % ( name , valname )
1074
+ valname = f' { name } .__test__.{ valname } '
1075
1075
self ._find (tests , val , valname , module , source_lines ,
1076
1076
globs , seen )
1077
1077
@@ -1086,7 +1086,7 @@ def _find(self, tests, obj, name, module, source_lines, globs, seen):
1086
1086
if ((inspect .isroutine (val ) or inspect .isclass (val ) or
1087
1087
isinstance (val , property )) and
1088
1088
self ._from_module (module , val )):
1089
- valname = '%s.%s' % ( name , valname )
1089
+ valname = f' { name } . { valname } '
1090
1090
self ._find (tests , val , valname , module , source_lines ,
1091
1091
globs , seen )
1092
1092
@@ -1335,7 +1335,7 @@ def _failure_header(self, test, example):
1335
1335
out .append ('File "%s", line %s, in %s' %
1336
1336
(test .filename , lineno , test .name ))
1337
1337
else :
1338
- out .append ('Line %s, in %s' % ( example .lineno + 1 , test .name ) )
1338
+ out .append (f 'Line { example .lineno + 1 } , in { test .name } ' )
1339
1339
out .append ('Failed example:' )
1340
1340
source = example .source
1341
1341
out .append (_indent (source ))
@@ -1831,7 +1831,7 @@ def output_difference(self, example, got, optionflags):
1831
1831
# If we're not using diff, then simply list the expected
1832
1832
# output followed by the actual output.
1833
1833
if want and got :
1834
- return 'Expected:\n %sGot: \n %s' % ( _indent (want ), _indent (got ))
1834
+ return f 'Expected:\n { _indent (want )} Got: \n { _indent (got )} '
1835
1835
elif want :
1836
1836
return 'Expected:\n %sGot nothing\n ' % _indent (want )
1837
1837
elif got :
@@ -2071,7 +2071,7 @@ class doctest.Tester, then merges the results into (or creates)
2071
2071
2072
2072
# Check that we were actually given a module.
2073
2073
if not inspect .ismodule (m ):
2074
- raise TypeError ("testmod: module required; %r" % ( m ,) )
2074
+ raise TypeError (f "testmod: module required; { m !r } " )
2075
2075
2076
2076
# If no name was given, then use the module's name.
2077
2077
if name is None :
@@ -2447,7 +2447,7 @@ def __hash__(self):
2447
2447
2448
2448
def __repr__ (self ):
2449
2449
name = self ._dt_test .name .split ('.' )
2450
- return "%s (%s)" % ( name [- 1 ], '.' .join (name [:- 1 ]))
2450
+ return f" { name [- 1 ]} ( { '.' .join (name [:- 1 ])} )"
2451
2451
2452
2452
__str__ = object .__str__
2453
2453
0 commit comments