【Python】DeprecationWarning: assertDictContainsSubset is deprecated
assertDictContainsSubset
方法被弃用!
背景
在做一个单元测试的时候,遇到了这个警告。所以搜索解决了一下。
原本的单元测试代码:
class TestLibDBUserID(unittest.TestCase):
def test_create(self):
from . import DBUserID
dbuserid = DBUserID()
ret = dbuserid.create(g_userid_data)
status_code, text = ret
self.assertEqual(int(status_code / 10), 20, text)
# DeprecationWarning: assertDictContainsSubset is deprecated
self.assertDictContainsSubset(g_userid_data, json.loads(text))
所有的警告就算不马上解决也应该关注。
如果没有相对完整地看过 Python 书籍的话,有可能就不懂这段警告是什么意思
Python 中对于在往后的 Python 版本中会弃用的方法等会在前几个 Python 版本给于一个“警告(DeprecationWarning)” 弃用(deprecated)
这样就给了开发人员时间来“升级”代码。
寻找 Solution
StackOverflow 上的描述:
回答/参考的 Solution:
Solution
针对上文“背景”段落给出的代码的修改之后的代码:
class TestLibDBUserID(unittest.TestCase):
def test_create(self):
from . import DBUserID
dbuserid = DBUserID()
ret = dbuserid.create(g_userid_data)
status_code, text = ret
self.assertEqual(int(status_code / 10), 20, text)
# DeprecationWarning: assertDictContainsSubset is deprecated
# self.assertDictContainsSubset(g_userid_data, json.loads(text))
self.assertTrue(set(g_userid_data.items()).issubset(set(json.loads(text).items())))