Нет, результатом выражения f-строки является неизменная строка. Аналогично:
y = 'abc'
x = y + 'def' # result of expression is immutable string.
y = 'ghi'
print(x) # would you expect 'ghidef'? No...
Если вы хотите изменить его, используйте format
вместо f-строк для переоценки expected
:
expected = 'test{}' # NOT an f-string
var = 1
assert expected.format(var) == 'test1'
var = 2
assert expected.format(var) == 'test2'
Если вы назвали переменныекак в вашем примере, вы можете использовать:
expected = 'test{var}'
assert expected.format(var=1) == 'test1'
или передать locals()
в качестве словаря аргументов, используя расширение ключевого слова (**):
expected = 'test{a}{b}'
a = 1
b = 2
assert expected.format(**locals()) == 'test12'