Python测试函数运行结果与预期不符

问题遇到的现象和发生背景

检测里引用的原函数结果和预期不符,不知道为什么结果会多出来一个b

import unittest
from ddt import ddt,data,unpack
def city(city,country,code=''):
    if code:
        a=f'{city} {code} {country}'
        print(a)
    else:
        a = f'{city} {country}'
        print(a)
    return a
@ddt
class CeShi(unittest.TestCase):
    @data(['a','b'])
    @unpack
    def test_1(self,a,b,c=None):
        if c:
            a=f'{a} {c} {b}'
            b=city(a,b,c)
            self.assertEqual(a,b)
        else:
            a=f'{a} {b}'
            b=city(a,b)
            self.assertEqual(a,b)

if __name__ == '__main__':
    unittest.main()
运行结果及报错内容

预期:a b
实际:a b b

我想要达到的结果

预期:a b
实际:a b

这里换一下其他变量

img